第1章 单片机入门——基础必备知识 1
1.1 单片机概述 1
1.1.1 什么是单片机? 1
1.1.2 单片机应用领域 2
1.1.3 如何学好单片机 3
1.2 数制与编码 3
1.2.1 数制 3
1.2.2 数制之间的转换 4
1.2.3 常用的编码 5
1.3 微型计算机的基本组成和工作过程 6
1.3.1 基本组成 6
1.3.2 指令、程序与编程语言 7
1.3.3 工作过程 8
1.4 开发软件环境搭建 9
1.5 开发板功能简介 13
本章小结 14
实训项目 14
第2章 点亮LED灯——Keil软件与单片机I/O 15
2.1 Keil μVision4使用方法 15
2.1.1 Keil μVision4工作界面 15
2.1.2 Keil工程的建立 15
2.2 单片机最小系统 20
2.2.1 电源 20
2.2.2 复位电路 21
2.2.3 晶振 21
2.3 时钟周期、机器周期和指令周期 22
2.4 点亮LED灯 23
2.4.1 LED(发光二极管) 23
2.4.2 特殊功能寄存器和位定义 23
2.4.3 编写程序 25
2.5 程序下载 26
2.6 74HC573锁存器 29
2.7 74HC02或非门 30
2.8 74HC138三八译码器 31
2.9 单片机资源扩展方式 34
本章小结 36
实训项目 36
第3章 经典再现——C语言基础 37
3.1 C51程序开发 37
3.1.1 采用C51的优点 37
3.1.2 C51程序开发过程 37
3.1.3 C51程序结构 37
3.2 C51语言的数据类型 38
3.3 C51语言的运算符 39
3.4 C51语言的控制语句 41
3.4.1 if语句 41
3.4.2 switch语句 44
3.4.3 while语句 46
3.4.4 for语句 48
3.4.5 中断语句break/continue 51
3.5 C51函数 53
3.5.1 函数定义 54
3.5.2 函数的调用 54
3.5.3 中断服务函数 55
3.6 程序划分为多个文件 57
3.6.1 共享宏定义和类型定义 57
3.6.2 共享函数原型 57
3.6.3 共享变量声明 58
3.6.4 保护头文件 58
本章小结 58
实训项目 59
第4章 流水灯实现——C51编程 60
4.1 设计思路 60
4.2 软件延时 61
4.3 程序实现 62
本章小结 64
实训项目 64
第5章 计数器——数码管显示与独立按键 65
5.1 数码管的显示原理 65
5.2 数码管的真值表与静态显示 66
5.3 独立按键检测 68
5.4 计数器实现 70
5.5 数码管动态显示 72
5.5.1 C语言数组回顾 72
5.5.2 动态显示原理 73
5.5.3 程序实现 74
5.5.4 数码管显示消隐 75
本章小结 76
实训项目 76
第6章 数字秒表——中断系统及定时器 77
6.1 中断系统 77
6.2 中断系统处理过程 78
6.2.1 51内核单片机的中断结构 78
6.2.2 单片机的中断源 78
6.2.3 中断响应及处理过程 81
6.3 定时器的结构和工作原理 83
6.4 定时器的寄存器 84
6.4.1 T0、T1的方式寄存器TMOD 84
6.4.2 T0、T1的控制寄存器TCON 87
6.5 定时器的应用 87
本章小结 91
实训项目 92
第7章 频率计——定时器进阶 93
7.1 NE555 93
7.2 方波频率的测量 94
7.3 定时器计数模式 95
7.4 频率计实现 95
本章小结 99
实训项目 99
第8章 简易加法计算器——矩阵按键与函数进阶 100
8.1 函数的调用 100
8.2 形参与实参 103
8.3 矩阵按键扫描 104
8.3.1 按键消抖 104
8.3.2 矩阵按键的识别与编码 105
8.4 简易加法计算器的实现 108
本章小结 114
实训项目 115
第9章 知识沉淀——交通灯设计和PWM控制 116
9.1 交通灯实现 116
9.1.1 设计要求 116
9.1.2 硬件电路分析 116
9.1.3 程序设计 119
9.2 PWM基础知识 123
9.3 直流电动机PWM调速 123
9.3.1 直流电动机简介 123
9.3.2 直流电动机恒速运行 124
9.3.3 直流电动机调速 127
9.4 PWM调光 129
本章小结 132
实训项目 132
第10章 数据传输——串口通信 133
10.1 串口通信基础 133
10.1.1 基本通信方式及特点 133
10.1.2 串行通信数据传送方式 133
10.1.3 串行通信的传输方向 134
10.1.4 串行通信的传输速率 134
10.2 单片机与PC常见通信接口 135
10.3 串口结构与工作原理 137
10.4 波特率与定时器 138
10.5 编程与实现 139
10.6 ASCII码 142
本章小结 143
实训项目 143
第11章 温度计——DS18B20温度传感器应用 144
11.1 DS18B20温度传感器介绍 144
11.1.1 DS18B20主要特性 144
11.1.2 DS18B20应用电路原理图 145
11.2 DS18B20工作原理 147
11.2.1 DS18B20的通信协议 147
11.2.2 DS18B20单总线通信过程 151
11.3 DS18B20应用实例 152
11.3.1 DS18B20的测温与显示——整数显示 152
11.3.2 DS18B20的测温与显示——带1位小数显示 156
本章小结 158
实训项目 158
第12章 记录开机次数——IIC总线与EEPROM(AT24C02)应用 159
12.1 IIC总线基础 159
12.2 IIC寻址模式 161
12.3 IIC总线时序模拟 162
12.4 AT24C02操作(写和读操作) 165
12.5 记录开机次数实现 167
本章小结 170
实训项目 171
第13章 光照强度检测——A/D与D/A(PCF8591应用) 172
13.1 A/D和D/A的基本概念 172
13.2 ADC的主要指标 172
13.3 PCF8591与单片机的接口 173
13.4 PCF8591程序实现 174
13.5 光照强度检测 178
13.6 D/A输出 181
本章小结 185
实训项目 185
第14章 电子时钟——DS1302应用 186
14.1 DS1302的基础知识 186
14.2 DS1302芯片简介 186
14.3 DS1302显示时钟的实例 188
14.3.1 电子时钟基础 188
14.3.2 电子时钟进阶——带时间调整、闹铃功能的电子时钟设计 194
本章小结 202
实训项目 202
第15章 电子万年历——LCD1602液晶显示器的应用 203
15.1 LCD1602模块的外形及引脚 203
15.2 LCD1602模块的组成 204
15.3 LCD1602模块的命令 205
15.4 电子万年历 206
15.4.1 设计任务 206
15.4.2 硬件电路分析 207
15.4.3 程序设计 207
本章小结 222
实训项目 222
第16章 综合应用设计 223
16.1 模拟风扇控制系统设计 223
16.2 智能物料传送系统设计 224
本章小结 226
实训项目 226
第17章 单片机应用系统设计方法 227
17.1 单片机应用系统设计过程 227
17.1.1 系统设计的基本要求 227
17.1.2 系统设计的步骤 228
17.2 提高系统可靠性的一般方法 229
17.2.1 电源干扰及其抑制 229
17.2.2 地线干扰及其抑制 230
17.2.3 其他提高系统可靠性的方法 230
本章小结 231
实训项目 231
附录 常用ASC Ⅱ码表 232
参考文献 233