第1章 绪论 1
1.1 单片机概述 1
1.2 单片机的发展历史及趋势 2
1.3 单片机的特点及应用 3
1.4 MCS-51系列与STC系列单片机 5
1.4.1 MCS-51系列单片机 5
1.4.2 STC系列单片机 6
1.5 其他常见系列单片机 6
1.5.1 AT89系列单片机 6
1.5.2 AVR系列单片机 7
1.5.3 PIC系列单片机 9
1.6 嵌入式系统定义及组成 9
1.6.1 嵌入式系统定义 9
1.6.2 嵌入式系统组成 10
1.7 常见的各类嵌入式处理器 12
1.7.1 嵌入式微控制器 12
1.7.2 嵌入式数字信号处理器 12
1.7.3 嵌入式微处理器 13
1.7.4 嵌入式片上系统 13
1.8 小结 14
1.9 习题 14
第2章 单片机应用系统开发简介 15
2.1 集成开发环境Keil μ Vision4简介 15
2.1.1 Keil μ Vision4运行环境介绍 15
2.1.2 Keil μ Vision4集成开发环境的STC单片机开发流程 17
2.2 集成开发工具Proteus 7 Professional简介 20
2.2.1 Proteus基本用法 20
2.2.2 实例分析 22
2.3 Keil μ Vision4与Proteus 7 Professional的联调 25
2.4 小结 27
2.5 习题 27
第3章 单片机编程语言 28
3.1 STC89C52单片机指令系统基本概念 28
3.1.1 指令书写格式 28
3.1.2 指令编码格式 29
3.1.3 指令系统中常用的符号 30
3.1.4 指令系统的寻址方式 31
3.2 STC89C52单片机指令分类介绍 34
3.2.1 数据传送类指令 34
3.2.2 算术运算类指令 39
3.2.3 逻辑操作类指令 42
3.2.4 控制转移类指令 44
3.2.5 位操作类 47
3.3 STC89C52单片机汇编语言程序设计概述 52
3.3.1 汇编语言程序设计基础 52
3.3.2 基本程序结构与程序设计举例 56
3.4 C51程序设计语言 62
3.4.1 Keil C51简介 62
3.4.2 Keil C51语言基础知识 65
3.4.3 C51程序设计举例 73
3.5 小结 78
3.6 习题 78
第4章 STC89C52单片机硬件结构 79
4.1 STC89C52单片机的内部组织结构及特点 79
4.2 STC89C52单片机的外部引脚及功能 81
4.3 STC89C52单片机存储器结构 84
4.3.1 STC89C52单片机程序存储器 84
4.3.2 STC89C52单片机数据存储器 85
4.3.3 STC89C52单片机特殊功能寄存器 86
4.4 STC89C52单片机I/O口 91
4.4.1 P0端口 91
4.4.2 P1/P2/P3/P4端口 92
4.4.3 5V单片机连接3V器件 93
4.5 STC89C52单片机的时钟与复位 93
4.5.1 传统51单片机时序 93
4.5.2 STC89C52单片机时钟电路 94
4.5.3 STC89C52单片机的复位电路 95
4.5.4 STC89C52单片机的复位状态 96
4.6 STC89C52单片机的省电工作模式 97
4.7 小结 98
4.8 习题 98
第5章 STC89C52单片机中断系统 99
5.1 中断的概念 99
5.2 STC89C52单片机中断系统 99
5.2.1 中断系统结构 99
5.2.2 中断源 100
5.2.3 中断请求标志 101
5.2.4 中断控制寄存器 103
5.3 中断响应 106
5.3.1 中断响应条件 106
5.3.2 外部中断响应时间 106
5.3.3 中断请求的撤销 107
5.4 中断程序的设计 108
5.5 小结 112
5.6 习题 112
第6章 STC89C52单片机定时/计数器 114
6.1 STC89C52单片机定时/计数器的组成 114
6.2 定时/计数器0和1 115
6.2.1 与T0/T1相关的寄存器 115
6.2.2 定时/计数器0/1的4种工作方式(与传统51单片机完全兼容) 117
6.2.3 定时/计数器0/1的应用 119
6.3 定时/计数器2 127
6.3.1 与定时器/计数器2相关的寄存器 127
6.3.2 定时/计数器2的3种工作方式 129
6.3.3 定时/计数器2的应用 133
6.4 小结 138
6.5 习题 138
第7章 STC89C52单片机串行通信 139
7.1 串行通信概述 139
7.1.1 数据通信 139
7.1.2 异步通信和同步通信 140
7.1.3 波特率 141
7.2 串行口的结构 142
7.2.1 内部硬件结构 142
7.2.2 串行口特殊功能寄存器 143
7.3 串行口的4种工作方式 145
7.3.1 方式0 145
7.3.2 方式1 148
7.3.3 方式2和方式3 150
7.4 波特率的设定与计算 151
7.5 STC89C52单片机之间的通信 154
7.5.1 串行通信接口 154
7.5.2 双机串行通信编程 157
7.5.3 多机通信 160
7.6 PC与单片机间的通信 164
7.6.1 PC与单片机的点对点通信设计 164
7.6.2 PC与多个单片机的串行通信接口设计 165
7.7 小结 166
7.8 习题 167
第8章 STC89C52单片机存储器的扩展 169
8.1 系统扩展结构 169
8.2 地址锁存与地址空间分配 171
8.2.1 地址锁存 171
8.2.2 地址空间分配 172
8.3 程序存储器的扩展 175
8.3.1 外扩程序存储器的操作时序 176
8.3.2 程序存储器的扩展方法 177
8.4 数据存储器的扩展 181
8.4.1 外扩数据存储器的读写操作时序 181
8.4.2 数据存储器扩展方法 183
8.5 EPROM和RAM的综合扩展 186
8.6 小结 189
8.7 习题 189
第9章 STC89C52单片机I/O扩展与设计 191
9.1 I/O接口概述 191
9.2 TTL电路扩展并行接口 193
9.2.1 TTL电路扩展并行I/O口 193
9.3 可编程接口芯片82C55扩展并行接口 194
9.3.1 82C55芯片介绍 194
9.3.2 82C55控制字 196
9.3.3 STC89C52单片机与82C55的接口设计 198
9.4 串行扩展总线接口 200
9.4.1 单总线串行扩展 200
9.4.2 SPI总线串行扩展 214
9.4.3 IIC总线串行扩展 220
9.5 小结 236
9.6 习题 237
第10章 STC单片机与I/O外部设备接口 238
10.1 STC单片机与键盘接口 238
10.1.1 键盘接口工作原理 238
10.1.2 键盘的工作方式 240
10.1.3 键盘接口硬件电路及其程序设计 241
10.2 STC单片机与LED数码管的接口 243
10.2.1 数码管的结构与分类 243
10.2.2 数码管的工作原理 243
10.2.3 数码管接口实例分析 244
10.3 STC单片机与LCD显示器的接口 245
10.3.1 LCD显示器简介 245
10.3.2 STC单片机与1602液晶显示器的接口及软件编程 251
10.3.3 STC单片机与12864液晶显示的接口及软件编程 253
10.4 小结 255
10.5 习题 255
第11章 STC89C52与A/D、D/A转换器的接口 256
11.1 STC89C52与A/D转换器的接口 256
11.1.1 A/D转换器简介 256
11.1.2 STC89C52与并型8位A/D转换器ADC0809的接口 258
11.1.3 STC89C52与并型12位A/D转换器AD1674的接口 262
11.2 STC89C52与D/A转换器的接口 266
11.2.1 D/A转换器简介 266
11.2.2 STC89C52与8位D/A转换器DAC0832的接口设计 268
11.3 小结 272
11.4 习题 273
第12章 STC单片机应用系统设计实例 274
12.1 STC89C52单片机最小系统简介 274
12.2 基于STC89C52单片机的智能交通灯设计 276
12.2.1 系统需求分析 276
12.2.2 系统设计方案 276
12.2.3 系统硬件设计 277
12.2.4 系统软件设计 277
12.3 基于STC89C52单片机的倒车雷达设计 278
12.3.1 系统需求分析 278
12.3.2 系统设计方案 278
12.3.3 系统硬件设计 279
12.3.4 系统软件设计 279
12.4 基本STC89C52单片机的万年历设计 291
12.4.1 系统需求分析 291
12.4.2 系统设计方案 291
12.4.3 系统硬件设计 292
12.4.4 系统软件设计 293
12.5 小结 305
12.6 习题 306
第13章 实验 307
13.1 基础实验部分 307
13.1.1 实验一 数据传送 307
13.1.2 实验二 多分支实验 309
13.1.3 实验三 外部中断与定时器/计数器中断实验 311
13.1.4 实验四 串口双机通信 312
13.1.5 实验五 存储器扩展实验 315
13.1.6 实验六 82C55控制交通灯 316
13.1.7 实验七 键盘和显示实验 319
13.1.8 实验八 A/D转换 321
13.1.9 实验九 D/A转换 323
13.1.10 实验十 实时时钟 323
13.2 单片机课程设计 325
13.2.1 自动交通管理系统 325
13.2.2 基于单片机的函数发生器设计和开发 326
13.2.3 数字温度仪设计 326
13.2.4 简易家电定时控制仪 327
附录 单片机程序ISP烧录 328
参考文献 332