知识模块一 单片机设计入门 1
1.1 单片机的产生与发展 1
1.2 常用单片机简介 3
1.3 单片机开发工具简介 7
1.3.1 Keil μVision3开发工具简介 7
1.3.2 Proteus软件使用简介 14
1.4 项目设计——单片机系统设计过程演示 19
1.4.1 Keil μVision3软件设计 20
1.4.2 Proteus软件仿真单片机项目设计 23
1.4.3 烧录程序(编程操作) 24
1.4.4 动手制作 27
本章小结 27
习题 27
知识模块二 51系列单片机的基本结构 28
2.1 51系列单片机的内部结构 28
2.2 51系列单片机的引脚功能 31
2.2.1 51系列单片机的引脚封装 31
2.2.2 51系列单片机DIP40引脚功能说明 33
2.3 51系列单片机的存储器结构 37
2.3.1 程序存储器 38
2.3.2 数据存储器 39
2.3.3 存储器扩展 43
2.4 项目设计——单片机最小系统 43
2.4.1 单片机最小系统设计 43
2.4.2 单片机复位电路 44
2.4.3 振荡器和时钟电路 45
2.4.4 51系列单片机最小系统原理及编程电路设计 46
本章小结 48
习题 48
知识模块三 51系列单片机汇编语言程序设计 50
3.1 汇编指令系统简介 50
3.1.1 汇编指令格式 51
3.1.2 汇编指令符号 52
3.1.3 汇编语言的语句格式 52
3.2 汇编指令寻址方式 54
3.2.1 立即寻址 54
3.2.2 直接寻址 54
3.2.3 寄存器寻址 54
3.2.4 寄存器间接寻址 55
3.2.5 变址寻址 55
3.2.6 相对寻址 56
3.2.7 位寻址 57
3.3 数据传送类指令 57
3.3.1 内部RAM间的数据传送 57
3.3.2 ACC与外部数据存储器(或扩展的I/O口)传递数据指令 59
3.3.3 程序存储器数据传送指令 59
3.3.4 堆栈操作 61
3.3.5 数据交换指令 61
3.4 算术运算类指令 62
3.4.1 加法指令 62
3.4.2 减法指令 63
3.4.3 加1和减1指令 63
3.4.4 十进制调整指令 64
3.4.5 乘法和除法指令 65
3.4.6 项目设计——无符号数加法运算案例分析 65
3.5 逻辑运算及移位类指令 68
3.5.1 累加器A取反指令 68
3.5.2 累加器A清零指令 68
3.5.3 逻辑与指令 68
3.5.4 逻辑或指令 69
3.5.5 逻辑异或指令 69
3.5.6 循环移位指令 70
3.5.7 项目设计——逻辑运算案例分析 71
3.6 控制转移类指令 74
3.6.1 无条件转移指令 75
3.6.2 条件转移指令 76
3.6.3 数值比较不相等转移指令 77
3.6.4 循环转移指令 77
3.6.5 子程序调用及返回指令 78
3.6.6 项目设计——跳转指令案例分析 80
3.7 位操作类指令 84
3.7.1 位数据传送指令 84
3.7.2 置位和清零指令 84
3.7.3 位逻辑运算指令 84
3.7.4 项目设计——运用单片机实现逻辑函数的演练 85
3.8 汇编语言程序设计 87
3.8.1 汇编语言简介 87
3.8.2 汇编语言指令 88
3.8.3 顺序程序的设计 91
3.8.4 分支程序设计 92
3.8.5 循环程序设计 94
3.8.6 查表程序设计 97
本章小结 98
习题 98
知识模块四 51系列单片机I/O口应用 101
4.1 LED概述 101
4.2 项目设计——单个LED构成霹雳灯实例演练 104
4.3 项目设计——数码管静态显示演练 107
4.4 项目设计——数码管动态显示演练 109
4.5 项目设计——驱动蜂鸣器实例演练 112
4.6 项目设计——驱动继电器实例演练 116
4.7 项目设计——按钮开关输入电路设计 121
4.8 键盘扫描设计 126
4.8.1 项目设计——独立式键盘实例演练 126
4.8.2 项目设计——行列式键盘实例演练 129
本章小结 134
习题 134
知识模块五 51系列单片机的中断应用 136
5.1 中断系统概述 136
5.1.1 中断的相关概念 136
5.1.2 CPU与外设之间的数据传送方式 137
5.1.3 中断的种类 137
5.2 51系列单片机的中断系统 138
5.2.1 51系列单片机中断类型 138
5.2.2 中断控制寄存器 139
5.2.3 中断向量地址与中断控制 141
5.3 中断服务程序设计 145
5.3.1 中断初始化 145
5.3.2 中断子程序 145
5.3.3 项目设计——运用中断法设计信号灯 146
本章小结 149
习题 149
知识模块六 51系列单片机定时器/计数器应用 151
6.1 定时器/计数器的结构及工作原理 151
6.1.1 定时器/计数器组成 151
6.1.2 单片机定时器/计数器的功能 152
6.1.3 定时器/计数器的控制寄存器与工作方式 152
6.1.4 定时器/计数器的工作方式 153
6.2 定时器/计数器的应用实例演练 156
6.2.1 项目设计——蜂鸣器发音实例演练:查询方式 156
6.2.2 项目设计——闪烁灯实例演练:中断方式 159
6.2.3 项目设计——频率发生器实例演练 162
本章小结 166
习题 166
知识模块七 51系列单片机串行通信 167
7.1 串行通信概述 167
7.1.1 波特率 167
7.1.2 串行通信的方式 168
7.1.3 串行通信总线标准及接口 171
7.2 认识51系列单片机串行口 173
7.2.1 51系列单片机串行口结构 173
7.2.2 串行口控制寄存器 174
7.2.3 51系列单片机串行口工作方式 175
7.2.4 波特率的设置 178
7.3 51系列单片机串行口设计 180
7.3.1 项目设计——串行转并行实验演练 180
7.3.2 项目设计——并行转串行实例演练 183
7.3.3 项目设计——单片机与单片机之间远距离通信实验演练 185
本章小结 190
习题 190
知识模块八 51系列单片机接口扩展 192
8.1 51系列单片机的总线结构 192
8.2 51系列单片机的地址编码 193
8.3 存储器并行扩展 194
8.3.1 存储器简介 194
8.3.2 存储器并行扩展的一般方法 198
8.3.3 项目设计——Flash存储器扩展设计 199
8.4 A/D转换接口 202
8.4.1 ADC0809数/模转换器 203
8.4.2 ADC0809与单片机接口 204
8.5 项目设计——简易数字电压表实例演练 207
8.6 认识D/A转换IC——DAC0832 215
8.7 项目设计——DAC0832和单片机实验演练 218
本章小结 221
习题 221
知识模块九 51系列单片机实验开发板综合实训 222
9.1 单片机应用系统开发过程 222
9.1.1 总体设计 222
9.1.2 硬件设计 224
9.1.3 资源分配 224
9.2 单片机开发工具及选择 225
9.2.1 仿真器 225
9.2.2 其他工具 225
9.3 系统可靠性设计 226
9.4 51系列单片机实验电路板设计与制作 226
9.4.1 实验电路板元器件清单 226
9.4.2 单片机实验电路板原理图设计 228
9.4.3 项目设计——51系列单片机实验开发板软件测试 228
9.4.4 项目设计——单片机实验板在线编程测试 232
9.5 项目设计——单片机实验板电源及最小系统单元电路 233
9.6 项目设计——8路LED跑马灯单元电路的安装与测试 235
9.7 项目设计——2位数码管单元电路的安装与测试 237
9.8 项目设计——单片机演奏音乐单元电路的安装与测试 239
9.9 项目设计——单片机控制继电器单元电路的安装与调试 242
9.10 项目设计——单片机串口单元电路的安装与调试 246
9.11 项目设计——单片机串行E2PROM扩展单元电路的设计 248
9.12 项目设计——单片机红外线遥控器接收单元电路 252
附录 257
附录A 51系列单片机指令表 257
附录B C51系列单片机程序设计简介 260
参考文献 277