基础篇 2
1 单片机基础知识 2
1.1 引言 2
1.1.1 计算机 2
1.1.2 微型机 4
1.1.3 单片机与嵌入式计算机 4
1.2 常用数制和码制 5
1.2.1 常用的数制及其转换 5
1.2.2 常用的码制 8
实验一、认识补码 12
1.3 单片机内部结构概述 13
1.3.1 中央处理器CPU概述 13
1.3.2 存储器概述 16
1.3.3 输入/输出接口概述 18
1.4 单片机产品概述 19
1.4.1 单片机产品的类型 19
1.4.2 单片机产品的应用 20
1.5 本章小结 20
习题1 21
2 MCS-51系列单片机系统基本组成 22
2.1 总体结构 22
2.1.1 内部结构 22
2.1.2 外部引脚 23
2.2 CPU特性 24
2.3 存储器组织 24
2.3.1 程序存储器 25
2.3.2 数据存储器 26
2.3.3 特殊功能寄存器 28
2.3.4 外部数据存储器和I/O接口 29
2.4 I/O接口 30
2.4.1 P1口 30
2.4.2 P3口 31
2.4.3 P2口 32
2.4.4 P0口 32
实验二、认识P0~P3口 32
2.5 时钟和时钟电路 33
2.6 复位和复位电路 33
2.7 本章小结 34
习题2 34
3 MCS-51系列指令系统 36
3.1 指令格式和寻址方式 36
3.1.1 立即寻址方式 37
3.1.2 直接寻址方式 37
3.1.3 寄存器寻址方式 38
3.1.4 寄存器间接寻址方式 38
3.1.5 变址寻址方式 38
3.1.6 相对寻址方式 39
3.1.7 位寻址方式 40
3.2 数据传送类指令 41
3.2.1 内部数据传送指令 41
3.2.2 内外数据传送指令 44
3.2.3 查表指令 46
实验三、寻址方式和堆栈的认识 46
3.3 数据处理类指令 47
3.3.1 算术运算指令 48
3.3.2 逻辑运算指令 51
3.3.3 移位指令 54
3.4 位操作类指令 55
3.4.1 位变量传送指令 56
3.4.2 位变量设置指令 56
3.4.3 位变量逻辑运算指令 57
3.5 程序转移类指令 58
3.5.1 无条件转移指令 58
3.5.2 有条件转移指令 60
3.5.3 调用和返回子程序指令 62
实验四、转移类指令和位操作类指令的认识 65
3.6 CPU执行指令的时序 66
3.7 本章小结 67
习题3 67
4 MCS-51系列汇编语言程序设计 71
4.1 伪指令 71
4.1.1 起始指令 71
4.1.2 结束指令 71
4.1.3 数据定义类指令 72
4.2 汇编语言语句格式 74
实验五、认识汇编语言程序格式 74
4.3 汇编语言程序设计方法 75
4.3.1 顺序结构程序设计 76
4.3.2 分支结构程序设计 76
4.3.3 循环结构程序设计 78
4.3.4 子程序设计 80
4.3.5 经典程序设计举例 85
实验六、查表程序设计 93
实验七、排序程序设计 94
4.4 本章小结 95
习题4 95
5 MCS-51单片机系列中断系统 98
5.1 中断的概念 98
5.1.1 什么是中断 98
5.1.2 中断源 98
5.1.3 中断优先级 99
5.1.4 控制中断的特殊功能寄存器 100
5.2 中断处理过程 102
5.2.1 中断申请 102
5.2.2 中断响应条件 102
5.2.3 中断处理过程 102
5.2.4 中断请求信号的撤消 103
5.3 中断程序的编制 103
5.3.1 中断初始化程序的编制 103
5.3.2 中断服务子程序的编写 104
实验八、认识中断系统和中断服务子程序编写 105
5.4 本章小结 106
习题5 107
6 MCS-51单片机定时器/计数器 108
6.1 定时器/计数器的结构和工作原理 108
6.1.1 定时器/计数器T0和T1 108
6.1.2 定时器/计数器T2 112
6.1.3 定时器/计数器的使用极限 115
6.2 控制定时器/计数器的特殊功能寄存器 115
6.3 定时器/计数器的应用及其编程 117
6.3.1 初始化编程 117
6.3.2 定时器/计数器应用编程 118
实验九、定时器/计数器应用 126
6.4 本章小结 128
习题6 128
7 MCS-51单片机串行接口 130
7.1 串行通信的概念 130
7.2 单片机串行接口的结构原理 132
7.3 单片机串行接口的工作方式和原理 134
7.3.1 串行口控制寄存器SCON(Serial Control) 134
7.3.2 串行口工作方式0 135
7.3.3 串行口工作方式1 138
7.3.4 串行口工作方式2、3 138
7.3.5 串行口数据传送的波特率 139
7.4 串行口应用举例 140
实验十、串行口双机通信 147
7.5 本章小结 149
习题7 150
扩展、接口和应用篇 152
8 MCS-51单片机的扩展技术 152
8.1 单片机扩展原理 152
8.2 程序存储器扩展 153
8.2.1 EPROM存储器芯片 153
8.2.2 程序存储器芯片与系统的连接举例 154
8.3 数据存储器的扩展 158
8.3.1 常用静态随机存储器(SRAM)芯片 158
8.3.2 数据存储器扩展应用举例 159
8.3.3 CPU如何访问外部存储器 163
实验十一、数据存储器的扩展和测试 164
8.4 并行接口的扩展 165
8.4.1 基本并行接口及其扩展 166
实验十二、基本并行口及其扩展 169
8.4.2 8255A并行口及其扩展 171
实验十三、8255A并行口及其扩展 180
8.5 综合接口芯片8155 181
8.6 本章小结 185
习题8 185
9 键盘/显示器的接口技术 187
9.1 LED数码显示器结构原理和接口技术 187
9.1.1 LED数码显示器结构原理 187
9.1.2 LED数码显示器的显示码 187
9.1.3 LED显示器的显示方式及其显示程序 188
9.2 键盘结构原理与接口技术 193
9.2.1 键盘电路的结构原理 193
9.2.2 键抖动问题 194
9.2.3 键盘接口电路举例 195
9.3 8279显示器/键盘接口电路的原理和应用 198
9.3.1 8279内部结构 198
9.3.2 8279的接口工作方式 199
9.3.3 8279的控制命令字、状态字和数据格式 200
9.3.4 8279芯片外部引脚 202
9.3.5 8279的应用举例 203
实验十四、8279显示器/键盘接口和编程 209
9.4 本章小结 209
习题9 210
10 D/A和A/D转换器的接口技术 211
10.1 D/A转换器和接口技术 211
10.1.1 D/A转换器原理 211
10.1.2 D/A转换器性能指标 214
10.1.3 DAC0832的结构原理和接口技术 214
10.1.4 DAC0832的应用和编程 216
实验十五、D/A转换器应用举例 219
10.2 A/D转换器和接口技术 221
10.2.1 A/D转换器原理 221
10.2.2 A/D转换器的主要性能指标 221
10.2.3 ADC0809的结构原理和接口技术 222
10.2.4 A/D转换器的应用举例 223
实验十六、A/D转换器的应用和编程 227
10.3 本章小结 228
习题10 228
11 单片机应用系统的研制 230
11.1 单片机应用系统设计概论 230
11.2 单片机应用系统硬件设计 230
11.3 单片机应用系统的软件设计 233
11.4 单片机应用系统设计举例 235
实验十七、单片机应用系统设计举例 244
11.5 本章小结 244
习题11 244
C51篇 246
12 C51程序设计初步 246
12.1 C51概论 246
12.1.1 C51语言与C语言 246
12.1.2 C51语言与51系列汇编语言 246
12.2 C51的数据类型 247
12.2.1 数据类型 247
12.2.2 存储器类型 247
12.2.3 访问特殊功能寄存器 249
12.2.4 位变量的定义 249
12.2.5 C51指针 250
12.2.6 绝对地址访问 250
12.2.7 存储器模式 251
12.3 C51位变量逻辑运算符 251
实验十八、认识C51的位操作运算符 251
12.4 C51程序设计 252
12.4.1 基本并行接口的输入/输出程序的设计 252
12.4.2 8255A并行接口的输入/输出程序的设计 253
12.4.3 51串行口发送/接收程序设计 254
12.4.4 D/A转换控制程序的设计 257
12.4.5 A/D转换控制程序的设计 258
12.5 C51函数库 260
12.6 本章小结 261
习题12 261
附录 51系列单片机指令表 263
参考文献 267