第1章 8051单片机的基本组成 1
1.1 8051单片机的特点与基本结构 1
1.2 8051单片机的存储器结构 5
1.3 CPU 时序 7
1.4 复位信号与复位电路 9
1.5 并行I/O端口结构 10
复习思考题1 12
第2章 指令系统与汇编语言程序设计 13
2.1 指令助记符和字节数 13
2.2 寻址方式 14
2.2.1 寄存器寻址 14
2.2.2 直接寻址 15
2.2.3 立即寻址 15
2.2.4 寄存器间接寻址 16
2.2.5 变址寻址 16
2.2.6 相对寻址 17
2.2.7 位寻址 17
2.3 指令分类详解 18
2.3.1 算术运算指令 18
2.3.2 逻辑运算指令 20
2.3.3 数据传送指令 21
2.3.4 控制转移指令 23
2.3.5 位操作指令 25
2.4 汇编语言程序格式与伪指令 25
2.5 应用程序设计 27
2.6 定点数运算子程序 29
复习思考题2 39
第3章 8051单片机的中断系统 41
3.1 中断的概念 41
3.2 中断系统结构与中断控制 42
3.3 中断响应 45
3.4 中断系统应用举例 47
3.4.1 中断源扩展 47
3.4.2 中断嵌套 48
复习思考题3 51
第4章 定时器/计数器及其应用 52
4.1 定时器/计数器的工作方式与控制 52
4.2 定时器/计数器应用举例 55
4.2.1 初值和最大定时时间计算 55
4.2.2 定时器方式应用 56
4.2.3 计数器方式应用 60
4.3 利用定时器产生音乐 63
复习思考题4 67
第5章 串行口及其应用 68
5.1 串行通信方式 68
5.2 串行口的工作方式与控制 69
5.3 串行口应用举例 73
5.3.1 串口/并口转换 73
5.3.2 单片机之间的通信 75
5.3.3 单片机与PC之间的通信 83
复习思考题5 86
第6章 8051单片机系统扩展 87
6.1 程序存储器扩展 87
6.2 数据存储器扩展 88
6.3 并行I/O端口扩展 90
6.4 利用I2C总线进行系统扩展 101
6.5 8051单片机的节电工作方式 111
6.5.1 空闲和掉电工作方式 112
6.5.2 节电方式的应用 113
复习思考题6 114
第7章 DAC及ADC接口技术 115
7.1 A/D及D/A转换器的主要技术指标 115
7.2 DAC接口技术 116
7.2.1 无内部锁存器的DAC接口方法 117
7.2.2 DAC0832与8051单片机的接口方法 118
7.2.3 DAC1208与8051单片机的接口方法 121
7.2.4 串行DAC与8051单片机的接口方法 123
7.2.5 利用DAC接口实现波形发生器 128
7.3 ADC接口技术 133
7.3.1 比较式ADC 0809与8051单片机的接口方法 134
7.3.2 积分式ADC 7135与8051单片机的接口方法 138
7.3.3 串行ADC与8051单片机的接口方法 144
复习思考题7 148
第8章 键盘与显示器接口技术 149
8.1 LED显示器接口技术 149
8.1.1 七段LED数码显示器 149
8.1.2 串行接口8位共阴极LED驱动器MAX7219 153
8.2 键盘接口技术 158
8.2.1 编码键盘接口技术 160
8.2.2 非编码键盘接口技术 162
8.2.3 键值分析 166
8.3 8279可编程键盘/显示器芯片接口技术 169
8.3.1 8279的工作原理 170
8.3.2 8279的数据输入、显示输出及命令格式 172
8.3.3 8279的接口方法 176
8.4 液晶显示器LCD接口技术 180
8.4.1 LCD显示器的工作原理和驱动方式 180
8.4.2 点阵字符液晶显示模块接口技术 182
8.4.3 点阵图形液晶显示模块接口技术 193
复习思考题8 199
第9章 单片机高级语言Keil C51应用程序设计 201
9.1 Keil C51程序设计的基本语法 201
9.1.1 Keil C51程序的一般结构 201
9.1.2 数据类型 202
9.1.3 常量、变量及其存储模式 203
9.1.4 运算符与表达式 204
9.2 C51程序的基本语句 207
9.2.1 表达式语句 207
9.2.2 复合语句 208
9.2.3 条件语句 208
9.2.4 开关语句 209
9.2.5 循环语句 209
9.2.6 goto、break、continue语句 210
9.2.7 返回语句 210
9.3 函数 211
9.3.1 函数的定义与调用 211
9.3.2 中断服务函数与寄存器组定义 212
9.4 Keil C51编译器对ANSIC的扩展 213
9.4.1 存储器类型与编译模式 213
9.4 2 关于bit、sbit、sfr和sfr16数据类型 214
9.4.3 一般指针与基于存储器的指针及其之间转换 217
9.4.4 C51编译器对ANSIC函数定义的扩展 218
9.5 C51编译器的数据调用协议 221
9.5.1 数据在内存中的存储格式 221
9.5.2 目标代码的段管理 223
9.6 与汇编语言程序的接口 225
9.7 绝对地址访问 228
9.7.1 采用扩展关键字at 或指针定义变量的绝对地址 229
9.7.2 采用预定义宏指定变量的绝对地址 229
9.8 Keil C51库函数 230
9.8.1 本征库函数 230
9.8.2 字符判断转换库函数 231
9.8.3 输入/输出库函数 231
9.8.4 字符串处理库函数 232
9.8.5 类型转换及内存分配库函数 233
9.8.6 数学计算库函数 234
复习思考题9 235
第10章 STC15系列新型Flash单片机 236
10.1 STC15F2K60S2单片机性能特点 236
10.1.1 STC15F2K60S2单片机主要特性 236
10.1.2 STC15F2K60S2单片机体系结构 237
10.1.3 STC15F2K60S2单片机引脚功能 237
10.2 STC15F2K60S2单片机的存储器结构 239
10.3 STC15F2K60S2单片机的时钟与复位 242
10.3.1 STC15F2K60S2单片机的时钟 242
10.3.2 STC15F2K60S2单片机的复位 243
10.3.3 看门狗工作原理及应用 244
10.4 STC15F2K60S2单片机存储器应用 245
10.4.1 片内Flash 存储器的使用 245
10.4.2 片内扩展XRAM存储器的使用 247
10.4.3 片内数据 Flash存储器(EEPROM)的使用 249
10.5 STC15F2K60S2单片机的并行I/O端口 251
10.5.1 STC15F2K60S2单片机并行I/O端口的工作模式 251
10.5.2 STC15F2K60S2单片机并行I/O端口的使用注意事项 252
10.6 STC15F2K60S2单片机的中断系统 253
10.6.1 中断系统结构 253
10.6.2 中断控制寄存器 254
10.7 STC15F2K60S2单片机的定时器/计数器 256
10.7.1 定时器/计数器T0和 T1 256
10.7.2 定时器/计数器T2 257
10.7.3 可编程时钟输出 258
10.8 STC15F2K60S2单片机的串行口 259
10.9 STC15F2K60S2单片机的SPI同步串行接口 261
10.9.1 SPI接口的逻辑结构 261
10.9.2 SPI接口的特殊功能寄存器 263
10.9.3 SPI接口的通信方式及数据格式 264
10.10 STC15F2K60S2单片机的A/D转换器 267
10.10.1 A/D转换器的逻辑结构 267
10.10.2 A/D转换器的特殊功能寄存器 268
10.11 STC15F2K60S2单片机的PCA/PWM模块 270
10.11.1 PCA/PWM模块的逻辑结构 270
10.11.2 PCA/PWM模块的特殊功能寄存器 271
10.11.3 PCA/PWM模块的工作模式 273
10.11.4 PCA模块的功能引脚切换 280
复习思考题10 280
第11章 Proteus虚拟仿真设计实例 281
11.1 集成环境ISIS 281
11.2 绘制原理图 283
11.3 创建源代码仿真文件 285
11.4 在原理图中进行源代码仿真调试 287
11.5 原理图与Keil环境联机仿真调试 288
11.6 单片机SD卡读/写接口设计 293
11.6.1 功能要求 293
11.6.2 硬件电路设计 293
11.6.3 软件程序设计 295
11.7 数字温度计设计 299
11.7.1 功能要求 299
11.7.2 硬件电路设计 300
11.7.3 软件程序设计 303
11.8 红外遥控系统设计 317
11.8.1 功能要求 317
11.8.2 硬件电路设计 318
11.8.3 软件程序设计 318
11.9 简易电子琴设计 324
11.9.1 功能要求 324
11.9.2 硬件电路设计 324
11.9.3 软件程序设计 324
11.10 电子万年历设计 329
11.10.1 功能要求 329
11.10.2 硬件电路设计 329
11.10.3 软件程序设计 332
11.11 电子密码锁设计 343
11.11.1 功能要求 343
11.11.2 硬件电路设计 343
11.11.3 软件程序设计 344
复习思考题11 359
附录A 8051指令表 361
附录B Proteus中的常用元器件 366
参考文献 367