第1章 8051单片机基本结构 1
1.1 8051单片机的特点与基本结构 1
1.2 8051单片机的存储器结构 5
1.3 CPU时序 8
1.4复位信号与复位电路 10
1.5并行I/O端口结构 11
复习思考题 13
第2章 Proteus虚拟仿真技术 15
2.1集成环境ISIS 15
2.2绘制原理图 18
2.3创建汇编语言源代码仿真文件 21
2.4在原理图中进行源代码仿真调试 22
2.5原理图与Keil环境联机仿真调试 25
复习思考题 31
第3章 指令系统与汇编语言程序设计 32
3.1指令助记符和字节数 32
3.2寻址方式 33
3.2.1寄存器寻址 34
3.2.2直接寻址 34
3.2.3立即寻址 34
3.2.4寄存器间接寻址 35
3.2.5变址寻址 35
3.2.6相对寻址 36
3.2.7位寻址 36
3.3指令分类详解 37
3.3.1算术运算指令 37
3.3.2逻辑运算指令 39
3.3.3数据传送指令 40
3.3.4控制转移指令 42
3.3.5位操作指令 44
3.4汇编语言程序格式与伪指令 44
3.5应用程序设计 46
3.6定点数运算子程序 48
复习思考题 58
第4章 Keil C51应用程序设计 61
4.1 Keil C51程序设计的基本语法 61
4.1.1 Keil C51程序的一般结构 61
4.1.2数据类型 62
4.1.3常量、变量及其存储模式 63
4.1.4运算符与表达式 64
4.2 C51程序的基本语句 68
4.2.1表达式语句 68
4.2.2复合语句 68
4.2.3条件语句 69
4.2.4开关语句 69
4.2.5循环语句 70
4.2.6 goto、 break、 continue语句 70
4.2.7返回语句 71
4.3函数 71
4.3.1函数的定义与调用 71
4.3.2中断服务函数与寄存器组定义 72
4.4 Keil C51编译器对ANSIC的扩展 73
4.4.1存储器类型与编译模式 73
4.4.2关于bit、 sbit、sfr\ sfr16数据类型 75
4.4.3一般指针与基于存储器的指针及其转换 77
4.4.4 C51编译器对ANSI C函数定义的扩展 79
4.5 C51编译器的数据调用协议 82
4.6绝对地址访问 83
4.6.1采用扩展关键字“at”或指针定义变量的绝对地址 83
4.6.2采用预定义宏指定变量的绝对地址 84
4.7 Keil C51库函数 85
4.7.1本征库函数 85
4.7.2字符判断转换库函数 86
4.7.3输入/输出库函数 86
4.7.4字符串处理库函数 87
4.7.5类型转换及内存分配库函数 88
4.7.6数学计算库函数 89
复习思考题 90
第5章 中断系统与定时器/计数器 91
5.1中断的概念 91
5.2中断系统结构与中断控制 92
5.3中断响应 95
5.4中断系统应用举例 97
5.4.1中断源扩展 97
5.4.2中断嵌套 100
5.5定时器/计数器的工作方式与控制 103
5.6定时器/计数器应用举例 106
5.6.1初值和最大定时时间计算 107
5.6.2定时器方式应用 107
5.6.3计数器方式应用 115
5.7利用定时器产生音乐 118
复习思考题 125
第6章 串行口通信技术 126
6.1串行通信方式 126
6.2串行口的工作方式与控制 127
6.3串行口应用举例 131
6.3.1串口/并口转换 131
6.3.2单片机之间的通信 134
6.3.3单片机与PC之间的通信 149
复习思考题 156
第7章 单片机系统扩展 157
7.1程序存储器扩展 157
7.2数据存储器扩展 158
7.3并行I/O端口扩展 161
7.4利用I/O总线进行系统扩展 174
7.5 8051单片机的节电工作方式 188
7.5.1空闲和掉电工作方式 189
7.5.2节电方式的应用 190
复习思考题 191
第8章 模/数与数/模转换接口技术 193
8.1转换器的主要技术指标 193
8.2数/模转换器接口技术 194
8.2.1无内部锁存器的DAC接口方法 195
8.2.2 DAC0832与8051单片机的接口方法 196
8.2.3 DAC 1208与8051单片机的接口方法 203
8.2.4串行DAC与8051单片机的接口方法 205
8.2.5利用DAC接口实现波形发生器 212
8.3模/数转换器接口技术 220
8.3.1比较式ADC 0809与8051单片机的接口方法 221
8.3.2积分式ADC7135与8051单片机的接口方法 228
8.3.3串行ADC与8051单片机的接口方法 237
复习思考题 242
第9章 键盘与显示器接口技术 244
9.1 LED显示器接口技术 244
9.1.1 7段LED数码显示器 244
9.1.2串行接口8位共阴极LED驱动器MAX7219 250
9.2键盘接口技术 258
9.2.1编码键盘接口技术 259
9.2.2非编码键盘接口技术 261
9.2.3键值分析 269
9.3 8279可编程键盘/显示器芯片接口技术 274
9.3.1 8279的工作原理 274
9.3.2 8279的数据输入、显示输出及命令格式 277
9.3.3 8279的接口方法 282
9.4液晶显示器接口技术 288
9.4.1 LCD工作原理和驱动方式 288
9.4.2点阵字符型液晶显示模块接口技术 290
9.4.3点阵图型液晶显示模块接口技术 306
复习思考题 317
第10章 虚拟仿真设计实例 319
10.1数字多用仪表设计 319
10.1.1功能要求 319
10.1.2硬件电路设计 319
10.1.3软件程序设计 322
10.2红外遥控系统设计 331
10.2.1功能要求 331
10.2.2硬件电路设计 331
10.2.3软件程序设计 332
10.3简易电子琴设计 338
10.3.1功能要求 338
10.3.2硬件电路设计 338
10.3.3软件程序设计 338
10.4带农历的电子万年历设计 343
10.4.1功能要求 343
10.4.2硬件电路设计 343
10.4.3软件程序设计 346
复习思考题 357
第11章 单片机系统的抗干扰技术 358
11.1干扰源 358
11.1.1串模干扰、共模干扰及电源干扰 358
11.1.2数字电路的干扰 360
11.2硬件抗干扰措施 361
11.2.1串模干扰的抑制 361
11.2.2共模干扰的抑制 363
11.2.3输入/输出通道干扰的抑制 364
11.2.4电源与电网干扰的抑制 367
11.2.5地线系统干扰的抑制 369
11.3软件抗干扰措施 369
11.3.1数字量输入/输出中的软件抗干扰 370
11.3.2程序执行过程中的软件抗干扰 371
11.3.3系统的恢复 375
复习思考题 377
附录 378
附录A 8051指令表 378
附录B Proteus中的常用元器件 383
参考文献 384