51单片机入门、进阶与实战一本通
作者:(中国)曹新
出版时间:2019年版
内容简介
本书以实际应用为主线,由浅入深、循序渐进地讲述了51单片机内、外部资源的使用方法。全书共分5篇,分别为知识准备篇、基础功能篇、进阶功能篇、总线协议篇和综合实战篇。本书都配有项目案例,即学即用,通过丰富的项目案例使读者掌握如何使用51进行编程控制,从而达到学以致用的目的。
目录
第1篇知识准备篇
第1章单片机概述2
1.1什么是单片机2
1.2单片机的发展3
1.3单片机的特点4
1.4单片机的用途5
1.5如何学习单片机5
1.6练习题6
第2章开发准备7
2.1开发环境7
2.1.1硬件连接7
2.1.2下载器驱动安装8
2.1.3程序下载软件安装与使用12
2.1.4集成开发环境安装与使用18
2.2开发流程23
2.2.1Keil C51工程创建及程序编译23
2.2.2程序运行31
2.3开发语言35
2.3.1C51与标准C语言36
2.3.2C51的数据类型36
2.3.3C51常用头文件39
2.4练习题39
第3章硬件基础知识41
3.1LY51S开发板简介41
3.2板载元器件42
3.2.1电子元器件42
3.2.2集成电路49
3.2.3接插件50
3.2.4导线51
3.3练习题51
第4章单片机基本原理52
4.1MCS51单片机基本特性52
4.2单片机内部结构53
4.3单片机外部引脚54
4.3.1单片机外部引脚图54
4.3.2单片机引脚分类55
4.4单片机时序57
4.5单片机最小系统58
4.6单片机存储器结构62
4.6.1程序存储器62
4.6.2数据存储器63
4.7练习题68
第5章I/O端口70
5.1单片机的I/O端口70
5.1.1I/O端口概述70
5.1.2I/O端口基本原理71
5.1.3I/O端口基本操作72
5.2端口输出控制——发光二极管74
5.2.1案例51:点亮一个发光二极管76
5.2.2案例52:发光二极管流水显示80
5.2.3拓展项目:花样流水灯83
5.3端口输出控制——数码管84
5.3.1数码管结构与显示原理84
5.3.2数码管静态显示驱动86
5.3.3案例53:独立共阳数码管循环显示0~989
5.3.4数码管动态显示驱动90
5.3.5案例54:8位数码管同时显示0~793
5.3.6拓展项目:数码管显示动态数据96
5.4端口输入控制——独立按键96
5.4.1独立按键的连接方式97
5.4.2独立按键的检测原理98
5.4.3按键去抖及按键处理流程99
5.4.4案例55:抢答器101
5.4.5拓展项目:独立按键长按、短按效果102
5.5端口输入控制——矩阵键盘103
5.5.1矩阵键盘的连接方式103
5.5.2矩阵键盘的检测原理104
5.5.3案例56:矩阵键盘键号LED显示105
5.5.4拓展项目:矩阵键盘密码锁110
5.6练习题111
第6章外部中断113
6.1中断系统概述113
6.1.1中断原理113
6.1.2中断的作用114
6.1.3中断应实现的功能114
6.1.4中断相关概念115
6.2单片机中断资源116
6.2.1中断源及入口地址116
6.2.2中断控制及设置117
6.3C51中断处理函数的编写119
6.4外部中断编程实战121
6.4.1案例61:独立按键控制LED状态转换121
6.4.2拓展项目:按键改变流水灯的流水方向124
6.5练习题125
第7章定时/计数器127
7.1定时/计数器简介127
7.2定时/计数器的结构及相关寄存器127
7.2.1定时/计数器的结构127
7.2.2定时/计数器的相关寄存器128
7.3定时/计数器的工作原理129
7.3.1定时功能129
7.3.2计数功能131
7.4定时/计数器的工作方式131
7.4.1方式0131
7.4.2方式1131
7.4.3方式2132
7.4.4方式3132
7.5定时/计数器编程实战133
7.5.1定时/计数器的程序设计流程133
7.5.2案例71:按键10次翻转LED状态 133
7.5.3案例72:发光二极管定时闪烁135
7.5.4案例73:定时器产生任意占空比PWM139
7.5.5拓展项目:发光二极管定时流水显示141
7.6练习题142
第8章串口通信144
8.1串口通信概述144
8.1.1通信的基本概念144
8.1.2串行通信的工作方式145
8.1.3串行通信的时钟及传输速率145
8.1.4串行通信协议146
8.2串口通信接口电路原理148
8.351单片机串口结构及相关寄存器151
8.3.1串口的结构151
8.3.2串口的相关寄存器152
8.4串口的工作方式及波特率设置154
8.4.1方式0154
8.4.2方式1155
8.4.3方式2和方式3156
8.4.4波特率设置158
8.5串口应用编程实战159
8.5.1串口应用的程序设计流程159
8.5.2案例81:串口扩展并行输出流水灯显示160
8.5.3案例82:双机通信单字符收发164
8.5.4拓展项目:字符串收发168
8.6练习题170
第3篇进阶功能篇
第9章继电器173
9.1什么是继电器173
9.2继电器的结构及工作原理174
9.3继电器的驱动电路175
9.4继电器编程实战176
9.4.1继电器的程序设计流程176
9.4.2案例91:继电器状态切换及LED显示176
9.5练习题178
第10章蜂鸣器179
10.1什么是蜂鸣器179
10.2蜂鸣器的结构原理179
10.3蜂鸣器的驱动电路180
10.4蜂鸣器编程实战181
10.4.1蜂鸣器的程序设计流程181
10.4.2案例101:蜂鸣器模拟救护车声音181
10.5练习题183
第11章步进电机184
11.1什么是步进电机184
11.1.1步进电机简介184
11.1.2步进电机分类185
11.2步进电机的硬件结构186
11.2.1步进电机硬件结构186
11.2.2步进电机术语解释186
11.2.3步进电机的转动原理187
11.3步进电机的驱动方式187
11.4步进电机控制编程实战189
11.4.1步进电机的程序设计189
11.4.2案例111:电机正转反转190
11.4.3案例112:按键控制步进电机正反转192
11.5练习题193
第12章直流电机195
12.1什么是直流电机195
12.2直流电机的原理及分类195
12.2.1直流电机的原理195
12.2.2直流电机的分类197
12.3直流电机的驱动方式198
12.4直流电机编程实战199
12.4.1案例121:直流电机按键控制199
12.4.2案例122:直流电机PWM调速201
12.5练习题204
第13章舵机205
13.1什么是舵机205
13.2舵机的工作原理206
13.3舵机的角度控制原理206
13.4舵机编程实战207
13.4.1舵机的程序设计流程207
13.4.2案例131:按键调节舵机转角207
13.5练习题210
第14章1602液晶211
14.1概述211
14.21602液晶的基本原理及控制方式212
14.2.11602液晶的引脚结构212
14.2.21602液晶的显示内容213
14.2.31602液晶的控制方式214
14.31602液晶编程实战216
14.3.11602液晶模块的程序设计流程216
14.3.2案例141:1602液晶滚动显示字符串217
14.4练习题221
第15章双色点阵屏222
15.1双色点阵的基本原理222
15.2双色点阵的驱动芯片224
15.3双色点阵的硬件连线225
15.4双色点阵编程实战225
15.4.1双色点阵的控制流程225
15.4.2案例151:双色点阵显示特定图形226
15.5练习题230
第16章模数/数模转换231
16.1模数/数模转换原理231
16.2ADC转换类型及应用232
16.3DAC转换类型及应用234
16.4练习题235
第17章红外收发236
17.1红外接收与编解码定义236
17.2红外接收原理237
17.3红外发射原理238
17.4红外收发编程实战238
17.4.1红外收发的程序设计思路238
17.4.2案例171:红外解码液晶屏显示238
17.5练习题243
第4篇总线协议篇
第18章I2C总线与E2PROM(24C02)245
18.1I2C总线概述245
18.2I2C通信协议247
18.2.1I2C通信协议247
18.2.2单片机模拟I2C总线247
18.3E2PROM 24C02应用概述248
18.3.124C02芯片简介248
18.3.224C02硬件原理与连接248
18.3.324C02存储结构与寻址249
18.3.424C02读/写操作时序250
18.4PCF8591模拟采集与输出251
18.4.1PCF8591芯片简介251
18.4.2PCF8591硬件原理及连接252
18.4.3PCF8591寻址及功能选择253
18.5I2C总线应用编程实战254
18.5.1I2C总线应用程序设计流程254
18.5.2案例181:24C02记忆开机次数255
18.5.3案例182:PCF8591的一路AD数码管显示261
18.5.4案例183:PCF8591 DA输出模拟263
18.6练习题265
第19章SPI协议267
19.1SPI总线协议267
19.1.1SPI简介267
19.1.2SPI通信模式268
19.2DS1302时钟芯片269
19.3DS1302的引脚结构及相关寄存器270
19.3.1DS1302的引脚结构270
19.3.2DS1302的寄存器设置271
19.4SPI协议应用编程实战273
19.4.1SPI协议应用的程序设计流程273
19.4.2案例191:DS1302时钟显示273
19.5练习题278
第20章1Wire总线279
20.1概述279
20.2DS18B20数字温度传感器280
20.2.1DS18B20传感器特性280
20.2.2DS18B20的引脚结构281
20.2.3DS18B20的硬件连接281
20.2.4DS18B20的内部结构282
20.2.5DS18B20的工作原理284
20.2.6DS18B20的工作时序288
20.2.7DS18B20使用中注意事项290
20.31Wire总线应用编程实战291
20.3.1DS18B20模块的程序设计流程291
20.3.2案例201:温度采集液晶显示291
20.4练习题294
第5篇综合实战篇
第21章计算器296
21.1硬件需求296
21.2设计思路296
21.3编程实战298
21.4运行效果301
第22章串口测温302
22.1硬件需求302
22.2设计思路302
22.3编程实战302
22.4运行效果304
第23章99分钟倒计时器306
23.1硬件需求306
23.2设计思路306
23.3编程实战308
23.4运行效果312
附录AASCII表314
附录B进制转换表315
附录CC51数据类型及运算符316
参考文献318