本教材基于51单片机,采用“项目引导、任务驱动”模式,系统介绍了单片机硬件结构、开发环境搭建及C51编程方法。内容从LED流水灯、蜂鸣器驱动、独立按键输入等基础I/O控制讲起,逐步深入至数码管动态扫描、定时器中断、串行通信等核心模块。书中还详细讲解了LED点阵显示、LCD1602/12864液晶、DS18B20/DHT11温湿度传感器、PCF8591的AD/DA转换等常用外设驱动,并融入了PWM呼吸灯、超声波测距、红外遥控解码及EEPROM数据掉电保存等实用技术。全书通过典型工程案例,将知识点融入具体任务,使读者在动手实践中掌握单片机系统设计方法,提升软硬件调试能力。
本教材适合作为高等职业院校机电、电气、电子专业单片机技术课程教材,也可供单片机初学者使用。
项目一认识单片机1
任务一找到生活中的单片机1
一、什么是单片机1
二、单片机的特点2
三、单片机的应用2
四、单片机程序设计2
五、单片机品牌系列3
六、集成电路封装形式4
七、单片机与PLC的比较5
八、任务作业6
任务二认识单片机的硬件结构6
一、51单片机引脚和基本电路7
二、单片机I/O口结构9
三、强推挽和高阻态I/O11
四、51单片机I/O口模式设置12
五、上、下拉电阻14
六、常用逻辑电平16
七、任务作业17
任务三认识典型电容17
一、日常电磁干扰现象17
二、电容的作用18
三、电路中常见电容问题19
四、电容的分类22
五、电容容值的选择22
六、任务作业23
任务四使用电子检测常用工具23
一、万用表23
二、示波器25
三、逻辑分析仪28
四、任务作业33
项目二准备单片机开发环境34
任务一安装与使用Keil34
一、Keil工程的建立34
二、源文件的建立36
三、将源文件加到工程中并输入源程序37
四、编译、连接、生成目标文件37
五、任务作业39
任务二认识Keil C语言39
一、单片机程序设计语言39
二、单片机C语言与标准C语言的区别39
三、Keil C新增的数据类型40
四、8051存储区的访问关键字41
五、任务作业44
任务三使用ISP单片机下载软件44
一、安装USB 转串口驱动程序45
二、单片机烧录软件ISP操作步骤45
三、添加STC型号到Keil工程(选学)46
四、51单片机下载失败常见原因46
五、任务作业47
任务四搭建面包板单片机最小系统47
一、面包板和万用板比较47
二、单片机最小系统所需材料48
三、判断晶振起振49
四、任务作业49
项目三单片机I/O端口输出控制50
任务一点亮一个LED50
一、发光二极管LED50
二、拉电流和灌电流53
三、单片机端口输出驱动能力53
四、程序分析54
五、任务作业55
任务二位操作实现第一个流水灯55
一、典型延时函数56
二、任务作业59
任务三十六进制数点亮多个LED59
一、十进制与十六进制59
二、使用十六进制数控制I/O口输出61
三、拓展任务 花式彩灯控制62
四、任务作业63
任务四用逻辑命令实现跑马灯控制63
一、逻辑计算64
二、移位操作65
三、intrinsh中的移位函数66
四、使用字节操作修改位66
五、增强彩灯效果技巧67
六、拓展任务用逻辑命令实现彩灯变化67
七、任务作业67
任务五32位心形灯设计67
任务作业71
任务六LED呼吸灯效果实现72
一、PWM实现呼吸灯的原理72
二、变量加减法运算举出判断72
三、任务作业75
任务七蜂鸣器触发控制75
一、蜂鸣器的学习75
二、拓展任务 改变蜂鸣器发声频率76
三、任务作业77
项目四单片机I/O端口输入控制78
任务一二按键控制LED彩灯效果78
一、按键工作原理78
二、独立按键实现80
三、拓展任务 按键控制彩灯闪烁81
四、任务作业82
任务二基于倾斜开关的防盗报警器设计82
一、倾斜开关原理与应用82
二、任务作业83
任务三 非自锁开关实现自锁效果83
一、非自锁开关实现自锁效果的技巧84
二、任务作业84
任务四 基于声音传感器的声控灯设计85
一、声音传感器85
二、任务作业86
任务五防盗报警器综合设计86
一、逻辑运算符86
二、任务作业87
项目五八段数码管应用88
任务一数码管的静态显示88
一、数码管的概念88
二、数码管分类89
三、数码管的硬件电路设计89
四、74HC138三八译码器的应用90
五、拓展任务93
六、任务作业93
任务二数码管的动态扫描93
一、动态扫描定义93
二、动态扫描实现93
三、拓展任务 数码管显示任意数字95
四、任务作业95
任务三 模块化实现数码管动态显示95
一、模块化程序设计95
二、拓展任务 按键控制数码管97
三、任务作业98
项目六定时器中断应用99
任务一定时器中断控制LED 50ms闪烁99
一、中断系统99
二、中断允许寄存器IE100
三、中断优先级控制IP101
四、定时器控制寄存器TCON102
五、定时器工作模式TMOD103
六、中断处理函数104
七、MCS51单片机的指令时序107
八、计数原理108
九、任务作业110
任务二定时器中断实现长定时110
一、长时间定时110
二、拓展任务 定时器中断实现多个长定时111
三、任务作业112
任务三基于声音传感器的音乐喷泉设计112
一、定时时间精准性调整(选学)112
二、任务作业114
任务四无源蜂鸣器播放乐谱114
一、定时时间精准性调整(选学)115
二、任务作业118
任务五STC89C52的定时器2使用118
一、T2CON控制寄存器119
二、T2MOD工作方式控制寄存器120
三、任务作业120
项目七单片机外部中断应用121
任务一基于外部中断的倾斜开关报警设计121
一、外部中断的中断处理函数121
二、外围电路122
三、任务作业122
任务二基于外部中断的按键计数设计122
一、中断函数using的使用方法123
二、中断处理函数的注意事项124
三、任务作业127
任务三超声波传感器测距设计127
一、模块技术参数127
二、超声波测距原理127
三、拓展任务 显示距离指示灯132
四、任务作业132
项目八串口中断应用133
任务一单片机与PC之间双向通信133
一、通信分类133
二、单片机串口介绍134
三、波特率设置135
四、串口控制寄存器SCON137
五、串口的工作方式138
六、串口中断139
七、串行RS232通信接口139
八、USB转串口通信140
九、任务作业142
任务二单片机与单片机之间双向通信142
一、指向数组元素的指针应用142
二、拓展任务 单片机串口通信146
三、任务作业146
项目九单片机控制LED点阵147
任务一 LED点阵模块显示一个心形147
一、LED点阵147
二、 8×8 LED点阵引脚定义148
三、LED点阵控制器MAX7219简介148
四、串行数据格式150
五、可寻址的数据寄存器和控制寄存器150
六、MAX7219工作时序150
七、MAX7219的多片级联152
八、拓展任务155
九、任务作业155
任务二使用字模提取软件显示自定义图形155
一、字模提取软件的使用155
二、任务作业158
任务三LED点阵模块动态显示159
一、LED点阵模块动态显示原理159
二、拓展任务162
三、任务作业162
任务四LED点阵滚动显示162
一、数组162
二、任务作业166
项目十A/D和D/A转换应用167
任务一通过光敏电阻感应环境光线强度167
一、A/D、D/A转换167
二、PCF8591模数转换芯片168
三、I2C总线数据传输的基本过程168
四、光敏电阻171
五、任务作业178
任务二通过热敏电阻感应环境温度179
一、热敏电阻179
二、任务作业180
任务三通过可调电阻调节输入电压180
一、可调电阻180
二、任务作业181
任务四通过人体红外传感器实现人体检测181
一、人体红外传感器181
二、任务作业182
任务五通过火焰传感器实现火灾警报182
一、火焰传感器182
二、任务作业182
项目十一单片机应用提高184
任务一DS18B20温度传感器测量环境温度184
一、DS18B20简介184
二、DS18B20内部结构185
三、简单读取温度值的步骤185
四、ROM指令集185
五、补码186
六、避免“死循环等待”186
七、任务作业187
任务二DHT11数字温湿度传感器测量环境温湿度187
一、DHT11技术参数187
二、DHT11与单片机的通信时序189
三、任务作业189
任务三EEPROM实现数据掉电保存190
一、STC89C51系列单片机EEPROM的读写方法190
二、任务作业191
任务四红外线遥控器控制LED闪烁状态191
一、红外线191
二、红外线传输协议192
三、红外线接收算法分析194
四、任务作业195
任务五LCD1602液晶屏显示195
一、LCD1602简介196
二、LCD1602液晶模块引脚196
三、LCD1602液晶模块的指令码197
四、DDRAM199
五、显示动态效果200
六、显示自定义字符(选学)200
七、任务作业201
任务六LCD12864液晶屏显示汉字202
一、LCD12864简介202
二、任务作业202
参考文献203