图书简介:
第1章 基础知识 (1)
1.1 单片机的概念和应用领域 (1)
1.2 单片机应用系统的组成 (2)
1.3 单片机应用系统的硬件与软件开发特点 (3)
1.4 单片机应用系统的软件开发步骤 (4)
1.5 MCS-51单片机的主要引脚 (15)
1.6 晶振电路和复位电路 (17)
1.7 电平 (18)
1.8 数制及其转换 (19)
1.9 单片机C语言基础 (20)
1.9.1 数据类型 (20)
1.9.2 常量和变量 (21)
1.9.3 C语言的运算符 (23)
1.9.4 C语言程序基本结构 (24)
思考题1 (27)
第2章 发光二极管的显示输出 (28)
2.1 发光二极管 (28)
2.2 点亮一只发光二极管 (29)
2.2.1 硬件电路 (29)
2.2.2 源程序及其结构分析 (30)
C语言知识:sfr和sbit (33)
C语言知识:赋值语句 (35)
实例1 使用P1口 (38)
实例2 使用P0口 (39)
2.3 一只闪烁的发光二极管 (39)
C语言知识:循环语句 (40)
2.3.1 源程序及其结构分析 (42)
C语言知识:宏 (43)
C语言知识:注释 (43)
2.3.2 for循环延时时间的测量 (44)
2.3.3 延时子函数及其调用 (46)
2.4 流水灯 (49)
2.4.1 硬件电路 (49)
2.4.2 源程序 (50)
2.4.3 使用数组查表方法实现流水灯 (51)
C语言知识:数组 (51)
2.4.4 使用位运算中的左/右移位方法 (53)
2.5 蜂鸣器控制和继电器控制 (55)
思考题2 (57)
第3章 数码管显示输出 (59)
3.1 数码管的结构与分类 (59)
3.1.1 数字和字符的数码管显示图样 (60)
3.1.2 共阳和共阴数码管 (60)
3.2 数码管的显示输出原理 (61)
3.2.1 共阳数码管的显示输出原理 (61)
3.2.2 共阴数码管的显示输出原理 (62)
实例2 用数码管静态显示 (64)
实例3 用数码管动态显示字符 (66)
实例4 用数码管动态显示字符 (67)
实例5 用数码管动态显示时间 (70)
思考题3 (72)
第4章 键盘输入及中断 (73)
4.1 独立按键 (74)
实例5 按键计数 (75)
C语言知识:if语句 (76)
实例6 多个按键的识别 (80)
C语言知识:switch语句 (82)
实例7 一键多功能按键的识别 (83)
4.2 矩阵键盘 (85)
实例8 4×4矩阵键盘应用实例 (86)
4.3 中断 (92)
4.3.1 中断的概念 (92)
4.3.2 单片机中使用中断的意义 (93)
4.3.3 单片机的中断源 (93)
实例9 使用外部中断的控制实例 (93)
4.3.4 单片机的外部中断 (96)
C语言知识:中断服务子函数 (98)
实例10 有优先级的外部中断控制实例 (99)
4.4 定时器/计数器 (102)
4.4.1 定时器/计数器的基本概念 (102)
实例11 定时器工作在方式1下的电子钟设计 (103)
4.4.2 机器周期与外接晶振频率的关系 (106)
4.4.3 定时器的工作原理 (107)
4.4.4 与定时器有关的寄存器 (108)
实例12 定时器工作在方式2下的电子钟设计 (110)
4.4.5 定时器/计数器初值的计算与装载 (112)
实例13 定时器工作在查询方式下的电子钟设计 (113)
思考题4 (115)
第5章 液晶显示输出 (116)
5.1 1602/0802字液晶的引脚与特点
5.1.1 1602/0802字符型液晶的引脚定义 (117)
5.1.2 1602/0802液晶的特点与使用 (117)
实例14 1602液晶的字符显示 (119)
5.2 不带字库12864液晶显示输出 (121)
5.2.1 12864点阵液晶的引脚功能 (121)
5.2.2 12864点阵液晶的特点与使用 (122)
实例15 无字库12864液晶的显示输出 (124)
5.2.3 51单片机存储器类型和数据的存储类型 (136)
5.2.4 存储器映像寻址 (137)
5.2.5 对片外存储器的访问 (137)
5.3 带字库12864液晶显示输出 (138)
5.3.1 带字库12864液晶的引脚功能 (138)
5.3.2 带字库12864液晶的特点与使用 (139)
实例16 并行工作方式下带字库12864液晶显示输出 (142)
实例17 串行工作方式下带字库12864液晶显示输出 (147)
思考题5 (150)
第6章 LED点阵显示输出 (151)
6.1 8×8LED点阵显示输出 (151)
6.1.1 初识8×8LED点阵 (151)
6.1.2 8×8LED点阵的显示原理 (153)
实例18 8×8LED点阵显示输出 (154)
实例19 8×8LED点阵显示运动的箭头 (158)
6.2 16×16LED点阵显示输出 (160)
6.2.1 用8×8 LED点阵模块搭建16×16 LED点阵 (160)
6.2.2 16×16 LED点阵的驱动 (160)
实例20 16×16 LED点阵屏显示汉字 (162)
6.3 32×64 LED点阵显示输出 (166)
实例21 使用32×64 LED点阵显示汉字 (168)
思考题6 (171)
第7章 A/D转换 (172)
7.1 A/D转换器的转换分辨率和时间 (172)
7.2 ADC0809的功能与使用 (173)
实例22 模拟口线方式下ADC0809模数转换 (175)
实例23 总线控制方式下ADC0809模数转换 (178)
C语言知识:指针 (179)
7.3 AD574的功能与使用 (186)
7.3.1 AD574的引脚功能 (186)
7.3.2 AD574控制逻辑及特点 (188)
实例24 总线控制方式下AD574单极性模数转换 (190)
实例2.5 模拟口线方式下AD574单极性模数转换 (193)
7.4 ADC0832的功能特点与使用 (196)
7.4.1 ADC0832的引脚功能 (196)
7.4.2 ADC0832的特点 (197)
实例26 ADC0832模数转换 (198)
7.5 TLC2543的功能特点与使用 (201)
7.5.1 TLC2543的引脚功能 (201)
7.5.2 TLC2543的特点 (202)
实例27 用TLC2543实现A/D转换 (204)
思考题7 (207)
第8章 D/A转换 (208)
8.1 D/A转换器的分辨率和建立时间 (208)
8.2 DAC0832的功能特点与使用 (209)
实例28 多种工作模式下的DAC0832数模转换 (211)
实例29 两片DAC0832多模式数模转换 (214)
8.3 AD7237的结构功能及特点 (217)
实例30 AD7237数模转换 (221)
8.4 TLV5625的功能特点与使用 (224)
实例31 TLV5625数模转换 (227)
8.5 AD7543的引脚功能与使用 (229)
实例32 AD7543数模转换 (231)
思考题8 (232)
第9章 串口通信 (233)
9.1 串行通信的分类 (233)
9.2 串行通信的制式 (234)
9.3 单片机的串口缓冲器和工作寄存器 (235)
9.3.1 串口缓冲器SBUF (235)
9.3.2 串行口的工作寄存器 (235)
9.3.3 串行口工作方式 (237)
9.3.4 波特率 (238)
实例33 单片机间的串行通信 (239)
9.4 单片机多机通信 (242)
实例34 三个单片机间的通信与显示控制 (243)
9.5 单片机与PC间通信 (250)
实例35 单片机向PC发送和显示数据 (253)
实例36 PC向单片机发送数据 (255)
思考题9 (257)
第10章 步进电机控制 (258)
10.1 步进电机的工作原理与控制 (258)
10.1.1 步进电机的分类 (258)
10.1.2 步进电机的工作原理 (259)
10.1.3 步进角和励磁线圈通电方式 (259)
10.1.4 步进电机的驱动电路 (261)
10.2 步进电机的线路连接 (270)
10.2.1 二相四线步进电机 (270)
10.2.2 4相6线步进电机 (270)
10.2.3 4相8线步进电机 (270)
实例37 用独立按键控制步进电机 (271)
思考题10 (275)
第11章 使用DS18B20温度传感器测温 (276)
11.1 DS18B20温度传感器 (276)
11.2 DS18B20温度传感器的测温工作原理 (277)
11.2.1 DS18B20内部的存储器 (277)
11.2.2 DS18B20的指令 (279)
11.2.3 DS18B20的通信规则 (280)
11.2.4 DS18B20的初始化、数据读写操作时序 (280)
实例38 单片DS/8B20实现温度测量 (283)
实例39 四片DS18B20实现温度测量 (287)
思考题11 (292)
第12章 使用DS12C887设计高精度时钟 (293)
12.1 时钟芯片DS12C887的特性与引脚功能 (293)
12.2 DS12C887实时时钟芯片工作原理 (295)
12.2.1 DS12C887内部的存储器 (296)
12.2.2 DS12C887工作时序分析 (299)
实例40 可调高精度时钟设计 (300)
实例41 具有闹铃功能的高精度时钟设计 (310)
思考题12 (317)
第13章 I2C总线和语音芯片 (318)
13.1 单片机与I2C总线通信 (318)
13.1.1 I2C总线与单片机的连接和工作方式 (318)
13.1.2 I2C总线的通信协议 (319)
13.2 串行I2C总线E2PROM芯片AT24C02 (322)
实例42 使用I2C总线通信对AT24C02进行数据读/写操作 (325)
13.3 XF-S4240A语音合成模块及应用 (329)
实例43 采用UART通信方式通过XF-S4240播放合成语音 (332)
实例44 采用SPI通信方式通过XF-S4240播放合成语音 (334)
实例45 采用I2C通信方式通过XF-S4240播放合成语音 (336)
实例46 采用I2C通信方式在AT24C02中存/取数据并使用XF-S4240播放合成语音 (338)
思考题13 (342)
附录A 常用字符与ASCII码对照表 (343)
附录B 单片机程序的下载烧片 (344)
参考文献 (350)
展开
单片机是单片微型计算机的简称。目前,51系列、STC系列、PIC系列、AVR系列和430等多个系列的单片机共存于市场和应用开发领域,51单片机以其简单实用,性价比高,应用开发技术成熟等优势,占有单片机市场的大部分份额,因此要很好地学习和掌握51单片机的开发技能。
单片机的应用开发是一个“软硬兼施”的过程,硬件和软件缺一不可,且需要密切配合和相互弥补。单片机的软件编程语言有汇编语言和C语言,与汇编语言相比较,C语言具有可读性、可移植性、可维护性好等优点,使用C语言编写单片机的软件程序已是必然的选择。本书根据教育部最新的职业教育教学改革要求,紧紧围绕电子行业技术发展与职业岗位技能,结合高职教育人才培养目标与特点进行编写。
在编写过程中,打破了以往传统的单片机学习方式,设计一系列从简单到复杂的单片机应用开发项目实例,使读者在由浅入深地学习和掌握这些实例的过程中,边练边学,步步深入,逐步学习和掌握C语言单片机应用开发的方法和技巧。为保证实例的正确性,本书所有实例都通过实际电路的实践验证,同时,为了方便读者实践学习,所有实例完整的硬件电路图、源程序都同时给出。对于实例涉及的C语言知识点、单片机知识点,以实用、够用为原则,以解决实际问题为最终目的,将其融入具体项目的编写中,进行现场及时的介绍、解释或说明;实例不涉及的知识点暂且不提,使单片机应用开发这门综合性学科,变得简单易学和易用。这样,无论你以前学过还是没有学过C语言、了解还是不了解51单片机,都没有关系,只要紧跟本书的章节和每一个具体实例,认真操作,积极思考,经过不断的研究和学习,你一定会掌握单片机C语言应用开发的精髓,成为单片机应用开发的高手。本书除正常的章节内容目录外,作者还专门将本书涉及的C语言知识点和单片机知识点以目录的形式悉数列出,方便读者查找使用。
本书由陈宏希主编和统稿,其中第1、2章及附录A由刘伟编写,第4、9章及附录B由梁璐编写,第3、5~8、10~13章由陈宏希编写。在本书编写的整个过程中,一直得到主审贾达教授的悉心指教,在教材规划、内容安排、实例设计等方面都给予了建设性的意见和建议;书中实物照片部分由自动化研究所肖军高工拍摄并做相应处理;其他参与编写和资料整理的人员有曹岩炳、赵晓林、权建军、陈琛、李泉、潘丽;石化学院2011年全国大学生电子设计竞赛的部分参赛选手,在培训期间参阅了本书的部分初稿,并提出了许多中肯的建议,在此一并表示感谢!
在本书的编写过程中,借鉴了许多现行教材的宝贵经验,在此仅向这些作者表示诚挚的感谢!
由于作者水平有限,加之时间仓促,书中错误之处在所难免,恳请广大读者朋友批评指正。
为了方便教师教学,本书配有免费的电子教学课件、思考题参考答案以及硬件电路图和源程序代码,请有需要的教师登录华信教育资源网(http://www.hxedu.com.cn)免费注册后再进行下载,有问题时请在网站留言或与电子工业出版社联系(E-mail:hxedu@phei.com.cn)。
展开