绪论 1
第0章 计算机的基础知识 9
0.1 微型计算机的基本结构和工作原理 9
0.1.1 微机的系统结构 9
0.1.2 微机的基本工作原理 10
0.1.3 微机的主要技术指标 11
0.2 计算机中的数制与码制 11
0.2.1 计算机中的数 11
0.2.2 计算机中的有符号数的表示 13
0.2.3 进位和溢出 15
0.2.4 BCD码(Binary Coded Decimal) 16
0.2.6 ASCII码(American Standard Code for Information Interchange) 17
0.2.5 BCD码的运算 17
0.3 小结 18
思考题与习题 18
第1章 8XX51单片机结构 20
1.1 8XX51单片机内部结构 20
1.1.1 概述 20
1.1.2 CPU 21
1.2 存储器 22
1.2.1 程序存储器 23
1.2.2 外部数据存储器 24
1.2.3 内部数据存储器 24
1.3 特殊功能寄存器 26
1.4.1 时钟电路 29
1.4.2 单片机的时序单位 29
1.4 时钟电路与复位电路 29
1.4.3 复位电路 30
1.5 引脚功能 31
1.6 小结 32
思考题与习题一 34
第2章 51系列单片机的指令系统 36
2.1 寻址方式 37
2.1.1 立即寻址 37
2.1.2 直接寻址 37
2.1.3 寄存器寻址 38
2.1.4 寄存器间接寻址 38
2.1.5 变址寻址 39
2.1.6 位寻址 39
2.2.1 传送类指令 40
2.1.7 相对寻址 40
2.2 数据传送与交换指令 40
2.2.2 交换指令 43
2.3 算术运算和逻辑运算指令 44
2.3.1 算术运算和逻辑运算指令对标志位的影响 45
2.3.2 以A为目的操作数的算术运算和逻辑运算指令 45
2.3.3 以dir为目的操作数逻辑运算指令 46
2.3.4 加1、减1指令 46
2.3.5 十进制调整指令 47
2.3.6 专对A的指令 48
2.3.7 乘、除法指令 48
2.3.8 指令综合应用举例 48
2.4 控制转移指令 50
2.4.1 调用程序和返回类指令 50
2.4.2 转移指令 51
2.4.3 空操作指令 55
2.4.4 指令应用举例 55
2.5 位操作指令 56
2.6 小结 58
思考题与习题二 58
第3章 MCS-51单片机汇编语言程序设计 61
3.1 概述 61
3.2 伪指令 62
3.3 顺序程序设计 64
3.4 分支程序设计 67
3.5 循环程序设计 68
3.6 位操作程序设计 70
3.7 子程序 72
3.8 小结 73
思考题与习题三 73
第4章 单片机的C语言编程-C51 75
4.1 C51程序结构 76
4.2 C51的数据类型 77
4.3 数据的存储类型和存储模式 78
4.3.1 数据的存储类型 78
4.3.2 存储器模式 79
4.3.3 变量说明举例 80
4.4 指针 80
4.4.1 指针和指针变量 80
4.4.2 指针变量的数据类型 81
4.4.3 指针变量的说明 81
4.4.4 指向数组的指针变量 82
4.5 C51对SFR、可寻址位、存储器和I/O口的定义 83
4.5.1 特殊功能寄存器SFR定义 83
4.5.2 对位变量的定义 84
4.5.3 C51对存储器和外接I/O口的绝对地址访问 84
4.6 C51的运算符 85
4.7 函数 87
4.7.1 函数的分类及定义 87
4.7.2 函数的定义 87
4.7.3 函数的调用 88
4.7.4 对被调函数的说明 88
4.8 C语言编程实例 89
4.8.1 C语言程序的反汇编程序(源代码) 89
4.8.2 顺序程序的设计 90
4.8.3 循环程序的设计 91
4.8.4 分支程序的设计 94
4.9 小结 96
思考题与习题四 97
第5章 并行输入/输出接口P0~P3 99
5.1 P0~P3并行接口的功能和内部结构 100
5.1.1 并行接口功能 100
5.1.2 并行接口的内部结构 100
5.2 编程举例 103
5.3 用并行口设计LED数码显示器和键盘电路 107
5.3.1 用并行口设计LED显示电路 107
5.3.2 用并行口设计键盘电路 112
5.4 小结 116
思考题与习题五 116
第6章 8XX51单片机的中断系统 118
6.1 8XX51中断系统结构 119
6.1.1 中断源 119
6.1.2 中断控制的有关寄存器 119
6.2 中断响应过程 122
6.2.1 中断处理过程 122
6.2.2 中断请求的撤除 123
6.3 中断程序的设计 123
6.4 小结 131
思考题与习题六 131
第7章 单片机的定时/计数器 132
7.1 定时/计数器T0、T1 132
7.2.1 定时/计数器方式寄存器TMOD(89H) 134
7.2 定时/计数器的寄存器 134
7.2.2 定时/计数器控制寄存器——TCON 135
7.3 定时/计数器的工作方式 135
7.4 定时/计数器的应用程序设计 136
7.4.1 定时/计数器的计数初值C的计算和装入 136
7.4.2 定时/计数器的初始化编程 137
7.4.3 应用编程举例 138
7.4.4 门控位的应用 144
7.5 小结 145
思考题与习题七 146
第8章 单片机的串行接口 148
8.1 概述 148
8.1.1 同步和异步方式 149
8.1.3 串行通信接口的任务 150
8.1.2 通信方向 150
8.1.4 串行通信接口 151
8.1.5 波特率和发送、接收时钟 152
8.1.6 通信线的连接 152
8.1.7 关于RS-232 153
8.1.8 单片机串行通信电路 155
8.2 单片机串行口的结构与工作原理 156
8.2.1 串行口结构 156
8.2.2 工作原理 157
8.2.3 波特率的设定 158
8.3 串行口的控制寄存器 158
8.3.1 串行口的控制寄存器SCON 158
8.3.2 电源控制寄存器PCON 159
8.4 串行口的工作方式 160
8.5 串行口的应用编程 161
8.5.1 查询方式 162
8.5.2 中断方式 162
8.5.3 串行通信的编程实例 163
8.6 利用串行口方式0扩展I/O口 169
8.7 单片机和PC机的串行通信 170
8.8 小结 175
思考题与习题八 176
第9章 单片机总线与存储器的扩展 178
9.1 单片机系统总线和系统扩展方法 178
9.1.1 单片机系统总线信号 178
9.1.2 系统扩展的方法 179
9.1.3 地址译码器 180
9.2.1 EPROM的扩展 183
9.2 程序存储器的扩展 183
9.2.2 EEPROM的扩展 185
9.2.3 FLASH存储器(闪速存储器) 186
9.3 数据存储器的扩展 188
9.4 并行I/O接口的扩展 192
9.4.1 通用锁存器、缓冲器的扩展 192
9.4.2 可编程并行接口芯片的扩展 194
9.5 存储器和I/O口综合扩展电路 200
9.6 扩展多功能接口芯片8155 201
9.7 小结 206
思考题与习题九 207
10.1.1 D/A概述 208
10.1 并行D/A接口技术 208
第10章 单片机应用接口技术 208
10.1.2 DAC0832的扩展接口 209
10.1.3 DAC1210的扩展接口 213
10.2 A/D接口技术 215
10.2.1 A/D接口技术 215
10.2.2 ADC0809的扩展接口 216
10.2.3 AD574的扩展接口 218
10.3 V/F(电压-频率变换)接口 222
10.4 F/V(频率-电压变换)接口 224
10.5 LCD显示器扩展 225
10.6 隔离与驱动接口 228
思考题与习题十 232
11.1 IIC总线扩展技术 233
11.1.1 IIC总线简介 233
第11章 串行接口技术 233
11.1.2 IIC总线的通信规程 234
11.1.3 串行IIC EEPROM AT24CXX 235
11.1.4 IIC总线的编程实现 240
11.1.5 串行EEPROM和AT89C51接口实例 245
11.2 串行铁电FRAM的扩展 246
11.3 SPI总线扩展接口及应用 247
11.3.1 SPI的原理 247
11.3.2 串行D/A转换器TLC5615的接口 248
11.3.3 8位串行A/D转换器TLC549的扩展 251
11.4 小结 254
思考题与习题十一 254
12.1 嵌入式系统开发与开发工具 255
12.1.1 以MCU为核心的嵌入式系统的构成 255
第12章 以MCU为核心的嵌入式系统的设计与调试 255
12.1.2 嵌入式应用系统的设计原则 256
12.1.3 嵌入式系统的开发工具 257
12.1.4 嵌入式系统的调试 258
12.2 嵌入式系统的抗干扰技术 259
12.2.1 软件抗干扰 259
12.2.2 硬件抗干扰 260
12.2.3 “看门狗”技术 261
12.3 单片机应用系统举例——电子显示屏 264
12.4 小结 269
思考题与习题十二 269
附录A 51系列单片机指令表 270
附录B C51的库函数 276
附录C C51的编译、连接定位控制命令 280
参考文献 284