第1章 计算机基础知识 1
1.1绪论 1
1.1.1微型计算机的发展史 1
1.1.2微型计算机的特点 2
1.1.3微型计算机的应用领域 3
1.2微型计算机的组成 4
1.2.1微处理器 4
1.2.2微型计算机 5
1.2.3微型计算机系统 5
1.3微型计算机的工作过程和主要性能指标 5
1.3.1微型计算机的工作过程 5
1.3.2微型计算机的主要性能指标 6
1.4微机系统中采用的先进技术 7
1.4.1流水线技术 7
1.4.2高速缓冲存储器 7
1.4.3CISC和RISC 7
1.4.4多核技术 8
1.5微型计算机中数的表示 8
1.5.1数制及相互转换 8
1.5.2符号数的表示及运算 11
1.5.3计算机中的常用术语和编码 15
1.6单片机概述 18
1.6.1单片机的发展历史及趋势 19
1.6.2单片机的特点及应用 20
1.7MCS-51系列单片机与STC系列单片机 22
1.7.1MCS-51系列单片机 22
1.7.2STC系列单片机 23
1.8其他常见系列单片机 23
1.8.1AT89系列单片机 23
1.8.2AVR系列单片机 24
1.8.3PIC系列单片机 26
1.9本章小结 26
习题 27
第2章 单片机应用系统开发简介 28
2.1集成开发环境Keil μViSion4简介 28
2.1.1Keil μVision4运行环境介绍 28
2.1.2Keil μVision4集成开发环境的STC单片机开发流程 30
2.2集成开发工具Proteus 7 Professional简介 33
2.2.1Proteus基本用法 34
2.2.2实例分析 36
2.3Keil μVision4与Proteus 7 Professional的联调 39
2.4Proteus ISIS模块应用举例 40
2.4.1ISIS原理图仿真模块应用举例 40
2.4.2ARES模块应用举例 44
2.5本章小结 48
习题 48
第3章 STC89C52单片机硬件结构 49
3.1STC89C52单片机的内部功能结构及其特点 49
3.2STC89C52单片机的外部引脚及功能 51
3.3STC89C52单片机存储器结构 54
3.3.1STC89C52单片机程序存储器 54
3.3.2STC89C52单片机数据存储器 55
3.3.3STC89C52单片机特殊功能寄存器 57
3.4STC89C52单片机I/O接口 62
3.4.1P1口 62
3.4.2P3口 63
3.4.3P0口 64
3.4.4P2口 65
3.4.5I/O接口5V和3V的匹配 66
3.5STC89C52单片机的时钟与复位 66
3.5.1传统51单片机时序 66
3.5.2STC89C52单片机时钟电路 67
3.5.3STC89C52单片机的复位电路 69
3.5.4STC89C52单片机的复位状态 70
3.6STC89C52单片机的省电工作模式 71
3.7本章小结 72
习题 72
第4章 单片机程序设计 73
4.1STC系列单片机指令系统基本概念 73
4.1.1指令书写格式 73
4.1.2指令编码格式 74
4.1.3指令系统中常用的符号 75
4.1.4指令系统的寻址方式 76
4.2STC系列单片机指令分类详解 79
4.2.1数据传送类指令 79
4.2.2算术运算类指令 83
4.2.3逻辑操作类指令 86
4.2.4控制转移类指令 88
4.2.5位操作类 91
4.3STC系列单片机汇编语言程序设计 96
4.3.1汇编语言程序设计基础 96
4.3.2汇编语言程序结构与设计示例 99
4.4STC单片机C语言程序设计 109
4.4.1Keil C51简介 109
4.4.2Keil C51语言基础知识 112
4.4.3C51语言程序设计举例 120
4.4.4C51语言与汇编语言的混合编程 122
4.5简单接口程序应用 127
4.5.1基本I/O单元与编程 127
4.5.2LED数码管原理与编程 133
4.5.3I/O接口的进阶应用 136
4.6本章小结 142
习题 142
第5章 STC89C52单片机中断系统 144
5.1中断的概念 144
5.2STC89C52单片机中断系统简介 144
5.2.1中断系统结构 144
5.2.2中断源 145
5.2.3中断请求标志 146
5.2.4中断控制寄存器 148
5.3中断响应 151
5.3.1中断响应条件 151
5.3.2外部中断响应时间 152
5.3.3中断请求的撤销 152
5.4中断程序的设计 153
5.4.1中断程序的设计过程 153
5.4.2中断程序设计举例 155
5.5本章小结 160
习题 160
第6章 STC89C52单片机定时/计数器 162
6.1STC89C52单片机定时/计数器的组成 162
6.2定时/计数器0和定时/计数器1 163
6.2.1与T0/T1相关的寄存器 163
6.2.2定时/计数器0/1的4种工作方式 164
6.2.3定时/计数器0/1的应用 166
6.3定时/计数器2 177
6.3.1与定时/计数器2相关的寄存器 177
6.3.2定时/计数器2的3种工作方式 179
6.3.3定时/计数器2的应用 183
6.4本章小结 188
习题 188
第7章 STC89C52单片机串行通信 190
7.1串行通信概述 190
7.1.1数据通信 190
7.1.2异步通信和同步通信 191
7.1.3波特率 192
7.2串行口的结构 193
7.2.1内部硬件结构 193
7.2.2串行口特殊功能寄存器 194
7.3串行口的4种工作方式 196
7.3.1串行口方式0 196
7.3.2串行口方式1 200
7.3.3串行口方式2和方式3 201
7.4波特率的设定与计算 202
7.5STC89C52单片机之间的通信 206
7.5.1串行通信接口 206
7.5.2双机串行通信编程 209
7.5.3多机通信 212
7.6PC与单片机间的通信 218
7.6.1PC与单片机的点对点通信设计 218
7.6.2PC与多个单片机的串行通信接口设计 219
7.7本章小结 220
习题 221
第8章 STC89C52单片机存储器的扩展 223
8.1系统扩展结构 223
8.2地址锁存与地址空间分配 225
8.2.1地址锁存 225
8.2.2地址空间分配 226
8.3程序存储器的扩展 229
8.3.1外扩程序存储器的操作时序 230
8.3.2程序存储器的扩展方法 231
8.4数据存储器的扩展 236
8.4.1外扩数据存储器的读/写操作时序 236
8.4.2数据存储器的扩展方法 237
8.5EPROM和RAM的综合扩展 241
8.6本章小结 245
习题 245
第9章 STC89C52单片机I/O的扩展与设计 246
9.1I/O接口概述 246
9.2TTL电路扩展并行接口 248
9.2.1简单并行输出接口的扩展 248
9.2.2简单并行输入接口的扩展 250
9.3STC单片机与LCD的接口 252
9.3.1LCD简介 253
9.3.2STC单片机与LCD1602的接口及软件编程 258
9.3.3STC单片机与LCD12864的接口及软件编程 260
9.4STC89C52与A/D转换器的接口 264
9.4.1A/D转换器简介 264
9.4.2STC89C52与并型8位A/D转换器ADC0809的接口 266
9.4.3STC89C52与并型12位A/D转换器AD1674的接口 270
9.5STC89C52与D/A转换器的接口 274
9.5.1D/A转换器简介 274
9.5.2STC89C52与8位D/A转换器DAC0832的接口设计 275
9.6串行扩展总线接口 280
9.6.1单总线串行扩展 280
9.6.2SPI总线串行扩展 296
9.6.3I2C串行总线扩展 304
9.6.4STC89C52单片机的I2C总线扩展的设计 308
9.7本章小结 313
习题 313
第10章 STC单片机应用系统设计实例 315
10.1STC89C52单片机最小系统简介 315
10.2基于STC89C52单片机的智能交通灯设计 317
10.2.1系统需求分析 317
10.2.2系统设计方案 317
10.2.3系统硬件设计 318
10.2.4系统软件设计 318
10.3基于STC89C52单片机的万年历设计 320
10.3.1系统需求分析 320
10.3.2系统设计方案 320
10.3.3系统硬件设计 321
10.3.4系统软件设计 322
10.4本章小结 340
习题 340
附录A 实验指导 342
A.1实验1:计数显示器 342
A.2实验2:指示灯/开关控制器 352
A.3实验3:指示灯循环控制 357
A.4实验4:指示灯/数码管的中断控制 363
A.5实验5:电子秒表显示器 369
A.6实验6:双机通信及PCB设计 373
A.7实验7:直流数字电压表设计 386
A.8实验8:步进电动机控制设计 392
A.9实验9:多位数字显示及硬件程序下载 395
附录B Proteus中的常用器件 399
参考文献 401