《单片机技术及工程实践》结合工程实践系统地介绍了单片机技术原理及其应用。51系列单片机是应用得最广泛、最适合初学者学习的单片机。全书共9章,内容分为三个层次。第1~6章为基础部分,介绍了单片机硬件结构、指令系统、内部功能、总线扩展、外围接口和调试方法。第7章为单片机技术的应用实践部分,所提供的示例和思考方法都与基础原理紧密结合,通过动手实验验证以加深基础知识的理解和培养实践能力。第8、9章对工程应用中出现的问题开展单片机技术的进阶学习和串行总线扩展技术的系统性学习,以提高对单片机技术的实际运用能力。
《单片机技术及工程实践》融合了作者多年的教学和科研实践以及工程经验,书中内容和技术资料丰富,提供的实例全部通过验证,并附有汇编语言和C语言的程序源代码供对照参考,读者也可根据不同层次的需求来选择学习。
《单片机技术及工程实践》既可作为工科院校本科生单片机课程的教材,也可供研究生学习以及从事单片机技术培训、开发和应用的工程技术人员阅读参考。
“单片机技术”是一门与工程应用实践紧密结合的课程,其涉及面广、通用性强、工程应用创新成果多,已成为电子科技和自动控制系统中最普遍的应用手段,并且在课程设计、毕业设计、研究生论文课题、学生课外科技活动以及各个级别的电子设计大赛中发挥着重要作用。用单片机系统解决各类自动控制问题已成为趋势。20世纪,51系列单片机的出现,确立了单片机作为微控制器的地位,今后相当长的时间内8位单片机的主流地位不会改变。对于初学者而言,先从入门级的51系列单片机学起,是公认的学习方法,很多特殊的单片机都是在51单片机内核基础上进行功能扩充的。
很多书籍通常都详细讲述了单片机的基础知识,但学生更希望知道如何运用学到的知识解决实际问题,如何进行工程应用的构思和设计,又能在实际运用中对单片机知识加深理解和开拓视野,从而启发思维、指导学习和创新。本书引用工程实例进行思路剖析,结合科研经历丰富内容,重运用、重器件、强调实施能力。要使单片机技术的学习从入门进阶到运用自如,必须要多思考、多看电路图、多读程序、多编程序、多查技术手册,多动手实践,也就是说,知识结合工程实现,才能达到得心应手掌握这门技术的目标,本书具有这种特色。
本书内容共9章分为三个层次,从第1~6章属于基础部分的学习。第7章为单片机技术的应用实践部分,所提供的示例和思考方法都与基础原理紧密结合,且配备汇编语言程序及c语言程序供对照参考,通过动手实验验证以加深基础知识的理解和培养实践能力,很适合希望借鉴书中的示例进一步掌握单片机技术、体验工程应用的学生。对于基础较好、能力较强,希望灵活运用单片机技术并有所创新的学生,可进入第8、9章单片机技术进阶及串行总线扩展技术内容的学习,这两章结合科研实践中有代表性的电路范例,着重于单片机技术的工程运用。全书各层次的内容既独立又相互关联,可根据不同的教学要求进行部分或全部的讲授。每章均配有练习和思考题,特别是第7~9章的习题,结合工程项目示例进行训练,旨在提高学生的工程意识和工程能力。
本书可作为工科院校本科生单片机课程的教材,也可供研究生学习以及从事单片机技术培训、开发和应用的工程技术人员阅读参考。
藉此对本书工作给予大力协助的研究生表示感谢。其中,林上港组建了全书的实验电路并对其功能进行了测试和验证,为第7章实验电路的汇编语言程序编写了对应的c语言程序,对全书各章节的文字内容进行了细致的润色和修校,使之通俗易懂;刘文哲、郑元华为第9章的实验电路编写了c语言程序并进行了仿真验证。另外,感谢工程师张小玲录入全书的文字以及绘制第8章和第9章部分附图所付出的辛勤劳动。本书参考或引用了所列国内外相关文献中的一些内容,在此向原作者表示感谢。最后,感谢华南理工大学电子与信息学院对本书出版的大力支持。
作者力图使本书成为与工程实践相结合的教材,由于时间仓促,书中难免有不足或差错之处,敬请读者和同行批评指正。
前言
第1章 51系列单片机的硬件结构
1.1 单片机概述
1.1.1 微型计算机的基本功能构件
1.1.2 单片机的发展概况
1.1.3 51系列8位单片机的基本类型
1.2 51系列单片机芯片结构
1.2.1 51系列单片机基本组成结构
1.2.2 51系列单片机的引脚及其功能
1.3 51系列单片机的中央处理器
1.3.1 运算部件
1.3.2 控制部件1
1.3.3 CPU的工作时序1
1.4 存储器结构及存储空间1
1.4.1 程序存储器1
1.4.2 片内数据存储器1
1.4.3 特殊功能寄存器1
1.4.4 片外数据存储器2
1.5 并行I/O接口2
1.5.1 P0口的结构及功能2
1.5.2 P1口的结构及功能2
1.5.3 P2口的结构及功能2
1.5.4 P3口的结构及功能2
1.5.5 I/O口的带载能力及要求2
1.6 51系列单片机的工作方式2
1.6.1 复位方式2
1.6.2 程序执行方式2
1.6.3 低功耗方式2
1.6.4 编程方式2
1.6.5 加密方法2
练习与思考2
第2章 指令系统3
2.1 指令系统概述3
2.1.1 指令格式3
2.1.2 指令分类3
2.1.3 符号说明3
2.2 寻址方式3
2.2.1 立即寻址3
2.2.2 直接寻址3
2.2.3 寄存器寻址3
2.2.4 寄存器间接寻址3
2.2.5 基址加变址间接寻址3
2.2.6 相对寻址3
2.2.7 位寻址3
2.3 指令系统及应用3
2.3.1 数据传输类指令3
2.3.2 算术运算类指令4
2.3.3 逻辑运算类指令4
2.3.4 控制转移类指令4
2.3.5 位操作类指令4
2.4 伪指令4
2.5 部分指令用法说明5
练习与思考5
第3章 51系列单片机内部功能5
3.1 定时器/计数器功能5
3.1.1 定时器/计数器T0、T1的结构及原理5
3.1.2 定时器/计数器T0、T1的工作模式5
3.1.3 定时器/计数器T26
3.1.4 定时器/计数器的初始化6
3.1.5 利用门控位GATE测量脉冲宽度6
3.2 中断系统功能6
3.2.1 中断源和中断向量6
3.2.2 中断控制6
3.2.3 中断响应7
3.2.4 中断服务程序及其初始化7
3.2.5 运用中断功能的程序单步调试7
3.3 串行口通信功能7
3.3.1 串行通信基本知识7
3.3.2 串行口控制器7
3.3.3 串行口的工作方式7
3.3.4 串行口的多机通信8
3.3.5 串行通信的波特率8
3.3.6 异步通信的奇偶校验8
3.3.7 串行口的通信应用8
练习与思考8
第4章 并行总线扩展技术9
4.1 并行总线扩展9
4.1.1 并行总线扩展方法9
4.1.2 单片机的最小系统9
4.1.3 并行总线的地址译码9
4.2 常用扩展器件9
4.2.1 8位D锁存器9
4.2.2 8位单向总线驱动器9
4.2.3 8位双向总线驱动器9
4.2.4 3-8译码器9
4.2.5 4-16译码器9
4.3 存储器的扩展9
4.3.1 程序存储器的扩展9
4.3.2 数据存储器的扩展9
4.3.3 混合存储器的扩展10
4.4 I/O口扩展10
4.4.1 锁存器扩展输出口10
4.4.2 锁存器扩展输入口10
4.4.3 三态门扩展输入口10
4.4.4 I/O口的混合扩展10
练习与思考10
第5章 外围接口技术10
5.1 键盘接口10
5.1.1 独立式键盘接口10
5.1.2 拨码盘接口10
5.1.3 矩阵键盘扫描法11
5.1.4 矩阵键盘反极法11
5.1.5 矩阵键盘位操作法11
5.1.6 矩阵键盘接口的工作方式11
5.2 LED显示器接口11
5.2.1 LED显示器结构11
5.2.2 LED静态显示方式11
5.2.3 LED动态显示方式12
5.3 A/D转换器接口12
5.3.1 A/D转换器概述12
5.3.2 8位并行A/D转换器ADC080912
5.3.3 8位串行A/D转换器TCL548/54912
5.4 D/A转换器接口13
5.4.1 D/A转换器概述13
5.4.2 8位并行DAC0832转换器13
5.5 隔离、执行机构与单片机接口13
5.5.1 光电耦合器与单片机接口13
5.5.2 继电器与单片机接口13
5.5.3 固态继电器与单片机接口13
5.5.4 集电极开路门接口电路14
5.5.5 达林顿晶体管阵列驱动电路14
练习与思考14
第6章 单片机应用系统设计与调试14
6.1 单片机应用系统的设计环节14
6.2 硬件功能的设计原则14
6.2.1 单片机应用系统的硬件组成14
6.2.2 硬件设计的考虑14
6.3 软件功能的设计原则14
6.4 51系列单片机开发工具与方式14
6.4.1 在线仿真14
6.4.2 软件仿真15
6.4.3 在线编程15
6.5 单片机应用系统的调试15
6.5.1 硬件调试15
6.5.2 软件调试15
练习与思考15
第7章 单片机技术应用实践15
7.1 定时器/计数器在音乐发生器中的应用15
7.1.1 设计思路与依据15
7.1.2 硬件电路设计15
7.1.3 软件设计15
7.1.4 应用说明16
7.2 中断技术的双向识别16
7.2.1 设计思路和依据16
7.2.2 硬件设计17
7.2.3 软件设计17
7.2.4 应用说明17
7.3 串行通信的自发自收17
7.3.1 设计思路和依据18
7.3.2 硬件设计18
7.3.3 软件设计18
7.3.4 应用说明19
7.4 融合定时控制的键盘输入19
7.4.1 设计思路和依据19
7.4.2 硬件设计19
7.4.3 软件设计19
7.4.4 应用说明19
7.5 混合控制技术的红外遥控20
7.5.1 设计思路和依据20
7.5.2 硬件设计20
7.5.3 软件设计20
7.5.4 应用说明21
练习与思考21
第8章 单片机工程技术进阶21
8.1 中断返回与抗干扰21
8.1.1 硬件Watchdog及与单片机的接口21
8.1.2 Watchdog脉冲设置与复位可靠性分析21
8.1.3 中断返回与软件Watchdog机理21
8.1.4 中断返回与软件Watchdog实验验证21
8.1.5 软件Watchdog的热启动改进措施22
8.1.6 防错位干扰的空操作措施22
8.2 待机与键盘唤醒技术22
8.2.1 待机与唤醒方法的考虑22
8.2.2 待机方式的键盘唤醒电路22
8.3 数据冗余恢复技术23
8.3.1 冗余数据的存放区域考虑23
8.3.2 数据冗余恢复的表决策略23
8.4 交流电断电检测与信息保护技术23
8.4.1 交流电断电检测模块的构思与实现23
8.4.2 交流电断电检测的信息保护23
8.5 PC与多单片机通信的工程问题25
8.5.1 PC与单片机的逻辑电平转换接口25
8.5.2 PC与多单片机通信的问题分析25
8.5.3 PC与多单片机通信的处理措施25
8.5.4 PC与多单片机通信的实验验证25
8.6 点阵字符LCM造字与显示技术26
8.6.1 点阵字符LCM的功能结构简介26
8.6.2 点阵字符LCM的用户造字26
8.6.3 点阵字符LCM的时序26
8.6.4 点阵字符LCM的指令系统26
8.6.5 单片机与LCM接口的编程方法26
8.7 实时日历时钟27
8.7.1 DS12C887的引脚及存储器27
8.7.2 DS12C887寄存器A~D的功能27
8.7.3 DS12C887的读数方法与复位27
8.7.4 DS12C887的读/写时序27
8.7.5 DS12C887与单片机的接口电路27
练习与思考28
第9章 串行总线扩展技术28
9.1 SPI总线扩展技术28
9.1.1 SPI总线概述28
9.1.2 SPI总线扩展电路28
9.1.3 SPI总线数据交换原理28
9.1.4 SPI时钟相位和极性28
9.1.5 SPI总线采样的软件实现28
9.1.6 51系列单片机的SPI扩展应用29
9.2 Microwire总线扩展技术29
9.2.1 Microwire总线概述29
9.2.2 Microwire总线扩展电路29
9.2.3 Microwire总线串行E2PROM的数据传输29
9.2.4 51系列单片机与Microwire串行E2PROM的应用29
9.3 I2C总线扩展技术30
9.3.1 I2C总线概述30
9.3.2 I2C总线时序30
9.3.3 I2C总线串行器件的数据传输方法30
9.3.4 51系列单片机与I2C串行E2PROM的扩展应用31
9.4 单总线扩展技术31
9.4.1 单总线概述31
9.4.2 单总线工作原理32
9.4.3 单总线信号传输时序32
9.4.4 单总线的ROM命令32
9.4.5 单总线的功能命令32
9.4.6 51系列单片机与单总线器件的扩展应用32
9.5 几种串行总线技术的比较33
练习与思考33
附录34
附录A 51系列单片机按字母顺序排列的指令表34
附录B 特殊功能寄存器综览表34
附录C 内部RAM空间结构布局图34
附录D IC封装含义汇总34
附录E SPI总线的8位MCU34
附录F SPI总线的外围器件34
附录G I2C总线的8位MCU35
附录H I2C总线的外围器件35
参考文献35
(4)32位单片机近年来各个芯片生产厂商着力于研制性能更高的32位单片机,但由于控制领域的需求不迫切,因此32位单片机的应用并不广泛。
单片机的发展过程中出现的4位、8位、16位单片机,由于各自的特点对应于各自的应用领域和场合,因此不存在高端产品淘汰或替代低端产品的情况。这是因为工程应用中要考虑成本因素,在低端单片机能完成所需功能的情况下,就没有必要采用高端单片机,例如在8位机的发展时期,考虑到4位单片机工艺成熟、价格低廉,仍有不少进口仪器仪表采用4位单片机来实现。总的说来,单片机各种机种均有不同程度的应用,尤其8位单片机的性能在不断地增强和提高,所以在未来相当长的时期内8位单片机在中小规模的应用场合仍占据主流位置。2.单片机的特点以MCS-51系列单片机为例,其结构有别于通用微机,主要特点如下:1)单片机的ROM(程序存储器)和RAM(数据存储器)分开成为两个严格独立的地址空间,各自采用不同的寻址方式。对于面向工业控制的应用,存放程序的ROM空间要求较大而存放数据的RAM空间则相对要求较小。
2)单片机的指令系统主要面向控制,在逻辑控制和位控制方面显得更强,可由相应的指令来实现功能的选择和控制的切换而不必依靠硬件跳线。
3)单片机的IO口线可通过程序的控制实现双功能复用,能够有效解决有限引脚数目与更多功能设置之间的矛盾。
4)单片机的外部扩展功能很强,接口与许多通用的微机芯片兼容,能对ROM、RAM、IO口等进行扩展。
3.常用单片机系列
单片机发展至今已达几十个系列、几百种型号。其中,MCS是Intel公司的注册商标,MCS.51系列中的第一位成员是8051单片机,Intel公司把基于8051内核的单片机统称为MCS.51系列。人们现在泛指的8051系列单片机,是包括了Intel公司在内的所有公司如Philips、Atmel、Winbond、Siemens、AMD、OKI、NEC等生产的基于8051内核的单片机。此外还有80C51系列单片机,采用了与8051系列HMOS工艺不同的低功耗型CHMOS工艺,它的增强型版本是80C52系列单片机。本书把上述所有单片机统称为51系列单片机。
除了基于8051内核的51系列单片机外,还有另外一些常见的系列,如68H系列、PIC16系列等,但它们的指令系统与51系列的均不兼容。鉴于51系列单片机程序设计简单、性能可靠、实用性强、便于初学者学习入门,本书把它作为学习讨论的重点。
在51系列单片机中,Intel公司的MCS一51系列单片机和Atmel公司的AT$9系列单片机是相互兼容的,它们均属于8051内核。不同的是前者的片内程序存储器为掩膜ROM或EPROM(紫外光擦写)存储器,而后者则是Flash(闪速)存储器,使用起来后者更为方便,因此目前被广泛采用。本书所述内容所指的主要是这两种系列,不加区分。