基础篇 2
第1章 迈进单片机的大门 2
1.1 单片机概述 2
1.1.1 什么是单片机 2
1.1.2 单片机厂家简介 2
1.1.3 单片机标号信息及封装类型 6
1.1.4 如何学习单片机——做有准备的人 8
1.2 STC89C52单片机和C51编程基础 10
1.2.1 STC89C52 LQFP-44引脚介绍 10
1.2.2 单片机C51基础知识介绍 13
本章习题 15
第2章 51单片机I/O口简单应用 16
2.1 单片机最小应用系统 16
2.2 闪烁灯的制作 17
2.2.1 闪烁灯硬件电路原理图 18
2.2.2 单片机C语言编程的基本方法 19
2.2.3 程序设计 21
2.3 广告灯的制作 24
2.3.1 广告灯的硬件原理图 25
2.3.2 相关知识 25
2.3.3 程序设计 27
本章习题 32
第3章 基本功——51系列单片机硬件 34
3.1 51单片机总体结构 34
3.1.1 内部结构 34
3.1.2 外部引脚说明 35
3.2 51单片机的CPU 35
3.2.1 CPU的功能单元 35
3.2.2 CPU的时钟 37
3.2.3 CPU的复位 38
3.3 51单片机的存储器 39
3.3.1 程序存储器 40
3.3.2 数据存储器 41
3.3.3 特殊功能寄存器 43
3.4 单片机的并行输入/输出接口 44
3.4.1 P0接口、P2接口的结构 44
3.4.2 P1接口、P3接口的结构 47
3.4.3 并行接口的负载能力 48
本章习题 49
第4章 基本功——C51编程基础 50
4.1 C51语言的数据 50
4.1.1 数据类型 50
4.1.2 常量与变量 51
4.1.3 数据存储类型与51单片机的存储关系 54
4.2 C51语言对单片机主要资源的控制 57
4.2.1 特殊功能寄存器及其C51定义方法 57
4.2.2 绝对地址的访问 59
4.2.3 位变量的C51语言定义 59
4.3 C51语言的基本运算与流程控制语句 61
4.3.1 基本运算 61
4.3.2 选择结构——if、switch语句 62
4.3.3 循环控制——while、for语句 65
4.3.4 break语句、continue语句、return语句 67
4.4 C51语言的数组与函数 68
4.4.1 数组 68
4.4.2 函数的简单介绍 70
4.5 C51语言的预处理命令及汇编语句的嵌入 74
4.5.1 文件包含、宏定义、条件编译 75
4.5.2 C51中汇编语句的嵌入 76
4.6 单片机C51编程规范 77
4.6.1 单片机C51编程规范——总则 77
4.6.2 单片机C51编程规范——数据类型定义 77
4.6.3 单片机C51编程规范——标识符命名 78
4.6.4 单片机C51编程规范——注释 78
4.6.5 单片机C51编程规范——函数 79
4.6.6 单片机C51编程规范——排版 80
4.6.7 单片机C51编程规范——程序结构 82
本章习题 83
第5章 51单片机中断系统 84
5.1 中断系统结构与中断控制 84
5.1.1 中断系统结构 84
5.1.2 中断控制寄存器 86
5.2 中断优先级与中断函数 88
5.2.1 中断优先级 88
5.2.2 中断函数的结构形式 90
5.3 外部中断源的C51编程 90
5.3.1 外部中断源初始化 90
5.3.2 编程示例 91
本章习题 96
第6章 定时器与数码管显示 97
6.1 51单片机定时器/计数器的基本知识 97
6.1.1 定时器/计数器的基本结构 97
6.1.2 特殊功能寄存器 98
6.2 定时器/计数器的工作方式 99
6.3 定时器/计数器的应用 101
6.3.1 定时器/计数器的初始化 101
6.3.2 应用举例 102
6.3.3 用定时器实现PWM控制 106
6.4 数码管的显示原理及实现 109
6.4.1 数码管的显示原理 109
6.4.2 数码管静态显示 110
6.4.3 数码管动态显示 115
本章习题 119
第7章 键盘与LCD显示 121
7.1 独立式键盘的检测原理及实现 121
7.1.1 独立式键盘的检测原理与编程实现 121
7.1.2 键盘消抖 124
7.2 矩阵式键盘的检测原理及实现 131
7.2.1 矩阵式键盘的接口电路与检测原理 131
7.2.2 矩阵式键盘编程 132
7.3 LCD1602的显示原理及实现 136
7.3.1 LCD1602的显示原理 136
7.3.2 LCD1602硬件接口介绍 138
7.3.3 LCD1602的指令 138
7.3.4 LCD1602操作时序及编程实现 141
7.3.5 LCD1602显示实战 144
7.3.6 指针的应用 147
本章习题 148
第8章 UART串行口通信 149
8.1 串行通信初步认识 149
8.1.1 并行通信和串行通信 149
8.1.2 异步通信和同步通信 150
8.1.3 串行通信的传输方向 151
8.1.4 传输速率 152
8.1.5 串行通信的错误校验 152
8.1.6 RS-232通信接口 152
8.1.7 USB转串口通信 154
8.2 51单片机UART模块介绍 155
8.2.1 串行口结构 155
8.2.2 特殊功能寄存器 155
8.2.3 串行口的工作方式 156
8.2.4 波特率设置 158
8.3 串行口的应用 159
8.3.1 串行口初始化 159
8.3.2 应用举例 160
本章习题 168
第9章 I2C总线接口设计 169
9.1 I2C总线概述 169
9.1.1 认识I2C总线 169
9.1.2 I2C总线的硬件结构图 169
9.1.3 I2C总线的时序 170
9.1.4 I2C总线时序的程序实现 172
9.2 单片机与EEPROM编程实例 174
9.2.1 EEPROM AT24C02引脚与寻址介绍 174
9.2.2 EEPROM的读写操作时序 175
9.2.3 单字节读写实战 177
9.2.4 多字节读写与页写入实战 181
本章习题 187
第10章 模/数与数/模转换 188
10.1 A/D和D/A接口概述 188
10.1.1 一个典型的单片机测控系统 188
10.1.2 A/D和D/A转换原理及主要技术指标 189
10.2 PCF8591的硬件接口 191
10.2.1 PCF8591芯片内部逻辑结构和引脚图 192
10.2.2 PCF8591芯片器件地址与控制寄存器 194
10.3 PCF8591芯片A/D转换原理与实战 195
10.3.1 A/D转换原理 195
10.3.2 A/D转换实战 196
10.4 PCF8591芯片D/A转换原理与实战 200
10.4.1 D/A转换原理 200
10.4.2 D/A转换实战 201
本章习题 204
提高篇 206
第11章 OLED应用 206
11.1 OLED简介 206
11.2 OLED显示原理与指令 207
11.2.1 显示原理 207
11.2.2 指令介绍 208
11.3 SPI通信方式 212
11.3.1 SPI通信协议简介 213
11.3.2 SPI时序 214
11.4 例程与解析 215
11.4.1 显示字符和汉字 216
11.4.2 显示图片 225
本章习题 225
第12章 使用DS1302设计数字时钟 226
12.1 DS1302芯片介绍 226
12.1.1 DS1302芯片的特点 226
12.1.2 DS1302芯片的引脚功能 226
12.1.3 DS1302芯片寄存器功能 228
12.2 封装的编程思想和结构体类型 229
12.2.1 封装的编程思想 229
12.2.2 结构体的应用 229
12.3 DS1302读写操作的编程实现 231
12.3.1 操作DS1302寄存器函数的实现 231
12.3.2 函数的封装 234
12.4 DS1302读写实战 235
本章习题 241
第13章 DS18B20温度控制系统设计 242
13.1 DS18B20温度传感器简介 242
13.1.1 DS18B20工作原理介绍 242
13.1.2 DS18B20初始化 245
13.2 项目实战 246
13.2.1 系统功能要求 246
13.2.2 系统硬件电路 247
13.2.3 系统软件设计 247
本章习题 260
第14章 直流电机控制器设计 261
14.1 直流电机及控制技术 261
14.1.1 直流电机的基本结构 261
14.1.2 直流电机的工作原理 261
14.1.3 直流电机PWM调速原理 262
14.1.4 驱动芯片L9110S 263
14.2 项目实战 264
14.2.1 项目要求 264
14.2.2 原理图分析 264
14.2.3 软件设计 265
本章习题 271
第15章 步进电机的原理及应用 272
15.1 步进电机概述 272
15.2 四相式步进电机的工作原理 272
15.2.1 四相式步进电机的控制方法 272
15.2.2 四相式步进电机工作原理分析 274
15.3 二相式步进电机驱动实战 275
15.3.1 使电机转起来 275
15.3.2 步进电机实用程序编写 277
本章习题 283
第16章 综合项目开发 284
16.1 如何设计一个基于单片机的应用系统 284
16.1.1 系统方案论证(系统设计) 284
16.1.2 硬件设计 284
16.1.3 软件设计 285
16.1.4 系统调试 285
16.2 基于单片机的可控硅调压器设计 285
16.2.1 设计要求 285
16.2.2 方案设计 286
16.2.3 硬件设计 287
16.2.4 单片机程序设计 289
16.2.5 上位机软件设计 299
16.2.6 调试 303
本章习题 304
附录 开发板原理图 305
参考文献 310