基础篇 1
第1章 初识单片机 1
1.1 单片机的发展与应用 1
1.1.1 发展概况 1
1.1.2 发展趋势 2
1.1.3 应用领域 3
1.2 单片机的硬件结构 4
1.2.1 基本组成 4
1.2.2 中央处理器 5
1.2.3 引脚功能 8
1.2.4 存储器结构 10
1.3 单片机最小系统 14
1.3.1 电源 15
1.3.2 时钟电路 15
1.3.3 复位电路 15
1.4 总结交流 16
第2章 单片机开发工具与流程 18
2.1 硬件开发工具Altium Designer 18
2.1.1 创建集成元件库 19
2.1.2 原理图设计 32
2.1.3 PCB设计 35
2.2 软件开发工具Keil 41
2.2.1 工程项目的创建 42
2.2.2 项目文件的设置 46
2.2.3 编译与链接 48
2.3 仿真与下载工具 49
2.3.1 仿真器 49
2.3.2 编程器 49
2.3.3 单片机应用系统开发模式 49
2.4 应用系统开发流程 50
2.5 总结交流 51
第3章 单片机C语言基础 52
3.1 C51语言简介 52
3.1.1 C51程序结构 52
3.1.2 数据与数据类型 55
3.1.3 常量与变量 56
3.1.4 数据存储类型 57
3.1.5 特殊功能寄存器的C51定义 58
3.1.6 位变量的C51定义 59
3.1.7 运算符与表达式 59
3.2 C51的流程控制语句 61
3.2.1 表达式语句 61
3.2.2 复合语句 62
3.2.3 条件语句 62
3.2.4 开关语句 64
3.2.5 循环语句 65
3.2.6 跳转语句 66
3.3 构造数据 67
3.3.1 数组 67
3.3.2 指针 69
3.3.3 结构 71
3.3.4 共用体 72
3.3.5 枚举 73
3.4 函数与中断子程序 74
3.4.1 函数 74
3.4.2 中断子程序 75
3.5 总结交流 76
第4章 输入/输出端口 78
4.1 输入/输出口工作原理 78
4.1.1 P0口 78
4.1.2 P1口 79
4.1.3 P2口 80
4.1.4 P3口 80
4.2 输出口的应用——声光报警 81
4.2.1 实例说明 81
4.2.2 硬件电路设计 81
4.2.3 程序设计 81
4.3 输入/输出口的应用——BCD拨码开关 83
4.3.1 实例说明 83
4.3.2 硬件电路设计 83
4.3.3 程序设计 84
4.4 总结交流 86
第5章 中断系统 87
5.1 中断系统的工作原理 87
5.1.1 中断的概念 87
5.1.2 中断的控制 87
5.1.3 中断的响应过程 91
5.2 外部中断边沿触发方式的应用——简易红外报警装置 92
5.2.1 实例说明 92
5.2.2 硬件电路设计 92
5.2.3 程序设计 92
5.3 外部中断电平触发方式的应用——键控LED 94
5.3.1 实例说明 94
5.3.2 硬件电路设计 94
5.3.3 程序设计 94
5.4 多级中断程序设计举例 96
5.4.1 设计需求 96
5.4.2 初始化子程序设计 96
5.4.3 中断服务程序设计 97
5.4.4 主程序设计 97
5.5 总结交流 98
第6章 定时/计数器 99
6.1 定时/计数器的工作原理 99
6.1.1 定时/计数器的结构 99
6.1.2 定时/计数器的控制 100
6.1.3 定时/计数器的工作模式 101
6.2 定时方式的应用——霓虹灯 104
6.2.1 实例说明 104
6.2.2 硬件电路设计 104
6.2.3 程序设计 105
6.3 计数方式的应用——光电计数器 108
6.3.1 实例说明 108
6.3.2 硬件电路设计 108
6.3.3 程序设计 109
6.4 门控位的应用——电动机测速 110
6.4.1 实例说明 110
6.4.2 硬件电路设计 111
6.4.3 程序设计 111
6.5 总结交流 113
第7章 串行通信接口 114
7.1 串行通信接口的工作原理 114
7.1.1 串行通信的基本概念 114
7.1.2 串行通信接口的结构 115
7.1.3 串行通信接口的工作方式 117
7.1.4 波特率的设定方法 119
7.2 串行接口的应用——人机对话 119
7.2.1 实例说明 119
7.2.2 硬件电路设计 120
7.2.3 程序设计 121
7.3 串行接口的应用——多机通信 124
7.3.1 RS-485串行通信标准 125
7.3.2 实例说明 126
7.3.3 硬件电路设计 126
7.3.4 自定义通信协议 127
7.3.5 程序设计 128
7.4 串行通信的软件模拟 134
7.4.1 设计思路 134
7.4.2 串口发送程序设计 135
7.4.3 串口接收程序设计 136
7.5 总结交流 138
提高篇 140
第8章 存储器及I/O口的扩展 140
8.1 单片机外部并行总线结构 140
8.1.1 单片机的三总线 140
8.1.2 外部总线扩展的基本方法 141
8.2 外部存储器的扩展 145
8.2.1 程序存储器的扩展 145
8.2.2 数据存储器的扩展 147
8.3 并行I/O口扩展原理 150
8.3.1 NEC8255芯片介绍 150
8.3.2 NEC8255的扩展方法 154
8.4 并行I/O口扩展应用——打印机接口 156
8.4.1 实例说明 156
8.4.2 硬件电路设计 156
8.4.3 软件设计 156
8.5 总结交流 158
第9章 键盘与显示器的扩展 159
9.1 键盘接口原理 159
9.1.1 键盘实现方法 159
9.1.2 键盘设计原理 159
9.1.3 键盘扫描方法 164
9.2 LED接口原理 165
9.2.1 7段数码管的工作原理 165
9.2.2 7段数码管的控制原理 167
9.3 键盘及显示器的应用——电子密码锁 170
9.3.1 实例说明 170
9.3.2 硬件电路设计 170
9.3.3 软件设计 170
9.4 1602字符型LCM的应用——数字和字符的显示 178
9.4.1 1602字符型LCM 179
9.4.2 实例说明 182
9.4.3 硬件电路设计 182
9.4.4 软件设计 183
9.5 12864点阵型LCM的应用——汉字和图形的显示 186
9.5.1 12864点阵型LCM 186
9.5.2 实例说明 189
9.5.3 硬件电路设计 189
9.5.4 软件设计 190
9.6 总结交流 199
第10章 常用数据传输接口与技术 200
10.1 I2C总线 200
10.1.1 I2C总线协议 201
10.1.2 I2C总线的软件模拟 205
10.1.3 EEPROM芯片AT24C64 209
10.1.4 AT24C64的应用——接触式IC卡读写器 212
10.2 SPI总线 224
10.2.1 SPI总线协议 224
10.2.2 SPI总线的软件模拟 226
10.2.3 时钟芯片DS1302 228
10.2.4 DS1302的应用——电子时钟 231
10.3 1-Wire总线 235
10.3.1 1-Wire总线器件简介 236
10.3.2 1-Wire总线协议 238
10.3.3 1-Wire总线的软件模拟 242
10.3.4 数字温度传感器DS18B20 244
10.3.5 DS18B20的应用——数字温度计 248
10.4 总结交流 252
第11章 A/D与D/A接口的扩展 253
11.1 A/D转换器概述 253
11.1.1 A/D转换器的转换原理 253
11.1.2 A/D转换器的主要性能指标 255
11.2 ADC0809的应用——数字电压表 255
11.2.1 A/D转换芯片ADC0809 256
11.2.2 实例说明 257
11.2.3 硬件电路设计 257
11.2.4 软件设计 259
11.3 D/A转换器概述 265
11.3.1 D/A转换器的转换原理 265
11.3.2 D/A转换器的主要技术指标 267
11.4 DAC0832的应用——波形发生器 267
11.4.1 D/A转换芯片DAC0832 268
11.4.2 实例说明 274
11.4.3 硬件电路设计 274
11.4.4 软件设计 275
11.5 基于PWM技术的D/A转换器设计 281
11.5.1 设计原理 281
11.5.2 实例说明 282
11.5.3 硬件电路设计 282
11.5.4 软件设计 283
11.6 总结交流 286
精通篇 287
第12章 电动机的单片机控制 287
12.1 直流电动机概述 287
12.1.1 直流电动机的工作原理 287
12.1.2 直流电动机的转速 290
12.1.3 直流电动机的特性曲线 290
12.2 直流电动机的控制原理 291
12.2.1 直流电动机的驱动方法 291
12.2.2 直流电动机的转速检测 295
12.2.3 直流电动机的控制方法 298
12.2.4 直流电动机的单片机控制实例 301
12.3 步进电动机概述 306
12.3.1 步进电动机的工作机理 306
12.3.2 步进电动机的工作方式 307
12.4 步进电动机的控制原理 308
12.4.1 步进电动机的控制方案 308
12.4.2 步进电动机的位置控制 312
12.4.3 步进电动机的速度控制 315
12.5 总结交流 319
第13章 触摸屏温度控制器设计 320
13.1 方案设计 320
13.1.1 系统功能要求 320
13.1.2 系统结构及工作原理 320
13.2 主要器件介绍 321
13.2.1 温度传感器——铂电阻PT100 321
13.2.2 16位A/D转换器ADS1110 322
13.2.3 智能彩色液晶显示器YD-511A 325
13.2.4 电阻式触摸屏 327
13.2.5 触摸屏控制器ADS7846 328
13.2.6 无线通信模块PTR4000 330
13.3 硬件电路设计 334
13.3.1 主控电路 334
13.3.2 温度检测电路 334
13.3.3 无线通信接口电路 335
13.3.4 人机界面接口电路 336
13.4 软件设计 337
13.4.1 温度检测与处理 337
13.4.2 触摸屏坐标定位算法 344
13.4.3 人机界面设计 346
13.4.4 无线通信接口设计 351
13.5 系统调试 356
13.6 总结交流 356
第14章 汽车防盗报警系统设计 357
14.1 方案设计 357
14.1.1 系统主要功能 358
14.1.2 系统结构及工作原理 358
14.2 主要器件介绍 359
14.2.1 超声波传感器 359
14.2.2 CSM模块TC35i 360
14.2.3 看门狗芯片MAX813L 362
14.3 硬件电路设计 362
14.3.1 主控电路 362
14.3.2 超声波测距电路 363
14.3.3 CSM模块TC35i外围电路 364
14.3.4 断油控制电路 365
14.3.5 电源电路 365
14.4 软件设计 366
14.4.1 系统软件处理流程 366
14.4.2 超声波测距原理 369
14.4.3 入侵检测程序 369
14.4.4 GSM短信规约 372
14.4.5 短信收发处理程序 376
14.4.6 电话处理程序 386
14.4.7 看门狗控制 389
14.5 系统调试 389
14.6 总结交流 391
附录 392
附录A MCS-51系统单片机的指令表 392
附录B C语言和汇编语言的混合编程 399
附录C 8051单片机的头文件 405
附录D 常用ASCII码表 408
参考文献 410