第1章 概述 1
1.1单片机基础 1
1.1.1计算机及其发展历史 1
1.1.2微型计算机简介 1
1.1.3什么是单片机 2
1.2单片机的发展历史及发展趋势 2
1.2.1单片机的发展历史 2
1.2.2单片机的发展趋势 3
1.3单片机的应用 4
1.4 MCS-51系列与AT89C5x系列单片机 5
1.4.1 MCS-51系列单片机 5
1.4.2 AT89C5x系列单片机 6
本章小结 8
思考题 8
第2章89C51单片机的硬件结构 9
2.1 89C51单片机的片内结构 9
2.2 89C51的引脚 10
2.2.1电源及时钟引脚 10
2.2.2控制引脚 11
2.2.3 I/O口引脚 11
2.3 89C51的CPU 12
2.3.1运算器 12
2.3.2控制器 13
2.4 89C51存储器的结构 14
2.4.1程序存储器 14
2.4.2内部数据存储器 16
2.4.3特殊功能寄存器(SFR) 16
2.4.4位地址空间 17
2.4.5外部数据存储器 18
2.5并行I/O端口 19
2.5.1 P0端口 19
2.5.2 P1端口 21
2.5.3 P2口 22
2.5.4 P3口 23
2.6时钟电路与时序 25
2.6.1 CPU时序 25
2.6.2时钟电路 26
2.7复位操作和复位电路 27
2.7.1复位操作 27
2.7.2复位电路 27
本章小结 29
思考题 30
第3章单片机的C51基础知识 33
3.1 C语言基础 34
3.1.1 C语言的特点 34
3.1.2 C语言和C51的程序结构 34
3.2 C51数据类型 35
3.2.1 char字符型(字节型) 36
3.2.2 int整型 36
3.2.3 long长整型 36
3.2.4 float浮点型 36
3.2.5指针型 36
3.2.6特殊功能寄存器型 36
3.2.7位类型 37
3.3 C51的运算量 37
3.3.1常量 37
3.3.2变量 38
3.3.3存储模式 41
3.3.4绝对地址的访问 42
3.4 C51的运算符及表达式 43
3.4.1赋值运算符 43
3.4.2算术运算符 44
3.4.3关系运算符 44
3.4.4逻辑运算符 44
3.4.5位运算符 45
3.4.6复合赋值运算符 46
3.4.7逗号运算符 47
3.4.8条件运算符 47
3.4.9指针与地址运算符 47
3.5表达式语句及复合语句 47
3.5.1表达式语句 47
3.5.2复合语句 48
3.6 C51程序基本结构与相关语句 48
3.6.1 C51的基本结构 48
3.6.2 if语句 49
3.6.3 switch/case语句 50
3.6.4 while语句 51
3.5.6 do while语句 51
3.6.6 for语句 52
3.6.7循环的嵌套 52
3.6.8 break和continue语句 53
3.6.9 return语句 54
本章小结 54
思考题 54
第4章Keil C51简介 55
4.1 Keil C51的安装和C51项目的建立 55
4.1.1 Keil C51的安装 55
4.1.2 C51项目的建立 57
4.2 C51程序的编辑、编译、下载及执行 59
4.2.1 C51程序的编辑和编译 59
4.2.2 C51程序的实例 61
4.2.3 C51程序的下载、执行 63
4.3 C51的库函数 63
4.3.1寄存器库函数reg51.h 64
4.3.2内部函数头文件intrins.h 67
本章小结 69
思考题 69
第5章89C51的中断系统 71
5.1中断概述 71
5.1.1中断的概念 71
5.1.2中断的条件与响应过程 72
5.2 89C51的中断系统结构与控制 73
5.2.1 89C51的中断源、中断矢量和中断函数 73
5.2.2 89C51的中断系统结构 75
5.2.3中断的控制 76
5.3中断应用举例 81
5.3.1单外部中断源系统的设计 81
5.3.2多外部中断源系统的设计 82
本章小结 87
思考题 88
第6章定时器/计数器 89
6.1定时器/计数器的结构与控制 89
6.1.1 89C51定时器/计数器的结构 89
6.1.2定时器/计数器的控制 89
6.2定时器/计数器的4种工作方式 91
6.2.1工作方式1 91
6.2.2工作方式2 92
6.2.3工作方式3 93
6.2.4工作方式0 95
6.3定时器/计数器的应用举例 96
本章小结 97
思考题 97
第7章串行通信 99
7.1概述 99
7.1.1串行通信的基本方式 100
7.1.2串行通信的数据传送方式 102
7.1.3串行通信接口电路 102
7.2 MCS-51的串行接口 104
7.2.1 MCS-51串行接口结构 104
7.2.2 MCS-51串行口的工作方式 107
7.3串行口波特率计算 108
7.4串行口的编程及应用实例 110
7.4.1串行口的编程步骤 110
7.4.2串行口的应用实例 111
本章小结 117
思考题 117
第8章89C51扩展I/O接口的设计 119
8.1 I/O接口扩展概述 119
8.1.1I/O接口的功能 119
8.1.2 I/O端口的编址 120
8.1.3 I/O数据的传送方式 120
8.1.4常用I/O接口电路 121
8.2简单I/O接口扩展 121
8.3可编程I/O扩展接口8255A 122
8.3.1 8255A的内部结构和引脚信号功能 122
8.3.2 8255A的控制字 124
8.3.3 8255A的工作方式 125
8.3.4 8255A与89C51单片机的接口 128
8.4可编程I/O扩展接口8155 129
8.4.1 8155芯片介绍 129
8.4.2 8155的工作方式 131
8.4.3 8155与89C51单片机的连接和软件编程 131
本章小结 133
思考题 133
第9章89C51与LED、LCD显示器、键盘的接口设计 135
9.1 LED显示器的结构与原理 135
9.1.1 LED显示器结构种类 135
9.1.2 LED显示器显示原理 136
9.2 LED显示器静态显示及应用实例 136
9.2.1 LED显示器静态显示特点 136
9.2.2 LED显示器静态显示应用实例 137
9.3 LED显示器动态显示及应用实例 138
9.3.1 LED显示器动态显示特点 138
9.3.2 LED显示器动态显示应用举例 139
9.4键盘接口 144
9.4.1键盘的结构与原理 144
9.4.2独立式键盘应用实例 147
9.4.3行列式键盘的软件编程 153
9.5液晶显示器LCD与89C51的接口 158
9.5.1液晶概述 158
9.5.2常用液晶显示器1602的接口信号、主要技术参数及编程设置 159
9.5.3常用液晶显示器12232的接口信号、主要技术参数及编程设置 164
9.5.4常用液晶显示器12864的接口信号、主要技术参数及编程设置 174
本章小结 184
思考题 185
第10章89C51与D/A、A/D的接口 187
10.1 D/A转换器及其与单片机接口 187
10.1.1 D/A转换器的原理及主要技术指标 187
10.1.2 DAC0832芯片及其与单片机接口 188
10.1.3 DAC0832与89C51单片机的接口 190
10.1.4 DAC0832的应用实例 191
10.2 A/ D转换器及其与单片机接口 196
10.2.1模/数转换器概述 196
10.2.2 ADC0809模/数转换器 198
10.2.3 ADC0809与89C51单片机的连接和软件驱动 199
10.3 12位逐次逼近型A/D转换器AD574 204
10.3.1 AD574的结构 204
10.3.2 AD574与89C51的接口和驱动软件 205
本章小结 206
思考题 206
第11章I2c串行总线 209
11.1 I2C总线概述 209
11.1.1 I2C串行总线简介 209
11.1.2 I2C总线的数据传送 210
11.2 E2PROM AT24C02与单片机的通信 213
11.2.1 AT24C02的引脚功能 214
11.2.2 AT24C02存储结构与寻址 214
11.2.3 AT24C02读/写操作时序 214
11.2.4 AT24C02应用实例 216
本章小结 221
思考题 221
第12章单片机综合应用实例 223
12.1实时时钟的设计与实现 223
12.1.1硬件电路及其接线 223
12.2温度、湿度测控系统的设计与实现 233
12.2.1整体设计方案及工作原理简介 233
12.2.2 SHT10温湿度传感器工作原理简介 234
12.2.3 LM3033DDW-0B液晶显示模块简介 241
12.2.4硬件设计 245
12.2.5软件设计 249
12.2.6整机实物及程序清单 254
参考文献 271