目录 1
第1章 单片机的基础知识 1
1.1 微型计算机的系统组成 1
1.1.1 主机 1
1.1.2 外部设备 2
1.2 单片机概述 3
1.2.1 单片机的发展概况 3
1.2.2 单片机的应用 4
1.2.3 单片机的发展趋势 5
1.3 不同计数制之间的转换 6
1.3.1 十进制数 6
1.3.3 十六进制数 7
1.3.2 二进制数 7
1.3.4 不同进制数之间的转换 8
1.3.5 二进制数的算术运算规则 10
1.3.6 逻辑运算 11
1.4 数的表示方法 12
1.4.1 真值与机器数 12
1.4.2 原码、反码、补码 13
1.4.3 BCD码 14
1.4.4 ASCII码 15
1.5 思考练习题 16
第2章 单片机的组成与结构分析 17
2.1 MCS-51单片机的内部结构 17
2.2.1 运算器 19
2.2 CPU的结构和功能 19
2.2.2 控制器 20
2.3 存储器的组织结构 21
2.3.1 MCS-51单片机的存储器结构 21
2.3.2 程序存储器 22
2.3.3 数据存储器 23
2.3.4 MCS-5 1单片机的内部数据存储器 24
2.4 MCS-5 1单片机的并行输入输出端口 29
2.4.1 P0口结构 30
2.4.2 P2口结构 31
2.4.3 P3口结构 32
2.4.4 P1口结构 33
2.5.1 电源引脚 34
2.5 MCS-51单片机的外部引脚及功能 34
2.5.2 外接晶振或外部时钟信号输入端 36
2.5.3 输入输出引脚 36
2.5.4 控制线 37
2.6 单片机指令时序 38
2.7 思考练习题 40
第3章 MCS-51单片机的指令系统 41
3.1 汇编语言的指令格式及符号简介 41
3.1.1 指令格式 41
3.1.2 本章中符号的定义 42
3.2.1 立即寻址 43
3.2 寻址方式 43
3.2.2 直接寻址 44
3.2.3 寄存器寻址 45
3.2.4 寄存器间接寻址 45
3.2.5 变址寻址 46
3.2.6 相对寻址 46
3.2.7 位寻址 47
3.3 数据传送类指令 47
3.3.1 通用传送指令 47
3.3.2 外部数据存储器(或I/O口)与累加器A传送指令 50
3.3.3 程序存储器向累加器A传送数据指令 51
3.3.4 数据交换指令 52
3.3.5 堆栈操作指令 53
3.4 算术运算类指令 54
3.4.1 加减运算指令 55
3.4.2 乘除运算指令 59
3.4.3 增1减1指令 60
3.4.4 二/十进制调整指令 62
3.5 逻辑运算指令 62
3.5.1 单操作数指令 63
3.5.2 双操作数指令 65
3.6 位操作类指令 68
3.6.1 位数据传送指令 68
3.6.2 位状态控制指令 69
3.6.4 位条件转移指令 70
3.6.3 位逻辑操作指令 70
3.7 控制转移类指令 73
3.7.1 无条件转移指令 73
3.7.2 条件转移指令 75
3.7.3 子程序调用和返回指令 79
3.8 思考练习题 81
第4章 单片机的程序设计 83
4.1 伪指令 83
4.1.1 定义起始地址伪指令 84
4.1.2 定义汇编结束伪指令 84
4.1.3 标号赋值伪指令 84
4.1.5 定义字伪指令 85
4.1.4 定义字节伪指令 85
4.1.6 预留存储区伪指令 86
4.2 汇编语言源程序的编辑与汇编 86
4.2.1 源程序的编辑 86
4.2.2 源程序的汇编 87
4.3 汇编语言程序设计 87
4.3.1 顺序程序 88
4.3.2 分支程序 90
4.3.3 循环程序 91
4.3.4 子程序 93
4.4 思考练习题 96
5.1.1 微机的输入/输出方式 97
5.1 中断的概念 97
第5章 MCS-51单片机的中断系统 97
5.1.2 中断的概念 99
5.2 MCS-51的中断系统及控制 101
5.2.1 中断源 101
5.2.2 中断控制 102
5.3 中断处理 105
5.3.1 中断响应 106
5.3.2 中断处理 107
5.3.3 中断返回 108
5.4 外部中断及其扩展 108
5.4.1 外部中断的响应时间 108
5.4.3 利用外部中断实现单步操作 109
5.4.2 外部中断方式的选择 109
5.4.4 外部中断源扩展 111
5.5 思考练习题 112
第6章 定时/计数器 113
6.1 定时器的结构 113
6.1.1 定时器/计数器的结构 113
6.1.2 定时器的控制 114
6.2 定时器的工作方式 116
6.2.1 模式0及应用 116
6.2.2 模式1及应用 118
6.2.3 模式2及应用 119
6.2.4 模式3及应用 121
6.3.1 定时器对输入信号的要求 122
6.3 定时器应用 122
6.3.2 定时器的编程步骤 123
6.3.3 应用举例 124
6.4 思考练习题 128
第7章 单片机的串行通信及接口 129
7.1 串行通信的有关概念 129
7.1.1 数据通信 129
7.1.2 串行通信的传输方向 130
7.1.3 异步通信和同步通信 131
7.1.4 串行通信的波特率 132
7.1.5 远距离串行通信 133
7.1.6 串行通信接口 133
7.2.1 MCS-51串行接口机构 134
7.2 MCS-51串行通信接口及控制寄存器 134
7.2.2 串行口控制寄存器 135
7.3 串行接口的工作方式 138
7.3.1 工作方式0 138
7.3.2 工作方式1 139
7.3.3 工作方式2和工作方式3 141
7.3.4 波特率设计 141
7.4 串行口的应用 143
7.4.1 同步通信方式的应用 143
7.4.2 方式1双机通信应用 144
7.4.3 多机通信 147
7.5 思考练习题 156
第8章 MCS-51单片机的系统扩展 158
8.1 程序存储器的扩展 158
8.1.1 外部程序存储器的操作时序 159
8.1.2 地址锁存器及EPROM,EEPROM芯片介绍 160
8.2 数据存储器的扩展 164
8.2.1 外部数据存储器的操作时序 164
8.2.2 常用的单片机外部数据存储器 165
8.3 外部I/O的扩展 167
8.3.1 I/O口扩展概述 167
8.3.2 I/O口地址译码方法 167
8.3.3 82C55可编程并行I/O口 170
8.3.4 81C55可编程并行I/O口 181
8.4 思考练习题 186
第9章 接口技术 187
9.1 键盘接口 187
9.1.1 键盘接口所涉及的问题 187
9.1.2 键盘设计 188
9.1.3 按键的识别编程 189
9.1.4 键盘识别举例 190
9.2 LED显示器接口 194
9.2.1 LED简介 194
9.2.2 LED显示器及显示方式 195
9.2.3 LED与单片机的接口设计 196
9.3 A/D转换器接口 199
9.3.1 ADC0809简介 200
9.3.2 8051与ADC0809的接口设计 201
9.4 D/A转换器接口 203
9.4.1 DAC0832的管脚及内部结构 204
9.4.2 DAC0832与8051的接口设计 205
9.5 思考练习题 207
第10章 MCS-51兼容机及串行总线扩展 209
10.1 AT89S52单片机 209
10.2 AT89C2051单片机 210
10.2.1 AT89C2051的主要性能 211
10.2.2 AT89C2051的管脚分布 211
10.3.1 具有SPI总线的12位A/D转换器TLC2543简介 212
10.3 SPI总线简介及应用 212
10.2.3 AT89C2051指令与MCS-51的不同之处 212
10.3.2 TLC2543的时序 213
10.3.3 TLC2543与MCS-51系列单片机的接口设计 214
10.4 I2C总线简介及应用 216
10.4.1 I2C总线器件的地址分配 216
10.4.2 I2C总线的数据传输 217
10.4.3 AT89C2051单片机与AT24C系列串行EEPROM的接口设计 218
10.5 思考练习题 222
附录A ASCII码表 223
附录B MCS-51单片机指令速查表 224
附录C 常用集成电路引脚图 228
参考文献 230