第1章 单片机基础知识 1
本章学习目标 1
1.1 单片机的数制表示法 1
1.1.1 二进制、十进制与十六进制 1
1.1.2 数制的转换 2
1.1.3 原码、反码与补码 4
1.1.4 计算机中常用的编码 6
1.1.5 二进制的运算 9
1.2 单片机常用逻辑电路简介 10
1.2.1 基本门电路 10
1.2.2 触发器 11
1.2.3 寄存器 14
1.2.4 计数器 15
1.2.5 三态门与缓冲器 17
1.2.6 译码器 17
本章小结 18
习题 19
第2章 单片机的工作原理 20
本章学习目标 20
2.1 单片机概述 20
2.1.1 单片机的基本概念 20
2.1.2 单片机的发展概况 23
2.1.3 单片机的特点和应用 25
2.1.4 单片机的系列产品介绍 26
2.2 单片机的内部结构 27
2.2.1 内部结构 28
2.2.2 引脚定义及功能 29
2.3 单片机的存储器结构 31
2.3.1 内部数据存储器及专用寄存器 32
2.3.2 外部数据存储器 35
2.3.3 程序存储器 36
2.4 单片机并行I/O口 38
2.4.1 P0口的结构及特点 38
2.4.2 P1口的结构及特点 39
2.4.3 P2口的结构及特点 40
2.4.4 P3口的结构及特点 40
2.5 单片机的时钟与时序 41
2.5.1 时钟电路 41
2.5.2 单片机的CPU时序 42
2.6 单片机的工作方式 44
2.6.1 程序执行方式 44
2.6.2 节电工作方式 44
2.6.3 复位 46
本章小结 47
习题 48
第3章 单片机的指令系统 50
本章学习目标 50
3.1 单片机指令系统概述 50
3.1.1 指令格式 50
3.1.2 指令符号 51
3.1.3 指令分类 51
3.2 寻址方式 53
3.3 指令系统 58
3.3.1 数据传送类指令 58
3.3.2 算术运算类指令 62
3.3.3 逻辑运算指令 66
3.3.4 移位指令 66
3.3.5 控制转移类指令 67
3.3.6 位操作指令 71
3.4 伪指令 73
本章小结 75
习题 75
第4章 程序设计 79
本章学习目标 79
4.1 简单汇编语言程序设计 79
4.1.1 分支程序 79
4.1.2 循环程序 82
4.1.3 延时程序 84
4.2 MCS-51常用子程序 85
4.2.1 代码转换类程序设计 85
4.2.2 查表程序设计 88
4.2.3 定点数运算子程序 90
本章小结 96
习题 96
第5章 单片机的中断系统 99
本章学习目标 99
5.1 中断的概念 99
5.1.1 中断的定义 99
5.1.2 中断源 100
5.1.3 中断的优先级 101
5.1.4 中断控制 102
5.1.5 中断响应 103
5.1.6 中断响应的撤除 104
5.2 外部中断的使用 105
5.2.1 外部中断源的应用 105
5.2.2 利用定时器扩展外部中断源 109
5.2.3 多级外部中断的扩展 110
本章小结 113
习题 113
第6章 单片机的定时器/计数器 114
本章学习目标 114
6.1 定时器/计数器 114
6.1.1 定时器/计数器的结构 114
6.1.2 定时器/计数器的控制寄存器 115
6.1.3 定时器/计数器的工作方式 116
6.2 定时器/计数器的应用 118
6.2.1 定时器方式0的应用 118
6.2.2 定时器方式1的应用 119
6.2.3 外部脉冲宽度的测量 120
6.2.4 单片机内部软件看门狗的应用 121
本章小结 122
习题 122
第7章 单片机的串行通信 124
本章学习目标 124
7.1 串行通信概念 124
7.1.1 串行通信的基本方式 124
7.1.2 串行通信的波特率 125
7.2 串行通信的工作原理及工作方式 126
7.2.1 串行通信口的结构 126
7.2.2 串行通信的工作方式 128
7.3 单片机串行口的应用 131
7.3.1 串行口扩展显示器及键盘 131
7.3.2 单片机与单片机的串行通信 134
7.3.3 计算机与单片机的通信 137
本章小结 143
习题 144
第8章 I/O口的应用与扩展 145
本章学习目标 145
8.1 基本I/O的应用与扩展 145
8.1.1 P1口的应用 145
8.1.2 P0口的扩展 147
8.2 显示器的扩展 148
8.2.1 基本LED显示原理 148
8.2.2 LED的静态显示 150
8.2.3 LED的动态显示 152
8.2.4 LCD显示器的扩展 153
8.3 键盘的扩展 162
8.3.1 独立式键盘的扩展 162
8.3.2 矩阵式键盘的扩展 163
8.4 I/O通用芯片的扩展与应用 166
8.4.1 8255A的应用 166
8.4.2 8279的应用 171
8.5 串行总线芯片的扩展 181
8.5.1 I2C总线 181
8.5.2 SPI总线 188
本章小结 193
习题 194
第9章 A/D、D/A转换器的应用 195
本章学习目标 195
9.1 A/D转换器的应用 195
9.1.1 8位逐次逼近式A/D转换器0809的应用 196
9.1.2 12位串行接口A/D转换器的应用 200
9.1.3 12位并行A/D转换器的应用 204
9.2 D/A转换器的应用 208
9.2.1 8位D/A转换器0832的应用 208
9.2.2 12位串行接口D/A转换器的应用 211
本章小结 215
习题 215
第10章 单片机应用系统设计 216
本章学习目标 216
10.1 单片机应用系统设计的开发步骤 216
10.1.1 系统总体设计 217
10.1.2 硬件设计 217
10.1.3 软件设计 218
10.1.4 系统总体调试 220
10.1.5 程序固化 220
10.2 设计实例1——步进电机的控制 220
10.3 设计实例2——数字电压表的设计 222
10.4 设计实例3——数字频率计的设计 227
10.5 DS18B20数字温度计的设计 231
10.5.1 DS18B20概述 232
10.5.2 DS18B20的使用方法 234
10.5.3 DS18B20构成的数字温度计 235
本章小结 236
习题 237
第11章 单片机C51程序设计 238
本章学习目标 238
11.1 C51语言概述 238
11.1.1 C51语言的程序结构 238
11.1.2 标识符 239
11.1.3 关键字 239
11.2 C51的数据结构 239
11.2.1 C51的基本数据类型 240
11.2.2 C51的构造数据类型 242
11.2.3 C51的扩展数据类型 245
11.3 C51的运算符与表达式 246
11.3.1 运算符和表达式 246
11.3.2 运算符的优先级和结合性 248
11.4 C51的存储结构 250
11.4.1 存储区域 250
11.4.2 存储模式 250
11.5 C51基本程序结构 251
11.5.1 程序语句的概念 251
11.5.2 顺序结构 252
11.5.3 选择结构 252
11.5.4 循环结构 254
11.6 C51的函数 257
11.6.1 函数的定义 257
11.6.2 函数的调用 261
11.6.3 数组与函数调用 262
11.7 指针 263
11.7.1 指针的基本概念 263
11.7.2 变量指针 264
11.7.3 字符串指针 264
11.7.4 数组指针 264
11.7.5 结构体指针 265
11.7.6 指针数组 265
11.8 C51的程序应用 265
11.8.1 延时程序 265
11.8.2 DAC0832波形生成程序 266
11.8.3 单片机通过8255控制微型打印机 268
11.8.4 方波发生器 269
本章小结 270
习题 271
参考文献 273