第1章 单片机技术基础 1
1.1单片机概述 1
1.1.1单片机定义 1
1.1.2单片机特点和应用 1
1.1.3单片机技术的发展 2
1.1.4 MCS-51单片机系列 3
1.1.5单片机选型 4
1.2单片机内部结构 5
1.2.1 CPU 6
1.2.2存储器结构 7
1.2.3 I/O接口 12
1.3 8051引脚及其功能 12
1.3.1电源与时钟引脚 12
1.3.2控制引脚 13
1.3.3 I/O接口引脚 13
1.4并行口内部结构和工作原理 14
1.4.1 P0口 14
1.4.2 P1口 15
1.4.3 P2口 15
1.4.4 P3口 16
1.4.5并行端口负载能力 17
1.5时钟电路与时序 17
1.5.1时钟电路 18
1.5.2周期与指令时序 18
1.6单片机工作方式 20
1.6.1单片机复位方式 20
1.6.2程序运行方式 21
1.6.3掉电保护方式 21
1.6.4低功耗方式 21
1.7单片机应用系统开发简介 22
1.7.1单片机应用系统设计步骤 22
1.7.2单片机开发工具简介 23
1.8思考题 24
第2章 指令系统和汇编语言 26
2.1概述 26
2.1.1指令格式 26
2.1.2指令描述符号说明 27
2.2寻址方式 27
2.2.1寄存器寻址 27
2.2.2直接寻址 28
2.2.3立即寻址 28
2.2.4寄存器间接寻址 28
2.2.5基址加变址寻址 28
2.2.6相对寻址 29
2.2.7位寻址 29
2.3指令分类介绍 30
2.3.1数据传送指令 30
2.3.2算术运算指令 34
2.3.3逻辑操作指令 39
2.3.4控制转移指令 41
2.3.5位操作指令 46
2.4指令执行过程 49
2.5常用伪指令 50
2.6汇编语言程序基本结构 52
2.7思考题 55
第3章 单片机C51程序设计 57
3.1单片机C语言程序设计概述 57
3.1.1 C51程序设计语言简介 57
3.1.2 Keil C51开发环境简介 57
3.2 C51程序设计基础 61
3.2.1 C51中的数据类型 61
3.2.2 C51中常量和变量 63
3.2.3 C51中的运算符 65
3.2.4 C51程序基本结构 66
3.3单片机硬件资源的C51访问 69
3.4 C51和汇编语言混合编程 71
3.4.1 C51和汇编语言编程比较和说明 71
3.4.2 C51和汇编语言混合编程方法 71
3.5思考题 72
第4章 单片机与Proteus虚拟仿真 74
4.1 Proteus概述 74
4.2 Proteus ISIS应用简介 74
4.2.1 Proteus ISIS集成环境 75
4.2.2 Proteus ISIS元器件库 77
4.2.3 Proteus ISIS中的原理图绘制 78
4.2.4虚拟仿真工具 80
4.3 Proteus中的电子设计与仿真 82
4.3.1直流稳压电源设计 83
4.3.2光控LED小夜灯设计 85
4.3.3数字钟设计 86
4.4 Proteus中的单片机系统设计与仿真 89
4.4.1单片机电路原理图绘制 89
4.4.2程序的设计与编译 89
4.4.3目标代码的加载 90
4.4.4程序调试与观察 91
4.4.5 Proteus和Keil C联机调试 92
4.4.6单片机流水灯控制 94
4.5思考题 96
第5章 单片机中断系统 98
5.1中断技术概述 98
5.2 8051中断系统结构及其控制 98
5.2.1中断系统结构 99
5.2.2中断源及中断标志 99
5.2.3中断控制和中断处理 101
5.3外部中断的实现 105
5.3.1外部中断触发方式 105
5.3.2多中断源系统硬件扩展 106
5.4中断系统程序设计 106
5.4.1中断程序基本结构 107
5.4.2中断初始化程序设计 109
5.4.3中断服务子程序设计 110
5.5单片机LED显示模式控制设计实例 111
5.6思考题 113
第6章 定时/计数器 115
6.1定时/计数器工作原理及其控制 115
6.1.1内部结构和工作原理 115
6.1.2功能及其控制 116
6.2定时/计数器工作方式及其设置 118
6.2.1工作方式及其特点 118
6.2.2定时/计数器配置及初始化 120
6.2.3扩大定时时间方法 126
6.3定时/计数器实现软件“看门狗”原理 128
6.4单片机LED亮度控制系统设计实例 130
6.5思考题 133
第7章 单片机串行口 135
7.1串行通信概述 135
7.2 8051单片机串行口结构 137
7.2.1串行口通信接口结构 137
7.2.2串行通信控制寄存器 137
7.3串行口的工作方式及波特率设定 138
7.3.1工作方式0 139
7.3.2工作方式1 140
7.3.3工作方式2 141
7.3.4工作方式3 143
7.3.5波特率计算 143
7.4多机通信原理 145
7.5单片机的双机通信应用实例 146
7.5.1串行通信接口电路 146
7.5.2双机通信系统软件设计 147
7.6思考题 151
第8章 单片机存储器扩展 153
8.1存储器扩展 153
8.1.1半导体存储器简介 153
8.1.2典型存储器芯片介绍 154
8.1.3存储器的扩展和地址译码 157
8.1.4存储器扩展实例 161
8.1.5串行E2 PROM扩展 164
8.2 I/O端口的基本应用与扩展 170
8.2.1 I/O端口基本输入/输出应用 171
8.2.2串、并口简单扩展电路 172
8.3思考题 176
第9章 单片机系统接口扩展及应用 178
9.1键盘接口扩展 178
9.1.1按键识别与处理 178
9.1.2独立式键盘原理与接口 179
9.1.3行列式键盘原理与接口 180
9.1.4利用独立式按键实现4路抢答器 184
9.2显示接口扩展 186
9.2.1 LED数码管工作原理 186
9.2.2 LED数码管显示接口 187
9.2.3利用74LS164实现2位静态显示电路 188
9.2.4利用MAX7219实现4位动态显示电路 190
9.2.5 LCD模块概述 194
9.2.6利用LCD1602实现字符显示 197
9.2.7利用LCM1264ZK实现汉字显示 200
9.3模拟量输入/输出接口扩展 204
9.3.1模拟量输入/输出接口概述 204
9.3.2 D-A转换器概述 204
9.3.3利用DAC0832实现锯齿波信号发生器 206
9.3.4 A-D转换器概述 208
9.3.5利用ADC0808实现模拟量采集 208
9.4思考题 211
第10章 串行扩展和功率接口技术 213
10.1单片机串行扩展技术 213
10.1.1单总线技术概述 213
10.1.2 DS18B20单总线测温应用实例 214
10.1.3 SPI总线概述 220
10.1.4 SPI总线E2 PROM扩展应用实例 221
10.2单片机功率接口技术 225
10.2.1开关型功率接口概述 225
10.2.2单片机功率晶体管接口应用实例 227
10.2.3单片机继电器接口应用实例 228
10.2.4单片机晶闸管接口应用实例 230
10.3思考题 231
第11章 虚拟仿真综合设计实例 232
11.1单片机多功能秒表设计与仿真 232
11.1.1多功能秒表电路设计 232
11.1.2多功能秒表程序设计 233
11.1.3多功能秒表调试与仿真 237
11.2单片机直流电动机调速系统设计与仿真 238
11.2.1直流电动机调速系统电路设计 238
11.2.2直流电动机调速系统程序设计 239
11.2.3直流电动机调速系统调试与仿真 243
11.3单片机多功能电子日历设计与仿真 243
11.3.1多功能电子日历电路设计 243
11.3.2多功能电子日历程序设计 244
11.3.3多功能电子日历调试与仿真 248
11.4单片机自动抽油烟机设计与仿真 249
11.4.1自动抽油烟机电路设计 249
11.4.2自动抽油烟机程序设计 250
11.4.3自动抽油烟机调试与仿真 255
附录 257
附录A 常用字符与ASCII代码对照表 257
附录B MCS-51系列单片机指令表 258
参考文献 262