8051单片机原理及应用——以STC8H、STC32G单片机为例 / 应用型本科、高职高专电子信息及自动化类专业系列教材
¥42.00定价
作者: 郭玲
出版时间:2024-05
出版社:西安电子科技大学出版社
- 西安电子科技大学出版社
- 9787560672779
- 1-1
- 522938
- 68257103-9
- 平装
- 16开
- 2024-05
- 341
- 232
- TP368.1
- 自动化技术、计算机技术
- 本科 高职
内容简介
本书以STC系列单片机为例,讲解国产新型8051单片机工作原理及应用。全书分基础篇和提高篇。基础篇介绍单片机内部结构和原理,内容包括单片机里的数、单片机的基本结构、通用输入输出、中断系统、定时器系统、串行通信系统;提高篇介绍单片机应用开发技术,内容包括I2C总线开发、SPI总线开发、人机接口开发以及传感器开发技术。
本书可作为应用型本科、高职高专院校电子信息类、通信类、自动化类、机器人、物联网、工业互联网、人工智能等专业的教材,也可作为信息化人才大赛、电子设计竞赛、1+X证书考证的培训教材,还可作为从事硬件开发的工程技术人员、科研人员的参考书。
本书可作为应用型本科、高职高专院校电子信息类、通信类、自动化类、机器人、物联网、工业互联网、人工智能等专业的教材,也可作为信息化人才大赛、电子设计竞赛、1+X证书考证的培训教材,还可作为从事硬件开发的工程技术人员、科研人员的参考书。
目录
基础篇 单片机内部结构和原理
第1章 单片机里的数 2
1.1 二进制数 2
1.1.1 二进制数的电路实现 2
1.1.2 数的符号和记法 3
1.1.3 数的长度 5
1.1.4 二进制编码 7
1.2 进制的转换和有符号数 8
1.2.1 十进制数转换为R进制数 9
1.2.2 R进制数转换为十进制数 9
1.2.3 有符号数 10
1.2.4 小知识:计算机中计算器的使用 11
1.3 单片机程序中的数据类型 12
1.3.1 数据类型 12
1.3.2 数据的运算 14
任务1 认识二进制 18
任务2 练习二进制和R进制的转换 18
任务3 复习C语言编程 18
课后练习题 18
第2章 单片机的基本结构 21
2.1 单片机发展简史和定义 21
2.2 单片机内部结构概述 22
2.3 中央处理器 25
2.3.1 CPU工作过程 25
2.3.2 单片机时钟树 26
2.3.3 CPU工作时间 26
2.4 程序存储器 28
2.4.1 ROM存储单元 28
2.4.2 特殊ROM存储单元 29
2.4.3 ROM存储单元的读写 30
2.5 数据存储器 30
2.5.1 STC单片机RAM的内部结构 31
2.5.2 内部RAM(256字节)和SFR 32
2.5.3 内部扩展RAM 35
2.5.4 外部扩展RAM 36
2.6 常量和变量 37
2.6.1 常量 37
2.6.2 变量 39
2.7 单片机最小系统 40
2.7.1 电源 40
2.7.2 时钟电路 40
2.7.3 复位电路 42
2.7.4 ISP电路 43
2.8 扩展阅读:C51编译器 44
2.8.1 编译器 44
2.8.2 编译过程 45
任务4 认识单片机 49
任务5 安装Keil C51软件 49
任务6 建立一个hello测试工程 49
任务7 hello测试程序的下载和验证 55
任务8 单片机的仿真 58
任务9 绘制单片机最小系统电路图 60
课后练习题 61
第3章 通用输入输出 63
3.1 单片机GPIO 63
3.1.1 GPIO引脚 63
3.1.2 GPIO端口 64
3.1.3 GPIO工作模式 64
3.1.4 GPIO功能复用 66
3.2 单片机GPIO口的读写 69
3.2.1 单片机接口电路 69
3.2.2 GPIO特殊功能寄存器 69
3.2.3 GPIO读写练习 71
3.3 GPIO应用实践 71
3.4 扩展阅读:单片机C语言函数 71
任务10 设置GPIO口工作模式 71
任务11 GPIO口的读写 72
任务12 流水灯的实现 74
任务13 按键检测 76
任务14 点亮单个数码管——静态显示 77
课后练习题 82
第4章 中断系统 85
4.1 单片机中断系统概述 85
4.1.1 中断的概念 85
4.1.2 中断嵌套 86
4.2 中断执行过程 87
4.2.1 中断寄存器 87
4.2.2 中断控制过程 90
4.2.3 中断服务函数 91
4.3 外部中断实践练习 93
任务15 检测外部中断——LED灯显示 93
任务16 检测外部中断——数码管显示 95
课后练习题 98
第5章 定时器系统 101
5.1 定时器工作原理 101
5.1.1 定时器内部结构 101
5.1.2 定时器工作模式 102
5.2 定时器配置 103
5.2.1 定时器0、1的配置 103
5.2.2 确定定时时间 106
5.2.3 定时器2~4的配置 108
5.3 PWM定时器 109
5.3.1 PWM定时器的时基单元 110
5.3.2 PWM定时器输出比较功能 112
5.3.3 PWM定时器寄存器 112
任务17 理解定时器工作原理 114
任务18 定时器1定时1s 117
任务19 定时器2扫描数码管
动态显示 119
任务20 定时器3扫描按键矩阵 123
任务21 PWM定时器输出占空比
可调波形 127
课后练习题 130
第6章 串行通信系统 132
6.1 通信协议 132
6.2 工作模式 135
6.3 波特率 136
6.3.1 波特率的定义 136
6.3.2 波特率的发生 137
6.4 串行通信接口寄存器 139
6.4.1 串口1相关寄存器 139
6.4.2 串口2相关寄存器 140
6.4.3 电源管理器 141
6.5 UART的引脚选择 141
任务22 串口通信完成一个hello程序 142
课后练习题 145
提高篇 单片机应用开发技术
第7章 I2C总线开发 150
7.1 I2C总线标准 150
7.1.1 I2C总线基本概念 150
7.1.2 I2C总线结构 151
7.1.3 I2C总线通信格式 152
7.2 GPIO模拟I2C总线协议的开发技术 154
7.2.1 GPIO模拟I2C总线的
驱动函数 154
7.2.2 GPIO模拟I2C总线访问PCF8591
模/数转换芯片 154
7.3 I2C功能模块开发技术 157
7.3.1 I2C引脚切换 157
7.3.2 I2C控制寄存器 158
7.3.3 I2C主机模式访问AT24C02 160
任务23 I2C功能模块应用开发 163
课后练习题 166
第8章 SPI总线开发 168
8.1 SPI总线的基本概念 168
8.1.1 SPI总线结构 168
8.1.2 SPI总线传输模式 169
8.2 GPIO模拟SPI总线的开发技术 169
8.2.1 GPIO模拟SPI总线的
驱动函数 170
8.2.2 GPIO模拟SPI总线访问DS1302
日历芯片 171
8.3 SPI功能模块开发技术 174
8.3.1 SPI引脚切换 174
8.3.2 SPI相关寄存器 175
任务24 SPI总线访问Flash芯片 176
课后练习题 177
第9章 人机接口开发 180
9.1 STN-LCD液晶显示开发 180
9.2 状态机设计 183
9.3 总线扩展复用设计 184
9.3.1 总线扩展应用电路设计 185
9.3.2 LED灯组的总线复用电路 187
9.3.3 数码管总线复用 187
9.4 人机接口综合练习 188
任务25 在LCD12864屏幕上
显示信息 188
任务26 状态机实现键盘扫描 195
任务27 人机接口综合练习——模拟
风扇控制系统 200
课后练习题 204
第10章 传感器开发技术 207
10.1 传感器基础知识 207
10.1.1 传感器电路 207
10.1.2 传感器的分类 208
10.1.3 传感器的主要特征参数 209
10.2 温度传感器DS18B20数据的读取 211
10.2.1 DS18B20功能概述 211
10.2.2 DS18B20的单总线数据
通信过程 214
10.2.3 扩展阅读:关于sprintf()函数 217
10.3 超声波数据的读取 217
任务28 DS18B20温度测量应用开发 218
任务29 超声波测距应用开发 221
课后练习题 221
参考文献 224
第1章 单片机里的数 2
1.1 二进制数 2
1.1.1 二进制数的电路实现 2
1.1.2 数的符号和记法 3
1.1.3 数的长度 5
1.1.4 二进制编码 7
1.2 进制的转换和有符号数 8
1.2.1 十进制数转换为R进制数 9
1.2.2 R进制数转换为十进制数 9
1.2.3 有符号数 10
1.2.4 小知识:计算机中计算器的使用 11
1.3 单片机程序中的数据类型 12
1.3.1 数据类型 12
1.3.2 数据的运算 14
任务1 认识二进制 18
任务2 练习二进制和R进制的转换 18
任务3 复习C语言编程 18
课后练习题 18
第2章 单片机的基本结构 21
2.1 单片机发展简史和定义 21
2.2 单片机内部结构概述 22
2.3 中央处理器 25
2.3.1 CPU工作过程 25
2.3.2 单片机时钟树 26
2.3.3 CPU工作时间 26
2.4 程序存储器 28
2.4.1 ROM存储单元 28
2.4.2 特殊ROM存储单元 29
2.4.3 ROM存储单元的读写 30
2.5 数据存储器 30
2.5.1 STC单片机RAM的内部结构 31
2.5.2 内部RAM(256字节)和SFR 32
2.5.3 内部扩展RAM 35
2.5.4 外部扩展RAM 36
2.6 常量和变量 37
2.6.1 常量 37
2.6.2 变量 39
2.7 单片机最小系统 40
2.7.1 电源 40
2.7.2 时钟电路 40
2.7.3 复位电路 42
2.7.4 ISP电路 43
2.8 扩展阅读:C51编译器 44
2.8.1 编译器 44
2.8.2 编译过程 45
任务4 认识单片机 49
任务5 安装Keil C51软件 49
任务6 建立一个hello测试工程 49
任务7 hello测试程序的下载和验证 55
任务8 单片机的仿真 58
任务9 绘制单片机最小系统电路图 60
课后练习题 61
第3章 通用输入输出 63
3.1 单片机GPIO 63
3.1.1 GPIO引脚 63
3.1.2 GPIO端口 64
3.1.3 GPIO工作模式 64
3.1.4 GPIO功能复用 66
3.2 单片机GPIO口的读写 69
3.2.1 单片机接口电路 69
3.2.2 GPIO特殊功能寄存器 69
3.2.3 GPIO读写练习 71
3.3 GPIO应用实践 71
3.4 扩展阅读:单片机C语言函数 71
任务10 设置GPIO口工作模式 71
任务11 GPIO口的读写 72
任务12 流水灯的实现 74
任务13 按键检测 76
任务14 点亮单个数码管——静态显示 77
课后练习题 82
第4章 中断系统 85
4.1 单片机中断系统概述 85
4.1.1 中断的概念 85
4.1.2 中断嵌套 86
4.2 中断执行过程 87
4.2.1 中断寄存器 87
4.2.2 中断控制过程 90
4.2.3 中断服务函数 91
4.3 外部中断实践练习 93
任务15 检测外部中断——LED灯显示 93
任务16 检测外部中断——数码管显示 95
课后练习题 98
第5章 定时器系统 101
5.1 定时器工作原理 101
5.1.1 定时器内部结构 101
5.1.2 定时器工作模式 102
5.2 定时器配置 103
5.2.1 定时器0、1的配置 103
5.2.2 确定定时时间 106
5.2.3 定时器2~4的配置 108
5.3 PWM定时器 109
5.3.1 PWM定时器的时基单元 110
5.3.2 PWM定时器输出比较功能 112
5.3.3 PWM定时器寄存器 112
任务17 理解定时器工作原理 114
任务18 定时器1定时1s 117
任务19 定时器2扫描数码管
动态显示 119
任务20 定时器3扫描按键矩阵 123
任务21 PWM定时器输出占空比
可调波形 127
课后练习题 130
第6章 串行通信系统 132
6.1 通信协议 132
6.2 工作模式 135
6.3 波特率 136
6.3.1 波特率的定义 136
6.3.2 波特率的发生 137
6.4 串行通信接口寄存器 139
6.4.1 串口1相关寄存器 139
6.4.2 串口2相关寄存器 140
6.4.3 电源管理器 141
6.5 UART的引脚选择 141
任务22 串口通信完成一个hello程序 142
课后练习题 145
提高篇 单片机应用开发技术
第7章 I2C总线开发 150
7.1 I2C总线标准 150
7.1.1 I2C总线基本概念 150
7.1.2 I2C总线结构 151
7.1.3 I2C总线通信格式 152
7.2 GPIO模拟I2C总线协议的开发技术 154
7.2.1 GPIO模拟I2C总线的
驱动函数 154
7.2.2 GPIO模拟I2C总线访问PCF8591
模/数转换芯片 154
7.3 I2C功能模块开发技术 157
7.3.1 I2C引脚切换 157
7.3.2 I2C控制寄存器 158
7.3.3 I2C主机模式访问AT24C02 160
任务23 I2C功能模块应用开发 163
课后练习题 166
第8章 SPI总线开发 168
8.1 SPI总线的基本概念 168
8.1.1 SPI总线结构 168
8.1.2 SPI总线传输模式 169
8.2 GPIO模拟SPI总线的开发技术 169
8.2.1 GPIO模拟SPI总线的
驱动函数 170
8.2.2 GPIO模拟SPI总线访问DS1302
日历芯片 171
8.3 SPI功能模块开发技术 174
8.3.1 SPI引脚切换 174
8.3.2 SPI相关寄存器 175
任务24 SPI总线访问Flash芯片 176
课后练习题 177
第9章 人机接口开发 180
9.1 STN-LCD液晶显示开发 180
9.2 状态机设计 183
9.3 总线扩展复用设计 184
9.3.1 总线扩展应用电路设计 185
9.3.2 LED灯组的总线复用电路 187
9.3.3 数码管总线复用 187
9.4 人机接口综合练习 188
任务25 在LCD12864屏幕上
显示信息 188
任务26 状态机实现键盘扫描 195
任务27 人机接口综合练习——模拟
风扇控制系统 200
课后练习题 204
第10章 传感器开发技术 207
10.1 传感器基础知识 207
10.1.1 传感器电路 207
10.1.2 传感器的分类 208
10.1.3 传感器的主要特征参数 209
10.2 温度传感器DS18B20数据的读取 211
10.2.1 DS18B20功能概述 211
10.2.2 DS18B20的单总线数据
通信过程 214
10.2.3 扩展阅读:关于sprintf()函数 217
10.3 超声波数据的读取 217
任务28 DS18B20温度测量应用开发 218
任务29 超声波测距应用开发 221
课后练习题 221
参考文献 224