单片机原理及应用——基于C51和Proteus仿真(微课版)
定 价:¥59
中 教 价:¥34.81 (5.90折)促销
库 存 数: 28
丛 书 名:计算机类技能型理实一体化新形态系列
本书坚持理论够用、侧重实用的原则,以Proteus虚拟仿真技术和Keil C51为基础,用案例/示例来讲解每个知识点,对8051单片机的软、硬件做了较为详细的阐述。全书内容充实、结构清晰、通俗易懂,力争做到使初学者充满兴趣地学习8051单片机技术。本书共11章,分别为: 8051单片机基本结构、单片机仿真环境、指令系统与汇编语言程序设计、C51语言程序设计、键盘与显示器接口技术、中断系统、定时器/计数器、串行口、数模与模数转换接口技术、单片机系统扩展以及Proteus仿真设计实例。其中,第1章、第3章和第4章为本书最基础和最重要的3章,全面而详细地介绍了8051单片机硬件和软件两方面的知识;第2章介绍了Proteus仿真软件和C51开发工具Keil Vision5;第5~11章介绍了各种常见I/O接口的原理与使用方法。本书所有示例均在Proteus上调试通过,可以直接运行。书中所有源代码及各种配套资源可在清华大学出版社网站下载。 本书适合作为高等院校计算机类、电气类、自动化类、通信类、电子信息类、机械类、仪器仪表类及其他相关专业的单片机教材使用,也可作为从事单片机应用系统开发的工程技术人员、单片机技术爱好者及各类自学人员的参考书。
本书内容来自一线教师的多年教学成果,同时作者有多年的企业从业实际工作经验,所以教材定位准,内容实用,书中有大量的实用案例,非常适合学生和从业人员学习。
随着物联网和人工智能等技术不断向纵深发展,单片机的重要性更加凸显。单片机是单片微型计算机的简称,是把组成微型计算机的各功能部件(中央处理单元CPU、随机存取存储器RAM、只读存储器ROM、并行I/O接口、串行通信接口、定时器/计数器、中断系统、系统时钟及系统总线等)封装在一块尺寸有限的集成电路芯片中。由于单片机具有可靠性高、体积小、性价比高和应用灵活性强等特点,因而在工业自动检测与控制、机器人、数据采集、智能仪器仪表、机电一体化产品、汽车电子设备、武器装备、办公自动化设备、武器装备、智能终端、通信设备、导航系统、智能家用电器、计算机外部设备、通信产品和玩具等领域获得广泛应用。单片机经历了8位机、16位机和32位机3个发展阶段。8位机以Intel公司的MCS51为代表;16位机以Intel公司的MCS96为代表;32位机以意法半导体(ST)公司采用ARM核的STM32为代表。自从Intel公司于20世纪80年代初推出MCS51系列单片机以后,几乎所有MCS51系列单片机都以Intel公司最早的典型产品8051为核心,而且增加了一定的功能部件,所以人们习惯于用8051来称呼MCS51系列单片机。MCS51系列是最早进入我国且在我国得到广泛应用的单片机主流品种。因为8051单片机结构简单、指令易学,所以是单片机初学者的首选。如果不学8051单片机,而直接学STM32,通常会遇到很多难题和困惑,要费很大精力;如果学了8051单片机,则较容易对硬件架构、软件设计、软硬件结合等相关知识和技术进行总体把握与认知,此时再学STM32,会发现很容易上手,且能够更深刻地理解和掌握STM32,可达到事半功倍的效果。因此,通过学习8051单片机可以为其他类型单片机的学习打下坚实的基础。在目前的单片机应用市场中,8位机和32位机各有各的应用场合,会共存很长时间。为了提高读者学习8051单片机的效率,本书以仿真实验代替实物实验,基于Proteus仿真软件进行电路设计及程序仿真,使8051单片机的抽象概念直观化、编程效果可视化。本书共包括11章,第1章介绍了8051单片机的内部结构、存储器结构、引脚功能和并行I/O口等硬件的主要知识点。第2章介绍了Proteus仿真软件和C51开发工具Keil Vision5,为后续各个实验打下基础。第3章介绍了指令系统的基本概念、寻址方式和五大类共111条指令,并且通过多个示例介绍了51单片机汇编语言程序设计技术。第4章介绍了C51的数据类型和存储器类型、将变量定义在不同类型存储器中的方法、使用关键字_at_和预定义宏指定变量的绝对地址以及C51指针、C51函数定义的一般形式、C51与汇编混合编程。第5~11章介绍了各种常见I/O接口的原理与使用,如键盘与显示器接口技术、中断系统、定时器/计数器、串行口、数模与模数转换接口技术、程序存储器扩展、数据存储器扩展、8155可编程并行I/O端口扩展以及利用I2C总线进行串行I/O端口扩展等。通过这11章的学习,可以提高读者单片机软、硬件系统的整体设计意识和设计能力,为以后深入学习嵌入式技术打下坚实的基础。本书由北京邮电大学计算机专业博士、高校副教授张同光担任主编,河南师范大学洪双喜和刘春红、电能易购(北京)科技有限公司王晓兵、郑州轻工业大学陈明、新乡学院田乔梅担任副主编。其中,洪双喜、刘春红、王晓兵和陈明编写第5~11章,田乔梅编写第4章,张同光编写第1~3章及其余部分。全书最后由张同光统稿和定稿。本书得到了河南省高等教育教学改革研究与实践重点项目(No.2021SJGLX106)、河南省科技攻关项目(No.202102210146)、网络与交换技术国家重点实验室开放课题(SKLNST2020101)以及高效能服务器和存储技术国家重点实验室的支持,在此表示感谢。本书对应的电子课件、源代码文件、Proteus仿真电路文件和虚拟机文件等各种配套教学资源可在清华大学出版社网站(https://www.tup.com.cn)下载。本书配套提供了近70个教学视频,读者在学习的过程中,可扫描教学视频二维码观看与学习。由于编者水平有限,书中欠妥之处,敬请广大读者批评、指正。
编者2023年8月
张同光,副教授,计算机博士,毕业于北京邮电大学。主要从事计算机方面的教学及科研工作,发表SCI、EI等学术论文30余篇,主编教材近20本,主持或参与省部级以上项目6个。对Linux操作系统有深入且全面的研究和应用。使用C/C 等语言开发过若干个横向项目。讲授过的计算机专业课程有:《Linux 0.11内核分析》、《Linux操作系统》、《嵌入式软件开发基础》、《Linux C编程》、《Linux网络服务与编程》、《Linux驱动程序设计》、《嵌入式软件开发高级》、《软件工程》、《C 程序设计》、《微机原理》、《计算机网络原理》、《计算机专业英语》、《操作系统原理》、《离散数学》、《计算机组成原理》、《单片机原理》、《C程序设计》、《数据结构》、《汇编语言》、《网络安全技术》等。
第1章8051单片机基本结构11.1单片机概述11.28051单片机的内部结构41.3CPU51.3.1运算器51.3.2控制器51.3.3位处理器61.48051单片机的存储器结构61.4.18051存储器结构61.4.2程序存储器71.4.3片内数据存储器81.4.4片外数据存储器91.4.5特殊功能寄存器101.58051单片机的引脚功能121.5.18051单片机的引脚121.5.2电源及外接晶振121.5.3控制引脚131.5.4单片机最小系统141.6并行I/O口151.6.1P0口151.6.2P1口161.6.3P2口171.6.4P3口181.7时钟电路与时序191.7.1时钟电路191.7.2CPU时序191.8单片机应用系统的开发过程211.9习题23第2章单片机仿真环境252.1Proteus和Keil Vision5252.1.1Proteus简介252.1.2Keil Vision5简介262.1.3本书实验环境262.2流水灯272.2.1使用Proteus设计电路原理图272.2.2使用Keil Vision5建立工程文件(汇编语言)302.2.3使用Keil Vision5建立工程文件(C语言)342.3Proteus与Keil Vision5联合仿真调试352.4习题36第3章指令系统与汇编语言程序设计373.1指令系统概述373.1.1指令格式373.1.2指令分类383.1.3执行指令的过程383.2寻址方式393.2.1寄存器寻址393.2.2直接寻址403.2.3立即寻址403.2.4寄存器间接寻址413.2.5基址变址寻址413.2.6相对寻址423.2.7位寻址433.2.8七种寻址方式总结443.3指令分类详解443.3.1指令中的符号及其含义443.3.2数据传送类指令453.3.3算术运算类指令483.3.4逻辑运算及移位类指令513.3.5控制转移类指令533.3.6位操作类指令553.451单片机汇编语言程序设计573.4.1汇编语言的特点573.4.2汇编语言的语句格式573.4.3汇编语言的伪指令583.4.4电路原理图613.4.5顺序程序设计613.4.6分支程序设计643.4.7循环程序设计653.4.8查表程序设计683.4.9汇编语言程序的框架693.5习题70第4章C51语言程序设计734.1C51编程语言简介734.2本章所有示例使用的电路原理图744.3C51程序设计基础744.3.1数据类型754.3.2存储器类型754.3.3bit、sbit、sfr和sfr16数据类型774.3.4存储模式(编译模式)和存储器类型804.3.5使用关键字_at_指定变量的绝对地址824.3.6使用预定义宏指定变量的绝对地址834.3.7C51指针844.4C51函数854.4.1函数定义的一般形式854.4.2函数的调用864.4.3本征库函数864.5C51程序的一般结构874.6C51与汇编混合编程884.6.1混合编程的必要性884.6.2混合编程的要点884.6.3C51程序中直接嵌入汇编代码894.6.4C51程序调用汇编子程序无参数传递的函数调用914.6.5C51程序带1个参数调用汇编子程序自动产生汇编源文件924.6.6C51程序带2个参数调用汇编子程序自动产生汇编源文件954.7习题97第5章键盘与显示器接口技术995.1LED数码管显示器接口技术995.1.1LED数码管显示器995.1.2LED数码管显示器的工作方式1005.1.3使用LED数码管显示器1015.1.4使用74HC595驱动8位LED数码管1045.1.5使用MAX7219驱动多位LED数码管1085.2键盘接口技术1135.2.1编码键盘接口技术1145.2.2非编码键盘接口技术1155.38279可编程键盘/显示器芯片接口技术1185.3.18279内部结构及工作原理1185.3.28279的寄存器1205.3.3使用8279芯片1245.4LCD接口技术1275.4.1LCD工作原理1275.4.2LM016L液晶显示屏简介1275.4.3点阵字符型液晶模块的直接访问方式1335.4.4点阵字符型液晶模块的间接访问方式1365.4.54位数据总线接口1385.4.6使用12864点阵图形LCD显示模块1405.5习题144第6章中断系统1456.1中断简介1456.2中断系统结构与中断控制1466.2.1中断系统结构图1466.2.2中断控制1476.3中断函数1506.4中断应用举例1506.4.1中断源扩展1516.4.2中断嵌套1526.5习题154第7章定时器/计数器1567.1定时器/计数器的工作方式与控制1567.1.1定时器/计数器的功能1567.1.2工作方式控制寄存器TMOD1567.1.3定时器/计数器控制寄存器TCON1577.2定时器/计数器的工作方式1587.2.1工作方式0和工作方式11587.2.2工作方式21607.2.3工作方式31617.3定时器/计数器应用举例1627.3.1定时功能1627.3.2计数功能1687.4习题171第8章串行口1738.1异步串行通信1738.1.1字符的帧格式1738.1.2数据传送速率1748.1.3数据通路方式1748.1.4串行口结构1758.2串行通信控制寄存器1768.2.1SCON1768.2.2PCON和波特率1778.2.3IE和IP1788.2.4中断请求的撤销1788.3串行口的工作方式1788.3.1工作方式01788.3.2工作方式11818.3.3工作方式2和工作方式31838.4习题191第9章数模与模数转换接口技术1939.1ADC及DAC的主要性能指标1939.2DAC接口技术1949.2.1DAC0832与8051单片机的接口方法1949.2.2DAC1208与8051单片机的接口方法2009.2.3串行DAC与8051单片机的接口方法2029.2.4利用DAC接口实现波形发生器2059.3ADC接口技术2079.3.1比较式ADC0809与8051单片机的接口方法2079.3.2串行ADC与8051单片机的接口方法2119.4习题214第10章单片机系统扩展21510.1线选法和译码法21510.2程序存储器扩展21610.3数据存储器扩展21910.48155可编程并行I/O端口扩展22210.4.18155引脚和内部结构22210.4.28155控制字及其工作方式22410.4.38155外部扩展举例22510.5利用I2C总线进行串行I/O端口扩展22910.5.1I2C串行总线系统的基本结构22910.5.2I2C总线的数据传送规定23010.5.3I2C接口存储器芯片24C0423310.5.4I2C接口A/DD/A芯片PCF859123710.6习题243第11章Proteus仿真设计实例24511.1DS18B20多点温度监测系统设计24511.1.1功能要求24511.1.2硬件电路设计24511.1.3软件程序设计24911.2带农历的电子万年历设计25511.2.1功能要求25511.2.2硬件电路设计25611.2.3软件程序设计25811.3电子密码锁设计26711.3.1功能要求26711.3.2硬件电路设计26711.3.3软件程序设计267附录AASCII码表281附录B运算符的优先级和结合性282参考文献283