本书针对单片机开发入门较难的特点,在总结多年教学及工程应用经验的基础上,以项目驱动为主线来组织各个部分知识点的编写,结合典型项目的设计由浅入深地展开单片机应用系统设计的相关内容,将复杂的单片机系统分解成很多单元项目,结合典型设计分别对每一个项目进行分析、设计,并掌握电路、程序的模块划分与组合,可以大大降低学习单片机系统开发难度,从而有效地引导读者进入工程开发的殿堂。
本书按照单片机应用和开发技术需求从易到难划分7章内容,通过项目设计实例(全书共有25个项目)引导读者逐步深入学习。其中第1章介绍了8051单片机硬件相关知识;第2章介绍了单片机开发所采用的软件和硬件实验平台;第3、4章为单片机内部资源应用设计,并以STC89系列单片机为例,列举了11个基础项目用于引领读者学习单片机C语言编程技巧;第5、6章主要介绍单片机系统常用的外部器件,列举了11个提高项目进一步锻炼读者的单片机系统开发设计能力;第7章介绍了STC15F系列单片机内部主要部件应用技术,并采用产品开发中的三个综合指导项目让读者进一步掌握单片机开发技能。
本书适合于单片机产品开发与项目设计培训人员、单片机技术认证培训人员、单片机竞赛培训人员以及广大单片机爱好者,也可作为高等院校电子信息类专业的教材和参考用书。
前言
第1章单片机原理与应用1
1.1认识单片机1
1.1.1单片机发展及其应用1
1.1.2单片机内部结构与硬件资源2
1.1.3单片机的外部引脚4
1.2单片机内部主要部件8
1.2.1CPU8
1.2.2存储器10
1.2.3专用寄存器11
1.2.4特殊功能寄存器13
1.3单片机系统的电路组成16
1.3.1单片机最小系统16
1.3.2单片机系统的工作模式19
1.3.3单片机应用系统20
1.4单片机的程序语言与数据22
1.4.1汇编语言程序22
1.4.2单片机的C语言程序23
1.4.3数制转换与编码24
1.4.4机器数27
思考题28
第2章单片机系统开发常用软件29
2.1单片机软件开发系统Keil应用29
2.1.1Keil μVision3工作界面29
2.1.2Keil应用步骤29
2.1.3调试程序35
2.2单片机系统的仿真与调试38
2.2.1Proteus ISIS的工作界面38
2.2.2电路原理图设计40
2.2.3仿真与调试44
2.2.4Proteus与Keil的联合调试46
2.3单片机的程序下载与硬件实验平台
简介48
2.3.1单片机硬件实验平台48
2.3.2程序下载软件51
思考题53
第3章单片机程序设计基础54
3.1单片机的C语言54
3.1.1C51的特点54
3.1.2C51的数据55
3.1.3C51的运算符57
3.1.4C51中常用的函数58
3.1.5单片机C语言的结构60
3.1.6数制与码制61
3.2单片机驱动一个LED闪烁62
3.2.1单片机I/O接口输出与驱动62
3.2.2P0.0接口驱动LED闪烁
(项目1)64
3.2.3流水灯程序设计(项目2)67
3.2.4数组与应用69
3.3数码管驱动71
3.3.1数码管的显示原理71
3.3.2数码管0~9显示程序设计
(项目3)74
3.3.3函数调用75
3.3.4主程序与子程序77
3.4单片机系统的按键(项目4)78
3.4.1按键抖动现象78
3.4.2单按键输入程序79
3.4.34×4键盘矩阵83
思考题85
第4章单片机内部硬件资源及应用87
4.1单片机的中断系统87
4.1.1中断系统简介87
4.1.2中断响应91
4.1.3中断服务函数93
4.1.4利用外部中断实现按键的输入
(项目5)94
4.2MCS51系列单片机的定时器95
4.2.1单片机的定时器/计数器结构95
4.2.2定时器的工作方式97
4.2.3定时器/计数器的初始化99
4.2.4单只数码管秒显示(项目6)100
4.2.56位数码管动态显示(项目7)102
4.3单片机串行通信105
4.3.1串行通信原理105
4.3.2单片机的串行接口106
4.3.3串行接口的工作方式109
4.3.4单片机通信电路接口113
4.3.5PC与MCS51系列单片机的串行
通信(项目8)114
4.4电子表程序设计(项目9)116
4.4.1功能分析116
4.4.2电路设计117
4.4.3程序设计117
4.5增强型51系列单片机的内部特殊
部件126
4.5.1单片机内部特殊部件126
4.5.2单片机片内看门狗定时器的使用
(项目10)128
4.5.3单片机片内AD转换器的使用
(项目11)130
思考题133
第5章单片机外围常用器件及
其应用135
5.1数字温度传感器DS18B20的应用135
5.1.1DS18B20的功能原理135
5.1.2DS18B20的工作时序137
5.1.3DS18B20的指令139
5.1.4DS18B20的驱动程序设计140
5.1.5数字温度计设计(项目12)143
5.2I2C总线器件AT24C04及其应用146
5.2.1I2C总线的构成和信号类型146
5.2.2AT24C04的应用原理148
5.2.3AT24C04的驱动程序设计150
5.2.4AT24C04的应用(项目13)152
5.3实时时钟DS1302的原理与应用
(项目14)154
5.3.1DS1302的功能154
5.3.2DS1302的寄存器和控制指令155
5.3.3DS1302的读写时序与驱动程
序156
5.3.4DS1302的应用159
5.4AD、DA转换器及其应用163
5.4.1AD转换器、DA转换器参数
描述164
5.4.2AD转换器ADC0832的应用
(项目15.1)164
5.4.3AD转换器TLC549的应用
(项目15.2)169
5.4.4DA转换器TLC5615的应用
(项目16)173
5.5单片机常用的接口电路176
5.5.1并行锁存器176
5.5.2串行移位寄存器177
5.5.3驱动器ULN2003的应用
(项目17)180
思考题185
第6章字符点阵显示186
6.1LCD1602单色字符液晶显示模块
(项目18)186
6.1.1LCD1602液晶显示模块工作原
理186
6.1.2LCD1602的操作指令188
6.1.3LCD1602的驱动程序设计191
6.1.4LCD1602的应用193
6.2LCD12864的原理与应用
(项目19)194
6.2.1LCD12864点阵液晶显示模块的
工作原理194
6.2.2LCD12864的驱动程序设计197
6.2.3LCD12864的应用206
6.3彩屏液晶TFT的原理与应用(项
目20)208
6.3.1彩色液晶显示模块概述208
6.3.2彩色液晶显示模块介绍209
6.3.3驱动程序设计212
6.4LED点阵显示屏218
6.4.1LED点阵结构及显示原理219
6.4.2LED 8×8点阵字符显示(项
目21)221
6.4.3LED汉字屏原理与设计(项
目22)224
6.4.416×16汉字点阵显示程序设计226
思考题230
第7章STC15F系列单片机内部
模块及应用231
7.1STC15F系列单片机应用基础231
7.1.1STC15F系列单片机功能概述231
7.1.2STC15F系列单片机开发环境232
7.1.3STC15F系列单片机应用测试236
7.2STC15F系列单片机片内A-D转换器的
应用(项目23)239
7.2.1基本原理240
7.2.2STC15F系列单片机的A-D转换
程序242
7.2.3利用片内A-D转换器实现NTC
热敏电阻测温243
7.3STC15F系列单片机内部EEROM的IAP技术应用(项目24)246
7.3.1EEPROM存储空间与
相关寄存器246
7.3.2片机EEPROM程序248
7.3.3掉电存储原理与应用252
7.4STC15F系列单片机PWM波输出及
其应用(项目25)254
7.4.1STC15F系列单片机PWM模
块结构原理254
7.4.2PWM相关寄存器256
7.4.3PWM波输出程序设计259
思考题261
附录51常用头文件262