项目1 单片机最小系统的设计 1
1.1 任务1 认识最简单的单片机应用系统 1
1.1.1 初识单片机 1
1.1.2 认识单片机的硬件电路 2
1.1.3 单片机的控制程序 3
1.2 任务2 认识MCS-51单片机结构 4
1.2.1 单片机的内部结构 4
1.2.2 CPU的结构 5
1.2.3 MCS-51单片机的引脚 7
1.3 任务3 认识单片机的存储器 12
1.3.1 程序存储器 13
1.3.2 片内数据存储器 14
1.3.3 外部数据存储器 15
1.3.4 特殊功能寄存器 15
1.4 任务4 单片机最小系统的制作 17
1.4.1 最小系统的硬件电路 17
1.4.2 输入源程序、产生目标代码 17
1.4.3 编程器的使用 22
1.4.4 调试方法与步骤 26
1.5 项目小结 26
习题1 27
项目2 抢答器的设计 28
2.1 任务1 认识单片机C语言 28
2.1.1 C语言的特点 28
2.1.2 C51的数据类型 29
2.1.3 C51的数据存储类型与8051存储器结构 30
2.1.4 定义8051特殊功能寄存器及I/O口 32
2.1.5 认识C51的内部函数及常用的宏 35
2.2 任务2 PO~P3口应用举例 36
2.3 任务3 学习单片机仿真实验仪的使用 41
2.3.1 认识仿真器 41
2.3.2 USB型单片机仿真实验仪的安装 43
2.3.3 Keil调试器的使用 43
2.4 任务4 Proteus 6.9的使用 48
2.4.1 认识Proteus的操作界面 49
2.4.2 编辑原理图 50
2.4.3 仿真调试 53
2.5 任务5 认识MCS-51单片机的中断系统 55
2.5.1 中断的概念 55
2.5.2 MCS-51单片机的中断系统 55
2.6 任务6 设计动态LED显示器 59
2.6.1 认识LED显示器 59
2.6.2 静态显示方式 61
2.6.3 动态显示方式 61
2.6.4 LED显示程序的设计技巧 63
2.7 任务7 设计电子计数器 65
2.8 任务8 设计抢答器 67
2.9 项目小结 71
习题2 71
项目3 电子钟的设计 73
3.1 任务1 认识单片机的定时器/计数器 73
3.1.1 定时器/计数器概述 74
3.1.2 定时器/计数器的控制寄存器 74
3.1.3 T0、T1的工作方式 76
3.1.4 时间常数的计算 76
3.2 任务2 定时器/计数器的应用 78
3.3 任务3 电子钟的设计与调试 95
3.4 项目小结 102
习题3 103
项目4 密码键盘的设计 104
4.1 任务1 认识串行通信 104
4.1.1 数据通信的概念 104
4.1.2 同步串行通信和异步串行通信 105
4.1.3 通信方向 106
4.1.4 波特率 106
4.1.5 通信线的连接 107
4.1.6 RS-232简介 108
4.2 任务2 认识MCS-51单片机的串行口 110
4.2.1 MCS-51单片机的串行口结构 110
4.2.2 串行口的控制寄存器 112
4.3 任务3 串行口的应用 112
4.3.1 方式0 112
4.3.2 方式1 113
4.3.3 方式2 117
4.3.4 方式3 118
4.4 任务4 设计行列式键盘 121
4.4.1 行列式键盘的基本原理 121
4.4.2 行列式键盘扫描程序 121
4.5 任务5 设计密码键盘 125
4.6 项目小结 130
习题4 131
项目5 LED点阵显示屏的设计 132
5.1 任务1 扩展单片机的系统总线 132
5.1.1 单片机系统总线 132
5.1.2 系统扩展的方法 133
5.2 任务2 扩展单片机的存储器 136
5.2.1 程序存储器的扩展 136
5.2.2 数据存储器的扩展 138
5.3 任务3 扩展并行输入/输出接口 141
5.3.1 通用锁存器、缓冲器的扩展 141
5.3.2 扩展可编程并行I/O接口 144
5.4 任务4 设计LED点阵显示屏 149
5.4.1 认识LED点阵模块内部结构 149
5.4.2 设计过程 150
5.5 项目小结 154
习题5 154
项目6 多路测温系统的设计 155
6.1 任务1 用DS18820设计电子温度计 155
6.1.1 初识数字温度传感器 155
6.1.2 读/写时序 156
6.1.3 基本操作指令 157
6.1.4 电子温度计的设计 158
6.2 任务2 单片机控制字符型液晶显示模块 162
6.2.1 RT1602液晶模块引脚功能 162
6.2.2 显示模块的指令功能 163
6.2.3 液晶模块与单片机的连接 165
6.3 任务3 设计多路测温系统 169
6.4 项目小结 175
习题6 176
项目7 自动打铃系统的设计 177
7.1 任务1 认识I2C总线 177
7.1.1 I2C总线概述 177
7.1.2 I2C总线协议 178
7.2 任务2 用I/O口模拟I2c总线操作 180
7.3 任务3 读/写串行E2PROM 185
7.3.1 引脚的功能 185
7.3.2 单片机与24C02的连接 185
7.3.3 单片机对24C02的读写程序 185
7.3.4 调试方法与步骤 187
7.4 任务4 认识实时时钟芯片PCF8563 189
7.4.1 引脚功能 189
7.4.2 PCF8563的寄存器 189
7.4.3 电子钟的设计 192
7.5 任务5 单片机控制点阵液晶显示模块TG12864B 194
7.5.1 TG12864B模块引脚功能 194
7.5.2 液晶屏与显示存储器之间的对应关系 195
7.5.3 TG12864B的指令 196
7.5.4 单片机与液晶模块的连接 197
7.5.5 汉字的显示 206
7.6 任务6 设计自动打铃系统 210
7.7 项目小结 220
习题7 221
项目8 数据采集器的设计 222
8.1 任务1 数据采集器的实现过程 222
8.1.1 A/D转换器的基本概念 222
8.1.2 认识ADC0808/0809的内部结构 223
8.1.3 ADC0808/0809的引脚功能 223
8.1.4 ADC0808/0809与单片机的典型连接 224
8.1.5 数据采集器的设计过程 225
8.2 任务2 数字电压表的设计 229
8.2.1 认识SPI总线 229
8.2.2 认识8位串行A/D转换器TLC549 230
8.2.3 数字电压表的设计 232
8.3 任务3 信号发生器的设计 234
8.3.1 D/A转换器的基本概念 234
8.3.2 认识串行D/A转换器TLC5615 234
8.3.3 用TLC5615设计信号发生器 236
8.4 任务4 频率与周期的测量 239
8.4.1 频率的测量 239
8.4.2 周期的测量 242
8.5 项目小结 244
习题8 245
附录A MCS-51单片机的指令系统及汇编语言程序设计 246
A.1 寻址方式 246
A.2 MCS-51单片机指令集 248
A.3 伪指令 251
A.4 汇编语言程序设计 253
A.5 C语言与汇编语言混合编程 257
附录B USB型单片机实验仪的使用 260
B.1 单片机实验仪的组成 260
B.2 实验仪原理图 261
B.3 实验仪元器件布局 266
B.4 使用中的常见问题 267
参考文献 268