第1章 绪论 1
1.1 电子计算机概述 2
1.1.1 电子计算机的经典结构 2
1.1.2 微型计算机的组成及其应用形态 2
1.2 单片机的发展过程及产品近况 4
1.2.1 单片机的发展过程 4
1.2.2 单片机产品近况 5
1.3 单片机的特点及应用领域 6
1.3.1 单片机的特点 6
1.3.2 单片机的应用领域 6
1.4 单片机应用系统开发方法 7
1.4.1 应用系统开发的概念 7
1.4.2 应用系统主要开发工具 8
1.4.3 应用系统开发流程 10
渐进实训 11
实训 1 利用μ Vision平台生成可执行目标程序 11
本章小结 15
思考题及习题 15
第2章 80C51的结构和原理 17
2.1 80C51的内部结构与引脚功能 18
2.1.1 80C51的内部结构 18
2.1.2 80C51典型产品的资源配置 18
2.1.3 80C51典型产品封装和引脚功能 20
2.2 80C51单片机的CPU 21
2.2.1 CPU的功能单元 21
2.2.2 CPU的时钟 24
2.2.3 80C51单片机的复位 26
2.3 80C51的存储器组织 27
2.3.1 80C51单片机的程序存储器配置 27
2.3.2 80C51单片机数据存储器配置 30
2.3.3 80C51单片机的特殊功能寄存器(SFR) 32
2.4 80C51单片机并行口 34
2.4.1 P0口、P2口的结构 34
2.4.2 P1口、P3口的结构 37
2.5 80C51单片机最小系统 39
2.5.1 最小系统的硬件构成 39
2.5.2 最小系统添加简单I/O设备 39
渐进实训 41
实训2A 发光二极管闪烁的实现与硬件仿真 41
实训2B 发光二极管闪烁的Proteus软件仿真 44
本章小结 47
思考题及习题 47
第3章 80C51的C51语言程序设计 49
3.1 C51对标准C的扩展 50
3.1.1 C51的数据类型 50
3.1.2 C51数据的存储分区 51
3.1.3 C51的编译模式 52
3.1.4 用_at_定义变量绝对地址 52
3.2 C51的指针 52
3.2.1 已定义数据存储分区的指针 53
3.2.2 未定义数据存储分区的指针 53
3.2.3 利用指针实现绝对地址访问 53
3.2.4 C51程序编写示例 54
3.3 C51的函数 56
3.3.1 C51的函数定义 56
3.3.2 C51函数定义的选项 57
3.3.3 C51的库函数 59
渐进实训 60
实训3 LED流水灯实板验证及Proteus仿真 60
本章小结 63
思考题及习题 63
第4章 80C51人机接口技术 65
4.1 LED、数码管及蜂鸣器的接口技术 66
4.1.1 LED接口 66
4.1.2 数码管接口 68
4.1.3 蜂鸣器接口 77
4.2 按键及键盘接口技术 79
4.2.1 独立按键接口 79
4.2.2 键盘接口 85
4.3 字符型LCD显示器接口技术 90
4.3.1 LCD1602模块的外形及引脚 90
4.3.2 LCD1602模块的组成 90
4.3.3 LCD1602模块的命令 92
4.3.4 LCD1602模块的接口 93
渐进实训 98
实训4 数码管显示信息的3键调整及Proteus仿真 98
本章小结 104
思考题及习题 104
第5章 80C51的中断系统及定时/计数器 105
5.1 80C51单片机的中断系统 106
5.1.1 80C51中断系统的结构 106
5.1.2 80C51的中断源 107
5.1.3 80C51中断的控制 109
5.2 80C51单片机中断处理过程 111
5.2.1 中断响应条件和时间 111
5.2.2 中断响应过程 112
5.2.3 中断返回 113
5.2.4 中断程序举例 113
5.3 80C51的定时/计数器 118
5.3.1 定时/计数器的结构和工作原理 118
5.3.2 定时/计数器的控制 119
5.3.3 定时/计数器的工作方式 120
5.3.4 定时/计数器应用举例 124
5.4 80C52的定时/计数器T2 130
5.4.1 T2的相关控制寄存器 130
5.4.2 T2的工作方式 131
渐进实训 135
实训5A 外部中断次数计数器及其Proteus仿真 135
实训5B 简易秒表的定时器实现及其Proteus仿真 138
本章小结 141
思考题及习题 142
第6章 80C51单片机的串行口 143
6.1 计算机串行通信基础 144
6.1.1 串行通信的基本概念 145
6.1.2 串行通信接口标准 148
6.2 80C51单片机的串行口 151
6.2.1 80C51串行口的结构 151
6.2.2 80C51串行口的控制寄存器 152
6.2.3 80C51串行口的工作方式 153
6.2.4 80C51波特率确定与初始化步骤 157
6.3 80C51单片机串行口应用 158
6.3.1 利用单片机串口的并行I/O扩展 158
6.3.2 单片机与PC机间的串行通信 159
6.3.3 单片机与单片机间的串行通信 165
渐进实训 165
实训6A 单片机与PC机通信及其Proteus仿真 165
实训6B 单片机与单片机通信及其Proteus仿真 169
本章小结 178
思考题及习题 178
第7章 80C51的串行总线扩展 179
7.1 一线总线接口及其扩展 180
7.1.1 单总线接口及其扩展 180
7.1.2 DS18B20的操作命令 183
7.1.3 DS18B20的操作时序 183
7.1.4 DS18B20的操作函数 185
7.1.5 DS18B20应用实例 186
7.2 I2C总线接口及其扩展 191
7.2.1 I2C总线基础 191
7.2.2 80C51的I2C总线时序模拟 194
7.2.3 80C51与AT24C02的接口 196
7.3 SPI总线接口及其扩展 206
7.3.1 单片机扩展SPI总线的系统结构 206
7.3.2 SPI总线的数据传输时序 207
7.3.3 80C51扩展TLC5615 D/A转换器 207
7.3.4 80C51扩展TLC549 A/D转换器 210
渐进实训 212
实训7A 基于AT24C02的简易密码锁及其Proteus仿真 212
实训7B 基于TLC5615的正弦信号发生器及其Proteus仿真 226
实训7C 基于TLC549的数字电压表及其Proteus仿真 230
本章小结 235
思考题及习题 236
第8章 80C51应用系统设计 237
8.1 单片机应用系统设计 238
8.1.1 系统设计的基本要求 238
8.1.2 系统设计的步骤 238
8.1.3 提高系统可靠性的方法 240
8.2 课程设计案例——LCD显示数字时钟设计 244
8.2.1 数字时钟的方案确定 244
8.2.2 DS1302芯片简介 245
8.2.3 DS1302的操作子程序 248
8.2.4 数字时钟硬件电路 251
8.2.5 数字时钟的软件设计 251
8.2.6 数字时钟系统的Proteus仿真 279
8.3 毕业设计案例——单片机综合验证系统设计 280
8.3.1 综合验证系统方案确定 280
8.3.2 HMI及Modbus协议简介 281
8.3.3 综合验证系统的硬件电路 283
8.3.4 综合验证系统的软件设计 286
8.3.5 综合验证系统的Proteus仿真 318
本章小结 319
思考题及习题 319
附录 321
附录A Proteus软件操作概览 322
附录B 80C51单片机指令速查表 333
附录C C51相关资源 337
附录D 数制与编码的基础 348
附录E ASC II码表 351
附录F 常用芯片引脚 353
参考文献 354