第1章 绪论 1
1.1 单片机基础知识 1
1.2 单片机的发展和特点 2
1.3 数制与编码 3
1.3.1 数制及其转换 3
1.3.2 计算机中数的表示方法 5
1.3.3 计算机中的常用编码 6
复习思考题 8
第2章 STC15系列单片机体系结构 9
2.1 IAP15W4K58S4单片机的性能特点 9
2.2 IAP15W4K58S4单片机的体系结构 10
2.2.1 体系结构 10
2.2.2 引脚功能 12
2.3 IAP15W4K58S4单片机的存储器结构 15
2.4 IAP15W4K58S4单片机的时钟与复位 18
2.4.1 时钟 18
2.4.2 复位 19
2.5 IAP 15W4K58S4单片机存储器的使用 23
2.5.1 片内Flash存储器 23
2.5.2 片内扩展XRAM存储器 24
2.5.3 片外扩展RAM存储器的总线管理 25
2.5.4 片内数据Flash存储器(EEPROM) 26
2.6 IAP15W4K58S4单片机的并行I/O端口 27
2.6.1 并行I/O端口的工作模式 27
2.6.2 并行I/O端口使用注意事项 30
2.7 IAP15W4K58S4单片机的在线仿真调试 31
复习思考题 33
第3章 指令系统与汇编语言程序设计 34
3.1 指令助记符和字节数 34
3.2 寻址方式 35
3.2.1 寄存器寻址 35
3.2.2 直接寻址 36
3.2.3 立即寻址 36
3.2.4 寄存器间接寻址 36
3.2.5 变址寻址 37
3.2.6 相对寻址 37
3.2.7 位寻址 38
3.3 指令分类祥解 38
3.3.1 算术运算指令 38
3.3.2 逻辑运算指令 40
3.3.3 数据传送指令 41
3.3.4 控制转移指令 43
3.3.5 位操作指令 45
3.4 伪指令 46
3.5 汇编语言程序设计 47
复习思考题 55
第4章 Keil C51应用程序设计 58
4.1 Keil C51程序设计的基本语法 60
4.1.1 C51程序的一般结构 60
4.1.2 数据类型 61
4.1.3 常量、变量及其存储模式 62
4.1.4 运算符与表达式 63
4.2 C51程序的基本语句 66
4.2.1 表达式语句 66
4.2.2 复合语句 66
4.2.3 条件语句 67
4.2.4 开关语句 67
4.2.5 循环语句 68
4.2.6 goto、break、continue语句 68
4.2.7 返回语句 69
4.3 函数 69
4.3.1 函数的定义与调用 69
4.3.2 中断服务函数与寄存器组定义 70
4.4 Keil C51编译器对ANSI C的扩展 71
4.4.1 存储器类型与编译模式 71
4.4.2 关于bit, sbit, sfr和sfr 16数据类型 72
4.4.3 一般指针与基于存储器的指针及其转换 74
4.4.4 C51编译器对ANSI C函数的扩展 76
4.5 C51编译器的数据调用协议 79
4.5.1 数据在内存中的存储格式 79
4.5.2 目标代码的段管理 81
4.6 与汇编语言程序的接口 83
4.6.1 参数传递规则 83
4.6.2 C51与汇编语言混合编程举例 87
4.7 绝对地址访问 90
4.7.1 采用扩展关键字_at_或指针定义变量的绝对地址 90
4.7.2 采用预定义宏指定变量的绝对地址 91
4.8 Keil C51库函数 91
4.8.1 本征库函数 92
4.8.2 字符判断转换库函数 92
4.8.3 输入/输出库函数 93
4.8.4 字符串处理库函数 98
4.8.5 类型转换及内存分配库函数 99
4.8.6 数学计算库函数 101
复习思考题 101
第5章 中断系统 103
5.1 中断的概念 103
5.2 中断系统结构 104
5.3 与中断相关的特殊功能寄存器 106
5.3.1 中断允许寄存器 106
5.3.2 中断优先级寄存器 107
5.3.3 中断标志寄存器 108
5.4 中断响应 110
5.5 中断系统应用举例 112
5.5.1 外部中断应用 112
5.5.2 中断源扩展 113
5.5.3 中断嵌套 115
复习思考题 119
第6章 定时器/计数器 120
6.1 定时器/计数器的逻辑结构 120
6.2 与定时器/计数器相关的特殊功能寄存器 120
6.3 定时器/计数器的工作方式 123
6.3.1 定时器/计数器T0和T1的工作方式 123
6.3.2 定时器/计数器T2、T3、T4的工作方式 125
6.3.3 可编程时钟输出 127
6.4 定时器/计数器应用举例 129
6.4.1 定时器工作方式应用 129
6.4.2 计数器工作方式应用 136
6.4.3 利用定时器产生音乐 137
复习思考题 143
第7章 串行口 144
7.1 串行通信的一般概念 144
7.2 与串行口1相关的特殊功能寄存器 145
7.3 串行口1的工作方式 147
7.3.1 工作方式0——串/并转换 147
7.3.2 工作方式1、2、3——串行通信 148
7.3.3 波特率计算 149
7.4 串行口1的应用 150
7.4.1 串/并转换 150
7.4.2 双机串行通信 153
7.4.3 主-从式多机串行通信 160
7.4.4 单片机与PC机通信 170
7.4.5 IAP15W4K58S4单片机与PC机的USB总线通信接口 172
7.5 串行口1的中继广播方式 172
7.6 串行口2 173
7.7 串行口3 174
7.8 串行口4 175
7.9 串行口硬件引脚的切换 176
复习思考题 177
第8章 PCA可编程计数器阵列 178
8.1 PCA模块的逻辑结构 178
8.2 与PCA模块相关的特殊功能寄存器 179
8.3 PCA模块的工作模式 181
8.3.1 捕获模式 181
8.3.2 软件定时器模式 182
8.3.3 高速脉冲输出模式 183
8.3.4 脉宽调制PWM输出模式 183
8.4 PCA模块功能引脚的切换 185
8.5 PCA模块的应用 185
复习思考题 190
第9章 SPI同步串行接口 191
9.1 SPI接口的逻辑结构 191
9.2 与SPI接口相关的特殊功能寄存器 192
9.3 SPI接口的通信方式及数据格式 193
9.3.1 SPI接口的通信方式 193
9.3.2 SPI接口的数据格式 195
9.4 SPI接口功能引脚的切换 197
9.5 SPI接口的应用 197
复习思考题 200
第10章 片内比较器与增强型PWM模块 201
10.1 片内比较器的逻辑结构 201
10.2 与比较器相关的特殊功能寄存器 202
10.3 片内比较器的应用 203
10.4 增强型PWM模块的逻辑结构 204
10.5 与PWM模块相关的特殊功能寄存器 205
10.6 PWM模块功能引脚的切换 208
10.7 PWM模块功能的应用 208
复习思考题 209
第11章 片内A/D转换器 211
11.1 片内A/D转换器的逻辑结构 211
11.2 与片内A/D转换器相关的特殊功能寄存器 212
11.3 片内A/D转换器的应用 214
复习思考题 216
第12章 单片机的低功耗应用 217
12.1 与低功耗应用相关的特殊功能寄存器 217
12.2 低功耗模式的应用 218
12.2.1 空闲与掉电工作模式 218
12.2.2 低功耗模式应用举例 219
复习思考题 224
第13章 I2C总线接口扩展 225
13.1 I2C总线简介 225
13.2 I2C总线结构与数据传输 225
13.3 I2C总线通用驱动程序 229
13.4 I2C接口器件24C04的读写程序 231
13.5 I2C接口器件A/D-D/A转换芯片PCF8591应用 235
13.6 I2C接口时钟芯片PCF8563应用 248
复习思考题 261
第14章 键盘与显示接口扩展 262
14.1 LED数码管显示接口 262
14.1.1 I/O端口驱动LED数码管 262
14.1.2 单个74HC595驱动多位LED数码管 265
14.2 键盘接口 268
14.2.1 编码键盘 269
14.2.2 非编码键盘 271
14.2.3 采用I/O端口实现的矩阵键盘接口 272
14.2.4 采用片内ADC实现的矩阵键盘接口 276
14.3 点阵字符型LCD模块应用接口 281
14.3.1 点阵字符型LCD模块简介 281
14.3.2 点阵字符型LCD模块与单片机的8位数据接口 286
14.3.3 点阵字符型LCD模块与单片机的4位数据接口 290
14.4 无字库12864点阵图型LCD模块应用接口 294
14.5 带字库12864点阵图型LCD模块应用接口 302
14.5.1 带字库12864液晶模块与单片机的并行接口 307
14.5.2 带字库12864液晶模块与单片机的串行接口 312
复习思考题 316
第15章 数模与模数转换接口扩展 317
15.1 数模转换器DAC接口扩展 317
15.1.1 DAC0832与单片机的接口 317
15.1.2 DAC1208与单片机的接口 323
15.1.3 串行DAC芯片TLC5615与单片机的接口 327
15.2 模数转换器ADC接口扩展 330
15.2.1 ADC0809与单片机的接口 330
15.2.2 ICL7135与单片机的接口 334
15.2.3 串行ADC芯片TLC549与单片机的接口 339
复习思考题 342
第16章 单片机应用系统设计实例 343
16.1 可调数字钟 343
16.1.1 功能要求 343
16.1.2 硬件电路设计 343
16.1.3 软件程序设计 343
16.2 PWM脉宽调制系统 347
16.2.1 功能要求 347
16.2.2 硬件电路设计 347
16.2.3 软件程序设计 347
16.3 点阵LED显示屏设计 359
16.3.1 功能要求 359
16.3.2 硬件电路设计 360
16.3.3 软件程序设计 360
16.4 DS18B20多点温度监测系统 364
16.4.1 功能要求 364
16.4.2 硬件电路设计 364
16.4.3 软件程序设计 368
16.5 带输入和存储功能的音乐播放器 377
16.5.1 功能要求 377
16.5.2 硬件电路设计 377
16.5.3 软件程序设计 378
复习思考题 388
附录1 STC15系列单片机指令表 389
附录2 STC_ISP工具软件简介 395
参考文献 398