1单片机硬件系统基础 1
1.1概述 1
1.1.1微型计算机系统 1
1.1.2单片机应用系统 1
1.2MCS-51单片机的基本结构 3
1.2.1MCS-51单片机的组成 3
1.2.2MCS-51单片机的信号引脚 4
1.2.3时钟电路和复位电路 6
1.3MCS-51单片机存储器结构 9
1.3.1MCS-51单片机内部数据存储器 10
1.3.2特殊功能寄存器 12
1.3.3MCS-51单片机内部程序存储器 14
练习和思考 15
2单片机汇编语言基础 16
2.1概述 16
2.2MCS-51单片机指令格式 16
2.3MCS-51单片机指令寻址方式 17
2.3.1立即数寻址 17
2.3.2直接寻址 17
2.3.3寄存器寻址 18
2.3.4寄存器间接寻址 18
2.3.5变址寻址 18
2.3.6相对寻址 19
2.3.7位寻址 19
2.4MCS-51单片机指令系统 19
2.4.1MCS-51单片机指令分类 19
2.4.2MCS-51单片机指令功能 19
2.4.3MCS-51单片机执行指令的过程 20
2.5MCS-51单片机数据传送指令 21
2.5.18位数据传送指令 22
2.5.216位数据传送指令 23
2.5.3堆栈操作指令 23
2.5.4字节交换指令 24
2.5.5片外数据传送指令 24
练习和思考 25
3并行输入/输出口 28
3.1项目引入:彩灯控制器 28
3.1.1应用场合 28
3.1.2基本功能 28
3.1.3设计要点 29
3.2技术准备:相关知识 29
3.2.1ORG和END伪指令 29
3.2.2逻辑移位指令 29
3.2.3控制转移类指令 31
3.2.4子程序调用与返回指令 32
3.2.5并行输入/输出P1口的结构 33
3.2.6LED的应用 34
3.2.7延时子程序的设计 36
3.3项目实现:彩灯控制器的设计 37
3.3.1硬件电路设计 37
3.3.2流程设计 39
3.3.3程序代码设计 41
3.3.4仿真和调试 43
3.4知识综述:并行输入/输出口 45
3.4.1P0口 45
3.4.2P2口 46
3.4.3P3口 47
3.5技能提高:彩灯控制器的改进 48
练习和思考 49
4单片机与键盘、显示器接口 50
4.1项目引入:简易计算器 50
4.1.1应用场合 50
4.1.2基本功能 51
4.1.3设计要点 51
4.2技术准备:相关知识 51
4.2.1常用数制和编码 51
4.2.2定义字节伪指令 54
4.2.3查表指令 55
4.2.4算术运算指令 56
4.2.5比较转移指令 59
4.2.6逻辑运算指令 60
4.2.7延时子程序延时时间的计算 61
4.2.8LED 8段数码显示器原理 62
4.2.9矩阵键盘的原理 63
4.3项目实现:简易计算器的设计 64
4.3.1硬件连接 64
4.3.2键盘输入程序设计 64
4.3.3显示子程序设计 67
4.3.4主程序设计 68
4.3.5仿真和调试 71
4.4知识综述:键盘与LED数码显示接口 72
4.4.1键盘接口 72
4.4.2LED数码显示接口 75
4.5技能提高:简易计算器的改进 77
练习和思考 77
5单片机中断系统 79
5.1项目引入:四人抢答器 79
5.1.1应用场合 79
5.1.2基本功能 79
5.1.3设计要点 80
5.2技术准备:相关知识 81
5.2.1中断的基本概念 81
5.2.2外部中断0的硬件连接 82
5.2.3中断控制寄存器的使用 82
5.2.4外部中断0的入口地址 84
5.2.5外部中断0的响应过程 84
5.2.6位操作指令 84
5.2.7条件转移指令 85
5.2.8中断返回指令 86
5.3项目实现:四人抢答器的设计 86
5.3.1功能和设计思路 86
5.3.2硬件电路设计 87
5.3.3程序流程设计 88
5.3.4软件编程 88
5.3.5仿真和调试 91
5.4知识综述:中断系统 92
5.4.1MCS-51单片机的中断系统及其管理 92
5.4.2中断处理过程 98
5.4.3中断请求信号的撤除 100
5.4.4外部中断源的扩展 101
5.4.5中断的使用说明 102
5.5技能提高:四人抢答器的改进 102
练习和思考 106
6单片机定时/计数器 107
6.1项目引入:LED计时显示器 107
6.1.1应用场合 107
6.1.2基本功能 107
6.1.3设计要点 107
6.2技术准备:定时/计数器1 108
6.2.1定时/计数器1的结构 108
6.2.2定时/计数器1的应用实例 110
6.3项目实现:LED计时显示器的设计 111
6.3.1功能和设计思路 111
6.3.2硬件连接 112
6.3.3程序流程 112
6.3.4程序代码 113
6.3.5仿真和调试 115
6.4知识综述:定时/计数器综述 116
6.4.1定时/计数器的结构和工作原理 116
6.4.2工作方式寄存器和控制寄存器 118
6.4.3定时/计数器的工作方式 121
6.4.4定时器扩充外部中断源 128
6.4.5软件定时和硬件定时 129
6.4.6定时/计数器编程 129
6.5技能提高:LED计时显示器的改进 130
练习和思考 132
7单片机串行口通信 133
7.1项目引入:倒计时显示远程控制器 133
7.1.1应用场合 133
7.1.2基本功能 133
7.1.3设计要点 133
7.2技术准备:串行通信方式 134
7.2.1异步传送方式 134
7.2.2波特率 134
7.2.3单片机串行通信接口电路 135
7.2.4串行口工作方式1 136
7.3项目实现:倒计时显示远程控制器的设计 139
7.3.1功能和设计要点 139
7.3.2硬件连接 140
7.3.3程序流程 141
7.3.4程序代码 142
7.3.5仿真和调试 148
7.4知识综述:单片机串行通信 150
7.4.1串行通信概述 150
7.4.2MCS-51单片机串行口 151
7.4.3MCS-51单片机串行口的工作方式 153
7.4.4波特率的计算 158
7.4.4多机通信 159
7.5技能提高:倒计时显示远程控制器的改进 160
练习和思考 161
8单片机与A/D、D/A接口 162
8.1问题引入 162
8.2知识综述:A/D转换器 162
8.2.1ADC0809的内部结构和信号引脚 162
8.2.2MCS-51单片机与ADC0809的接口 164
8.3项目实现:0~5V电压测试仪 166
8.3.1项目功能 166
8.3.2硬件连接 166
8.3.3程序流程 168
8.3.4程序代码 168
8.3.5仿真和调试 170
8.4知识综述:D/A转换器 173
8.4.1D/A转换器的原理和性能指标 174
8.4.2典型的D/A转换器DAC0832 175
8.4.3MCS-51单片机与D/A转换器的接口 176
8.4.4DAC0832的模拟输出 178
8.5项目实现:波形发生器 179
8.5.1项目功能 179
8.5.2硬件连接 179
8.5.3软件流程 180
8.5.4程序代码 181
8.5.5实验调试 182
8.6技能提高:A/D、D/A接口应用 182
练习和思考 185
9存储器的扩展 186
9.1项目引入:记忆训练器 186
9.1.1应用场合 186
9.1.2基本功能 186
9.1.3设计要点 187
9.2技术准备:相关知识 187
9.2.1外部数据存储器的读写指令 187
9.2.2程序单元的数据读取指令 188
9.2.3单片机总线结构 188
9.2.4数据存储器和地址锁存器 190
9.2.5单片机与数据存储器的连接 192
9.3项目实现:记忆训练器的设计 193
9.3.1功能和设计思路 193
9.3.2硬件连接 194
9.3.3程序流程 194
9.3.4程序代码 195
9.3.5仿真和调试 199
9.4知识综述:存储器和I/O口的扩展 202
9.4.1数据存储器的扩展 202
9.4.2程序存储器的扩展 206
9.4.3I/O口的扩展 209
9.5技能提高:记忆训练器的改进 216
练习和思考 217
10综合设计项目 218
10.1课题1:乒乓游戏机 218
10.2课题2:猜数游戏机 222
附录A MCS-51汇编指令汇总表 226
附录B KEIL公司μVision2集成开发环境 230
附录C Proteus 6.9仿真软件简介 240
附录D ASCII码表 250
参考文献 252