第1章 8051单片机的基本结构 1
1.1 8051单片机的特点与基本结构 1
1.2 8051单片机的存储器结构 6
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 在原理图中进行源代码仿真调试 23
2.5 原理图与Keil环境联机仿真调试 25
思考题 31
第3章 指令系统与汇编语言程序设计 32
3.1 指令助记符和字节数 32
3.2 寻址方式 33
3.2.1 寄存器寻址 33
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 汇编语言程序格式与伪指令 45
3.5 应用程序设计 46
3.6 定点数运算子程序 48
思考题 59
第4章 Keil C51应用程序设计 62
4.1 Keil C51程序设计的基本语法 62
4.1.1 Keil C51程序的一般结构 62
4.1.2 数据类型 63
4.1.3 常量、变量及其存储模式 64
4.1.4 运算符与表达式 65
4.2 C51程序的基本语句 69
4.2.1 表达式语句 69
4.2.2 复合语句 69
4.2.3 条件语句 70
4.2.4 开关语句 70
4.2.5 循环语句 71
4.2.6 goto、break、continue语句 71
4.2.7 返回语句 72
4.3 函数 72
4.3.1 函数的定义与调用 72
4.3.2 中断服务函数与寄存器组定义 74
4.4 Keil C51编译器对ANSI C的扩展 74
4.4.1 存储器类型与编译模式 74
4.4.2 关于bit、sbit、sfr、sfr16数据类型 76
4.4.3 一般指针与基于存储器的指针及其转换 79
4.4.4 C51编译器对ANSI C函数定义的扩展 80
4.5 C51编译器的数据调用协议 83
4.6 绝对地址访问 85
4.6.1 采用扩展关键字“_at_”或指针定义变量的绝对地址 85
4.6.2 采用预定义宏指定变量的绝对地址 86
4.7 Keil C51库函数 87
4.7.1 本征库函数 87
4.7.2 字符判断转换库函数 87
4.7.3 输入输出库函数 88
4.7.4 字符串处理库函数 89
4.7.5 类型转换及内存分配库函数 90
4.7.6 数学计算库函数 91
思考题 92
第5章 中断系统与定时/计数器 94
5.1 中断的概念 94
5.2 中断系统结构与中断控制 95
5.3 中断响应 98
5.4 中断系统应用举例 100
5.4.1 中断源扩展 100
5.4.2 中断嵌套 103
5.5 定时/计数器的工作方式与控制 106
5.6 定时/计数器应用举例 109
5.6.1 初值和最大定时时间的计算 110
5.6.2 定时器方式的应用 111
5.6.3 计数器方式的应用 119
5.7 利用定时器产生音乐 122
思考题 129
第6章 串行口通信技术 131
6.1 串行通信方式 131
6.2 串行口的工作方式与控制 132
6.3 串行口应用举例 136
6.3.1 串/并口转换 136
6.3.2 单片机之间的通信 140
6.3.3 单片机与PC之间的通信 156
思考题 163
第7章 单片机系统扩展 164
7.1 程序存储器扩展 164
7.2 数据存储器扩展 165
7.3 并行I/O端口扩展 168
7.4 利用I2C总线进行系统扩展 181
7.5 8051单片机的节电工作方式 197
7.5.1 空闲和掉电工作方式 198
7.5.2 节电方式的应用 198
思考题 200
第8章 模/数与数/模转换接口技术 201
8.1 转换器的主要技术指标 201
8.2 数/模转换器接口技术 202
8.2.1 无内部锁存器的DAC接口方法 203
8.2.2 DAC0832与8051单片机的接口方法 204
8.2.3 DAC1208与8051单片机的接口方法 211
8.2.4 串行DAC与8051单片机的接口方法 213
8.2.5 利用DAC接口实现波形发生器 220
8.3 模/数转换器接口技术 228
8.3.1 比较式ADC 0809与8051单片机的接口方法 230
8.3.2 积分式ADC 7135与8051单片机的接口方法 237
8.3.3 串行ADC与8051单片机的接口方法 246
思考题 250
第9章 键盘与显示器接口技术 252
9.1 LED显示器接口技术 252
9.1.1 7段LED数码显示器 252
9.1.2 串行接口8位共阴极LED驱动器MAX7219 258
9.2 键盘接口技术 266
9.2.1 编码键盘接口技术 267
9.2.2 非编码键盘接口技术 269
9.2.3 键值分析 276
9.3 8279可编程键盘/显示器芯片接口技术 282
9.3.1 8279的工作原理 282
9.3.2 8279的数据输入、显示输出及命令格式 284
9.3.3 8279的接口方法 289
9.4 液晶显示器接口技术 295
9.4.1 LCD的工作原理和驱动方式 295
9.4.2 点阵字符型液晶显示模块接口技术 297
9.4.3 点阵图型液晶显示模块接口技术 314
思考题 325
第10章 虚拟仿真设计实例 327
10.1 数字多用仪表的设计 327
10.1.1 功能要求 327
10.1.2 硬件电路设计 327
10.1.3 软件程序设计 330
10.2 红外遥控系统设计 340
10.2.1 功能要求 340
10.2.2 硬件电路设计 340
10.2.3 软件程序设计 340
10.3 简易电子琴设计 347
10.3.1 功能要求 347
10.3.2 硬件电路设计 347
10.3.3 软件程序设计 347
10.4 带农历的电子万年历设计 352
10.4.1 功能要求 352
10.4.2 硬件电路设计 353
10.4.3 软件程序设计 355
思考题 367
附录 369
附录A 8051指令表 369
附录B Proteus中的常用元器件 375
参考文献 376