单片机项目学习实践教程(含DVD光盘1张)(txt+pdf+epub+mobi电子书下载)


发布时间:2020-05-29 21:51:33

点击下载

作者:潘晓宁

出版社:电子工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

单片机项目学习实践教程(含DVD光盘1张)

单片机项目学习实践教程(含DVD光盘1张)试读:

前言

这是一本关于如何用MCS-51系列单片机进行具体项目设计的实践性教学用书。书中在引入MCS-51单片机和C51程序设计的一些必备基础知识之后,详细介绍了 MCS-51增强型STC单片机的特色及项目用开发板功能和KeilC51及STC-ISP软件的使用方法。

全书的重点在于具体的项目设计方法和解决方案。项目的引入原则是由简入繁,从基本的单片机输入/输出控制到红外数据传输的14个单片机基础项目,都是按照“项目目标设计→项目任务→系统板上硬件连线设置→程序流程图→C语言源程序→系统构成和程序分析”的顺序进行组织和讲解。读者在使用本书时,应将项目中的C语言源程序编译后下载到与本书配套的单片机开发板上进行验证,再通过观察开发板上系统运行时出现的物理现象,对照相应的单片机和C51程序设计基础知识,学习和分析项目中的软、硬件设计方法。每个基础项目的最后都有“项目扩展任务”,供读者在掌握每个项目的基础之上,进行更深层次的能力和知识训练。“综合项目提高篇”中的4个项目,是建立在14个基础项目之上的综合运用实例。这些综合项目中的系统设计实例与人们的生活息息相关,具有很高的实用价值,希望能够对读者在实际应用中扩展单片机应用系统的知识和技能,起到抛砖引玉的作用。

现在很多高等学校使用的单片机教材,基本上都是以单片机的结构为主线,展开的顺序为从单片机的硬件结构到指令,然后是简单的软件编程,再到中断的概念和应用,最后是单片机系统的扩展和各种外围器件的应用,同时结合一些实例,而对涉及硬件的综合性分析几乎不做讲解。教师在讲解过程中涉及很多抽象的理论知识,如总线、并行接口、中断、堆栈、地址、数据等,学生普遍感到难学,导致此类教材变成了“天书”,学生逐渐失去了学习的信心和兴趣。这类教材反映的教学方法造成了学生对单片机系统在实际工程项目中应用能力的缺失,也不利于他们开拓能力的培养,走上工作岗位之后,他们会感到与相关的实践能力要求存在一定的差距。

为了改善这种被动式教学模式,最佳的方法就是在教学过程中不断培养学生对单片机课程的兴趣。以项目驱动为主的教学方式,视学生为主体,以项目达成为牵引,以单片机系统设计能力培养为目标。学生在模仿工作过程的项目教学中,为了达成项目任务,必须反复动手尝试,积极思考,将学习的过程由被动转变为主动,最终达到训练自身专业能力的目的。实施这种面向“工作过程”的岗位训练,课程的重心侧重学生综合素质的提高、岗位技能的培养以及专业知识的综合运用,为他们毕业之后与工作岗位的近距离连接创造了有利的条件。本教材就是为了探索这种模仿单片机系统设计与研发过程的项目教学模式而撰写的。

为了更好地介绍和分析项目中出现的各种知识点,书中给出了大量的插图,进一步帮助读者进行相关项目的学习。由于C语言与汇编语言相比,更加适合复杂系统的功能设计实现,因此书中的所有项目程序均采用C语言进行开发,

为了便于读者学习和验证这些项目,编者开发了与之配套的51单片机开发板,板子的硬件原理图在本书的附录中全部给出。读者可以针对自己将要设计的单片机系统对参考原理图进行裁减,设计自己的PCB,焊接器件及测试系统,

随书光盘中包含丰富的教学资源,包括每个项目的所有程序及操作演示视频。为了方便高校教师使用,光盘中还包括开发板的电路原理图(JPEG图片格式)、

基础知识篇

和基础项目篇的所有PPT课件内容,最具特色的资源是所有14个基础项目的原理动画演示和三维虚拟实训软件。

每个基础项目的原理动画演示软件都实现了对涉及项目的软、硬件及系统进行3D微观动画分析。它们结合项目中开发板各阶段的物理状态,运用交互式控制方式详细地分析和讲解了相关的芯片状态和软件源代码。这是一个借助图形动画模式直观地认识项目的过程,更易于初学者在课程学习中理解晦涩难懂的电子理论知识。

在实际教学中,教材中的每个项目都必须配置单片机教学开发板。对于没有条件的学校,项目教学不能够很好地展开。针对这种状况,编者开发了与教材配套的单片机虚拟实训项目,创建了模拟真实环境和流程的交互式虚拟实训场景。

虚拟实训软件实现了在逼真的3D动画环境下,学生只要通过鼠标,在相应的提示下对开发板进行短接片的接插、拨动按钮的开关、按压相应的按键等虚拟操作,即可完成与实际单片机教学板上一样的功能。虚拟场景架设了多台摄像机,供演练者进行实训操作。其中一些摄像机架设在视景中的微型直升机上,通过相应的按键控制,可实现场景的漫游操作。整个实训过程如同游戏过关,真正实现了项目教学“寓教于乐”的功能。

为了将教学中开发的相关教学资源和教学成果不断地应用于教学实践中,本书建设了相应的课程网站。该网站同时是2013年广东省精品资源课程建设网站,网站中除了包括随书光盘的所有内容外,还包括教学大纲、教案及教学计划等资源,最新开发的教学资源也会第一时间放置在此网站上供大家参考,网址为http://bb.sziit.edu.cn/webapps/bb-quick-Login-bb_bb60/quickLogin.jsp?cid=1440

本书是多位不同学校的教师在其单片机教学过程中的实践总结和教学成果的结晶,由深圳信息职业技术学院的潘晓宁老师担任主编,嘉兴学院的朱耀东老师担任副主编,(负责11、14和15章节的撰写)。

MCS-51单片机基础知识部分主要参考了文献【1】、【2】,C51程序设计基础知识部分主要参考了文献【3】、【4】、【5】。书中引用的其他参考资料都在文中详细标出,在此对被引用文献的作者表示深深的敬意和感谢。

由于时间仓促,书中配套资源中难免有不妥之处,希望读者批评和指正,以便我们在今后的版本中进行适当的修订。如果在教材使用过程中有任何建议或相关的技术问题,请通过panxn@sziit.com.cn或课程网站上的留言板留言,以便共同探讨。

编者

2015年4月基础知识篇

本篇主要介绍单片机概述、MCS-51单片机内部结构、系统资源、C51程序设计及相关软件的基础知识。

关于MCS-51单片机和C51程序设计部分的内容,本篇介绍得比较简略,如果直接学习,读者理解起来可能比较困难,建议在学习本篇内容之前先进行后面“基础项目篇”的项目学习和实践,针对具体项目中出现的单片机软、硬件知识点,找出相关内容,再进行学习和理解。这样,读者在项目实践中,通过实际动手操作,具备了一定的感性认识,就会对软、硬件的原理和结构产生浓厚的兴趣。这种兴趣是单片机系统设计人员必备的专业素质。

总之,读者应将这部分内容作为原理性知识进行参考,在项目中通过“系统项目设计实践→原理理解→再实践→再理解”的反复学习过程,掌握单片机的系统设计知识。

单元1 单片机概述

单元2 MCS-51单片机内部结构

单元3 MCS-51单片机的系统资源

单元4 STC单片机内部资源和PMY单片机开发板简介

单元5 KeilC51程序设计基础

单元6 KeilC51和STC-ISP软件的使用单元1 单片机概述

在学习单片机知识之前,有必要简单介绍单片机的发展、MCS-51系列单片机的概念、单片机的应用模式和应用领域等方面的知识,以便初学者对单片机技术有一个整体的认识。本单元关于单片机基础知识的内容主要来自于参考文献【6】。

1.1 单片机的发展

单片机(单片的微型计算机)是在1970年微处理器研制成功后随之出现的。第二年,美国Intel公司开发并生产了4位单片机4004。1972年,该公司推出了8位单片机的雏型8008。到了1976年9月,IntelMCS-48单片机问世。从那以后的二十几年间,单片机经历了多次更新换代,大约每2~3年更新一代,集成度增加1倍,功能翻1番。单片机发展速度之快、应用范围之广,达到惊人的地步。它渗透到社会生产和生活的各个领域,可谓“无孔不入”。

在MCS-48单片机大范围成功应用的刺激下,半导体公司和计算机公司争相研制和发展自己的单片机系列。到目前为止,世界各地的厂商研制出种类繁多的单片机产品,其中有Motorola公司的6801、6802,Zilog公司的Z-8系列,Rockwell公司的6501、6502等;日本的NEC公司、日立公司及EPSON公司也相继推出各具特色的单片机品种。

尽管目前单片机的品种很多,但最具典型性的当属Intel公司的 MCS-51系列单片机。MCS-51是在MCS-48的基础上于20世纪80年代初发展起来的,虽然它仍然是8位单片机,但其功能有很大的增强。它还具有品种全、兼容性强、软硬件资料丰富等特点,因此应用非常广泛,成为继MCS-48之后最重要的单片机品种。直到现在,MCS-51仍不失为单片机的主流机型,在国内应用最广。

在8位单片机之后,16位单片机也有很大发展,1983年Intel公司推出的MCS-96系列单片机就是典型代表。与MCS-51相比,MCS-96不但字长增加1倍,而且具有4路或8路的10位A/D转换功能,在其他性能方面也有一定的提高。在高档智能仪表、彩色复印机、录像机等应用领域,16位单片机大有用武之地,目前IntelMCS-96系列单片机在国内应用较好,必将以其高性能的特点得到大规模推广。

综观近30年的发展过程,单片机朝着多功能、多选择、高速度、低功耗、低价格、扩大存储容量和加强I/O功能及结构兼容的方向发展。今后的发展趋势如下所述。(1)微控制器的CPU核仍以CISC为主,但向RISC演化

在传统微控制器领域,还是以当初Intel确立的哈佛结构(程序和数据存储器相分立的体系)和复杂指令集系统(CISC)为主,只有少数厂家生产精简指令集(RISC)计算机。生产RISC的计算机厂家及其微控制器有:Microchip的8位PICl2/16/17/18Fxxx微控制器,Atmel的8位AVR微控制器,SCENIX的8位SXl8/20/28AC和SX48/52BD微控制器。这3个厂家都使用了快闪存储器(Flash)存放程序。(2)提升指令执行速度

提高单片机的振荡器频率或减少每机器周期包含的振荡器周期数,都可以提高指令的执行速度。例如,Philips公司把12MHz的80C51从每机器周期所含振荡器周期数由12改为6,获得2倍速;Winband公司将周期数由12改为3,获得4倍速。目前,8位微控制器的频率一般高达33~40MHz,所以指令执行速度可以比较容易地从原来的1MIPS(Million InstructionPerSecond,每秒处理的百万级机器语言指令数)提高到10MIPS。但是,指令执行速度提高到50~100MIPS的都是RISC指令的8位微控制器。(3)集成大容量片上Flash存储器,实现ISP和IAP

近几年,8位微控制器竞相采用Flash存储器。因为它集成密度高、价格便宜、技术先进,可以取代PROM、EPROM和EEPROM等。例如,STC系列单片机芯片内分别有4~64KB的Flash,并利用Flash可高速读/写的特点,实现在系统烧录程序(ISP)和在应用中烧录程序(IAP)。

ISP技术是在焊接成的板级系统上直接对微控制器进行擦除和程序烧录的先进技术。STC的IAP技术,是从结构上将Flash存储器映像为两个存储体,当运行在一个存储体上的用户程序时,在后台对另一个存储体实时烧录更新的程序,再将控制转到更新的程序上执行。(4)普遍使用混合信号(数字—模拟相混合)集成技术

用CMOS工艺将数字和模拟电路集成于同一块片上的技术已经成熟,有力地削减了片外的附加器件,提高了性能,缩短了产品上市时间。例如,片上集成12位A/D、上电复位/掉电检测、捕捉/比较/PWM、锁相环、8×8硬件乘法器,以及USB、CAN总线接口等。(5)追求低电压、低功耗、低价位、LPG(少腿芯片)

降低工作电压,无疑可以成指数级地降低功耗,所以出现了多电压供电的微控制器,其CPU部分工作于1.5~2.5V,I/O口工作于3.3~5V。为实现低功耗,应尽可能多地将片外器件集成在同一块片上,以便与CPU一同进入暂停、休眠或部分运行状态。

1.2 MCS-51系列单片机简介

MCS-48系列单片机的技术特征是将CPU和计算机外围电路集成到一块芯片上,构成新型工业微控制器。

MCS-51系列8位高档单片机是在MCS-48系列单片机的基础上,于20世纪80年代初推出的,其主要技术特征有下述几点。(1)扩大了片内存储容量及外部寻址空间

程序存储器和外部数据存储器的寻址空间都增加为64KB(1KB为1024B,1B为1字节(Byte))。4KB×8ROM作为内部程序存储器,用来存放系统程序、用户的专用程序和固定常数。

在MCS-51系列单片机中,8031、8751与8051的内部结构基本相同,其区别仅在于8031内部不含有程序存储器,必须由外部扩展。8751内部程序存储器为可编程、可改写的只读存储器EPROM,其内部程序由用户自行写入。

在片内数据存储器方面,MCS-51系列单片机采用8位地址,寻址范围为256B。其中,00H~7FH为128字节的内部RAM,用来存放用户的随机数;在80H~FFH范围内,离散地分布着21个特殊功能寄存器,其中11个特殊功能寄存器具有位寻址功能。在内部RAM中,00H~1FH分为4个寄存器工作区。寄存器工作区由选择指令进行切换,有效地提高了CPU的现场保护能力和实时响应速度。20H~2FH单元可进行位寻址。(2)增强了并行口,增设了全双工串行口I/O

4个8位并行I/O接口可用于传送地址和数据;也可与8255、8155等连接,实现外部I/O接口扩展。串行I/O接口是一个全双工串行通信口,用于数据的串行接收和发送,为构成串行通信网络提供了方便。(3)定时器/计数器功能增强

两个定时器/计数器均为16位(比8048大1倍),且有4种工作方式,既提高了定时/计数范围,又能够使用户灵活、方便地使用。(4)增强了中断系统

在MCS-51单片机中设置有2级中断优先级,可接受5个中断源的中断请求,中断优先级别由用户定义。这样的系统架构,使得MCS-51单片机很适合用在数据采集与处理、智能仪器仪表和工业过程控制中。(5)具备较强的指令寻址和运算等功能

MCS-51系列单片机有111条指令,分为4大类,使用了7种寻址方式。这些指令的44%为单字节指令,41%为双字节指令,15%为三字节指令。若采用l2MHz晶体频率,50%的指令可在1μs内执行完毕,40%的指令在2μs内执行完毕。此外,MCS-51系列单片机设有减法、比较和8位乘、除法指令,乘、除法指令的执行时间仅为4μs,提高了CPU的运算与数据处理能力。(6)增设了颇具特色的布尔处理机

在MCS-51的指令系统中设置有位操作指令,用于位寻址空间。这些位操作指令与位寻址空间构成布尔处理机,对于实时逻辑控制处理具有突出的优点。

单片机的这些主要技术特征源于单片机配置了完善的外部并行总线(AB地址总线、DB数据总线和CB控制总线)和具有多机识别功能的串行通信接口(UART),规范了功能单元的特殊功能寄存器(SFR)控制模式及适应控制器特点的布尔处理系统和指令系统,为发展具有良好兼容性的新一代单片机奠定了基础。

1.3 单片机的应用模式和应用领域

单片机的应用主要体现在其控制功能上。在工业或其他控制系统中,要求控制器具有体积小、功耗小、成本低、价格廉以及控制功能强等特点,单片机完全满足这些要求。

单片机的上述特点,使其应用范围在社会生产、生活的各个领域不断扩展。例如,在智能仪器仪表、家用电器和军事设备的智能化以及实时过程控制等方面,单片机扮演了越来越重要的角色。下面介绍单片机的典型应用领域。(1)家用电器领域

目前,国内各种家用电器普遍采用单片机系统取代传统的控制电路,如洗衣机、电冰箱、空调机、微波炉、电饭煲、电视机、录像机、手机、摄像机及其他视频音像设备的控制器,还有儿童玩具、机器人控制等。(2)办公自动化领域

现代办公室中使用的大量通信、信息产品多数采用单片机,如通用计算机系统中的键盘译码、磁盘驱动、打印机、绘图仪、复印机、电话、传真机、考勤机等。(3)商业营销领域

目前,商业营销系统广泛使用的电子称、收款机、条形码阅读器、仓储安全监测系统、商场保安系统、空气调节系统、冷冻保鲜系统等纷纷采用单片机构成专用系统,主要原因是这种系统具有明显的抗病菌侵害、抗电磁干扰等高可靠性能的保证。(4)工业自动化

除一些小型工控机之外,在工业过程控制、过程监测、工业控制器及机电一体化控制系统中,普遍采用以单片机为核心的单机或多机网络系统。例如,工业机器人的控制系统是由中央控制器、感觉系统、行走系统、擒拿系统等节点构成的多机网络系统。(5)智能仪表与集成智能传感器的控制电路

目前,各种变送器、电气测量仪表普遍采用单片机应用系统替代传统的测量系统,使测量系统具有各种智能化功能,如存储、数据处理、查找、判断、联网和语音功能等。将单片机与传感器相结合,可以构成新一代的智能传感器,它将传感器初级变换后的电量做进一步的变换、处理,输出能满足远距离传送、能与微机接口的数字信号。例如,将压力传感器与单片机集成在一起的微小型压力传感器可随钻机送至井下,用于报告井底的压力状况。(6)汽车电子与航空航天电子系统

通常,在这类电子系统中的集中显示系统、动力监测控制系统、自动驾驶系统、通信系统以及运行监视器(黑匣子)等都含有单片机构成的冗余网络系统。

1.4 如何使用这本书

众所周知,我国高校的单片机课程教学模式一般都是以教师讲授为主,学生被动接受知识。大部分学生反映这样的教学效果欠佳。

针对这种状况,一些高校纷纷对现有授课模式进行了积极的改革和探索,其中宁波职业技术学院戴士弘教授在总结高等职业教学改革【7】经验的基础上,编著了《职业教育课程教学改革》一书,对高等职业教育中涉及的培养目标、课程教学单元设计和整体设计等重要的观念、方法和能力等问题提出了切实可行的思路和方法,为以培养学生专业技能为核心的高校课程改革指明了一条可行之路。

基于这一思想,本书采用模仿工作过程模式的“项目教学法”,以项目任务驱动为主,整个课程被设计为启发式教学,学生通过“调试例程→达成任务→提出问题→教师解答→小组开发→讨论难点→项目达成→教师考核→学生自评→项目总结”的实践教学过程,获得包括硬件和软件双方面的知识和能力训练,教师的主要职责也转变为在项目中指导和启发学生完成具体的系统设计。学生在这种仿工作过程的项目教学过程中,为了达成项目任务,将学习的过程由被动转变为主动,达到锻炼自身专业能力的目的。实施这种面向“工作过程”的岗位训练,课程评价方式更注重学生综合素质的提高、岗位技能的掌握以及专业知识的综合运用,为他们毕业之后与工作岗位的近距离连接创造了有利的条件。

本书的内容以单片机的具体项目为主线,项目组织由简单到复杂,遵循循序渐进的教学规律,不是单纯地讲解单片机的结构、时序、指令系统与程序设计等理论知识,而是通过一个个实际的项目,在具体的单片机开发板上实现给定的项目任务及过程。

在各个项目的实操过程中,或多或少地涉及单片机结构、中断系统、定时器/计数器、存储器扩展、接口技术(包括用户界面技术、串行通信技术)、开发系统的组成和功能、单片机高级语言开发及硬件设计过程和环境等知识和内容。教师可以先按照书中的项目顺序安排学生在开发板上验证本书给出的项目例程,针对各个项目中系统执行的不同效果,归纳知识点,再返回“基础知识篇”中的相应知识点进行讲解。这样一来,学生在由感性到理性的认知过程中,不断学习单片机系统的硬件结构和程序设计方法;随着项目不断深入,学习将逐渐掌握单片机系统设计的各个知识点。这种方法更符合知识的认知规律。“基础项目篇”中的“项目扩展任务”可以作为学生在对每个项目都实践和理解后的训练作业。学生只有对本项目中的知识点认真理解和掌握之后,才有可能完成这些“项目扩展任务”。在此期间,学生必然经过多练(练习项目)、多写(写程序)、多思考的反复训练过程。如果学生能真正完成这些训练,就可以掌握单片微型机算机及接口的原理和工作方式等知识,最终获得单片机综合应用系统的设计、调试和测试技能。

当然,在单片机项目教学过程中涉及电路分析、模拟电路、数字电路、电磁学、软件学、硬件电路设计和制版及C程序设计等多门课程的知识,对从事单片机课程教学工作的高校教师提出了更高的专业技能要求。只有不断地努力学习,更新知识,相关专业教师才能够适应新模式下的高校课程教学改革。

通过对本书相关项目的具体操作与练习,读者可以掌握单片微型计算机的基本组成以及各种接口部件的使用及扩展方法,培养和提高运用单片机技术开发各类单片机系统和设备的能力,如下所述:

① 分析、理解和掌握典型单片机基本电路。

② 熟练应用Protel绘制原理图。

③ 掌握在KeilC51下开发单片机C程序的流程和方法。

④ 能够连接和启动单片机的硬件开发环境。

⑤ 掌握万用表和示波器等基本电子仪器仪表的使用方法。

⑥ 能够独立进行单片机应用系统的软、硬件设计。

读者在进行项目训练时,应认真阅读与项目有关的章节内容,提前做好预习工作,在每次训练前明确目的、掌握训练的基本内容及操作方法;在训练中,正确使用仪器设备,细心观察,认真分析结果;训练后,应根据要求做好总结,完成“项目扩展任务”。

与本书配套的光盘中有丰富的教学资源,包括每个项目的所有程序及操作演示视频。为了方便高校教师使用,光盘中还包括开发板的电路原理图(JPEG图片格式)、基础知识篇和基础项目篇的所有PPT课件内容,最具特色的资源是14个基础项目的原理动画演示和三维虚拟实训软件。

每个基础项目的原理动画演示软件都实现了对涉及项目的软、硬件及系统进行3D微观动画分析。它们结合项目中开发板各阶段的物理状态,运用交互式控制方式对涉及的芯片状态和软件源代码进行了详细的分析和讲解,是一个借助图形动画模式直观对项目进行认知过程,更易于初学者在课程学习中理解晦涩难懂的电子理论知识。

配套教材中的每个项目学习都必须配置单片机教学开发板,对于没有条件的学校,项目教学则不能够很好地加以展开,针对此种状况,编者开发了与教材配套的单片机虚拟实训项目,创建了模拟真实环境和流程的交互式虚拟实训场景。

虚拟实训软件实现了在逼真的3D动画环境下,学习者只要通过鼠标,在相应的提示下对开发板进行短接片的接插、搬动按钮的开关、按压相应的按键等虚拟操作,即可完成与实际单片机教学板上一样的功能,虚拟场景架设了多台摄像机,供演练者进行实训操作,其中一些摄像机架设在视景中的微型直升机上,通过相应的按键控制,可实现场景的漫游操作,整个实训过程如同游戏过关,真正实现了项目教学的寓教于乐功能。

为了将教学中开发的相关教学资源和教学成果不断用于教学实践中,本书建设了相应的课程网站,该网站同时是2013年广东省精品资源课程建设网站,网站中除了包括随书光盘的所有内容外,还包括教学大纲、教案及教学计划等更适合教学的相关资源,最新开发的教学资源也会第一时间放置在课程网站上以供大家学习参考,该网站的网址为:http://bb.sziit.edu.cn/webapps/bb-quickLogin-bb_bb60/quickLogin.jsp?cid=1440。书中所有工程实践设计项目都是以深圳宏晶科技有限公司生产的STC单片机为核心构建的PMY单片机开发系统。此开发板以STC89C52RC单片机为主芯片,用串口线即可完成程序的下载,采用USB口供电,更加方便携带,利用一台计算机就足以完成程序的开发及下载工作,只用一根STC下载线(标准下载线,电子市场有售)。因此,在系统的开发过程中免去了其他单片机开发过程中常用的下载器和仿真器,节省了产品研发成本,降低了单片机开发的门槛,更适合高校学生和单片机爱好者进行实践学习。

项目训练用的主要仪器设备包括计算机、PMY单片机开发板及其附件、KeilC51软件、ProtelDXP软件、导线、焊台、万用表和示波器等。

单元2 MCS-51单片机内部结构

在单元1中介绍过,MCS-51是由美国Intel公司生产的一系列单片机的总称。这一系列单片机包括很多品种,如8031、8051、8751等。其中,8051是最早、最典型的产品,该系列其他单片机都是在8051的基础上进行功能的增、减、改变而来的,所以人们习惯于用8051来称呼MCS-51系列单片机。

MCS-51系列单片机主要包括8031、8051和8751等通用产品,其主要功能及特点如下所述。

①8位CPU。

②4KB程序存储器(ROM)。

③128B的数据存储器(RAM)。

④32条I/O口线。

⑤111条指令,大部分为单字节指令。

⑥21个专用寄存器。

⑦2个可编程定时器/计数器。

⑧5个中断源,2个优先级。

⑨ 一个全双工串行通信口。

⑩ 外部数据存储器寻址空间为64KB。

⑪ 外部程序存储器寻址空间为64KB。

⑫ 逻辑操作位寻址功能。

⑬ 双列直插40PinDIP封装。

⑭ 单一+5V电源供电。

MCS-51以其典型的结构和完善的总线、专用寄存器集中管理方式,众多的逻辑位操作功能及面向控制的丰富指令系统,为其他单片机的发展奠定了基础,后来的许多厂商在研发产品时多沿用或参考其体系结构。全球许多大型电气商丰富和发展了 MCS-51单片机,Philips、Dallas、ATMEL等著名的半导体公司都推出了兼容MCS-51的单片机产品。

2.1 内部结构与引脚功能

2.1.1 内部结构

MCS-51单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时器/计数器、并行接口、串行接口和中断系统等几大单元,以及数据总线、地址总线和控制总线三大总线。它的主要部件如下所示。(1)中央处理器(CPU)

中央处理器是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码。CPU负责控制、指挥和调度整个单元系统协调地工作,完成运算和控制输入/输出功能等操作。(2)数据存储器(RAM)

8051内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的。专用寄存器只能用于存放控制指令数据,用户只能访问,不能用于存放用户数据。所以,用户能使用的RAM只有128个,可存放读写的数据、运算的中间结果或用户定义的字型表。(3)程序存储器(ROM)

8051共有4096(4KB)个8位掩膜ROM,用于存放用户程序、原始数据或表格。(4)定时器/计数器(T/C)

8051有两个16位的可编程定器时/计数器,实现定时或计数;产生中断,用于控制程序转向。(5)并行输入输出口(I/O)

8051共有4组8位I/O口(P0、P1、P2或P3),用于传输外部数据。(6)全双工串行口(UART)

8051内置一个全双工串行通信口,用于与其他设备间传送串行数据。该串行口既可以用作异步通信收发器,也可以当作同步移位器使用。(7)中断系统

8051具备较完善的中断功能,有两个外中断、两个定时器/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择。(8)时钟电路

8051内置最高频率达12MHz的时钟电路,用于产生整个单片机运行的脉冲时序,但8051单片机需外置振荡电容。

单片机的结构有两种类型,一种是程序存储器和数据存储器分开的形式,即哈佛(Harvard)结构;另一种是采用通用计算机广泛使用的程序存储器与数据存储器合二为一的结构,即普林斯顿(Princeton)结构。MCS-51系列单片机采用哈佛结构,后续的16位MCS-96系列单片机采用普林斯顿结构。图2-1所示为 MCS-51系列单片机的内部结构示意图。2.1.2 CPU部件及特殊功能寄存器

图2-1所示8位 MCS-51系列单片机CPU内部由算术逻辑单元 ALU(Arithmetic LogicUnit。也称运算器)、累加器A(8位)、寄存器B(8位)、程序状态字PSW(8位)、程序计数器PC(也称为指令指针,即IP,16位)、地址寄存器AR(16位)、数据寄存器DR(8位)、指令寄存器IR(8位)、指令译码器ID、控制器等部件组成。(1)运算器ALU

ALU的主要功能如下所述:

① 算术和逻辑运算,可对半字节(一个字节是8位,半个字节就是4位)和单字节数据进行操作。

② 加、减、乘、除、加1、减1、比较等算术运算。

③ 与、或、异或、求补、循环等逻辑运算。图2-1 MCS-51系列单片机的内部结构示意图

④ 位处理功能(即布尔处理器)。

由于ALU内部没有寄存器,参加运算的操作数必须放在累加器A中。累加器A也用于存放运算结果。(2)程序计数器PC

PC的作用是存放将要执行的指令地址,共16位,可对64KBROM直接寻址。PC低8位经P0口输出,高8位经P2口输出。也就是说,程序执行到什么地方,程序计数器PC就指到哪里。由于用户程序存放在内部ROM中,执行程序就要从ROM中一个个字节地读出来,然后到CPU中去执行。在ROM中具体执行的指令由程序计数器PC来指定。

程序计数器PC具有自动加1的功能,即从存储器中读出一个字节的指令码后,PC自动加1(指向下一个存储单元)。(3)指令寄存器IR

指令寄存器的作用是存放即将执行的指令代码。

CPU指令的执行过程可以简单地描述为:从程序存储器(ROM)中读取指令代码送入指令寄存器,经译码器译码后,由定时与控制电路发出相应的控制信号,完成指令的功能。(4)指令译码器ID

ID用于对送入指令寄存器的指令进行译码。所谓译码,就是把指令转变成执行此指令所需要的电信号。当指令送入译码器后,由译码器对该指令译码;根据译码器输出的信号,CPU控制电路定时地产生执行该指令所需的各种控制信号,使单片机正确地执行程序所需要的各种操作。(5)地址寄存器AR(16位)

AR的作用是存放将要寻址的外部存储器单元的地址信息,指令码所在存储单元的地址编码由程序计数器PC产生,而指令中操作数所在的存储单元地址码由指令的操作数给定。地址寄存器通过地址总线AB与外部存储器相连。(6)数据寄存器DR

DR用于存放写入外部存储器或I/O端口的数据信息。数据寄存器与外部数据总线DB直接相连,并对输出数据具有锁存功能。(7)程序状态字PSW

PSW用于记录运算过程中的状态,如是否溢出、进位等。(8)时序部件

时序部件由时钟电路和脉冲分配器组成,用于产生微操作控制部件所需的定时脉冲信号。

从图2-1中可以看出,在51单片机内部有1个CPU用于运算、控制,有4个并行I/O口(P0、P1、P2、P3),ROM用来存放程序,RAM用来存放中间结果;此外,还有定时器/计数器、串行I/O口、中断系统以及1个内部的时钟电路。

进一步分析图2-1可知,对于并行I/O口的读写,只要将数据送入相应I/O口的锁存器就可以了。对于定时器/计数器、串行I/O口等,在单片机中有一些专门的存储单元来控制,称为特殊功能寄存器(SFR)。在8051单片机中,共有21个特殊功能寄存器,它们被离散地分布在内部RAM的80H~FFH地址中,其功能被专门地规定,用户不能修改其结构。表2-1给出了这些寄存器的名称、符号和地址分配。表2-1 特殊功能寄存器的名称、符号和地址分配表续表

下面介绍表2-1中列出的几个常用SFR。(1)累加器A

累加器A是一个最常用的专用寄存器。大部分单操作指令的一个操作数取自累加器,很多双操作数指令中的一个操作数也取自累加器。加、减、乘、除运算的指令和运算结果都存放于累加器A或AB寄存器(累加器A和寄存器B)中。大部分数据操作都通过累加器A完成。它形同一条交通要道。在比较复杂的程序运算中,累加器因此成为制约软件效率的“瓶颈”。可以通过提高单片机软件效率的办法,解决累加器的“交通堵塞”问题。(2)寄存器B

在乘、除法指令中,乘法指令中的两个操作数分别取自累加器A和寄存器B,其结果存放于AB寄存器对中。在除法指令中,被除数取自累加器A,除数取自寄存器B,结果商存放于累加器A,余数存放于寄存器B。(3)程序状态字PSW寄存器

程序状态字PSW(Program Status Word)寄存器是一个很重要的8位寄存器,用于存放程序运行的很多状态信息。这个寄存器的一些位由软件设置,有些位由硬件运行时自动设置。程序状态字寄存器的各位定义如表2-2所示。其中,PSW.1是保留位,未使用。表2-2 程序状态字寄存器的位定义

下面逐一介绍各位的用途。

①CY:进位标志位。8051中的运算器是一种8位的运算器,只能表示0~255。加法运算中的两数之和可能超过255,最高位将丢失,造成运算错误。如果将最高位存入CY,就解决了运算错误的问题。有进、借位,CY=1;无进、借位,CY=0。

②AC:辅助进位标志位。当进行加、减运算出现低4位向高4位进位或借位时,AC置位,否则被清零。AC辅助进位位也常用于十进制调整。

③F0:用户标志位。由用户(编程人员)决定什么时候用,什么时候不用。

④RS1、RS0:工作寄存器组选择位。其相关内容将在后面“存储器组织”中介绍。

⑤OV:溢出标志。带符号加、减运算中,超出累加器A所能表示的符号数有效范围(-128~+127)时,产生溢出,OV=1,表明运算结果错误。如果OV=0,表明运算结果正确。

执行加法指令ADD时,当位6向位7进位,而位7不向C进位时,OV=1;位6不向位7进位,而位7向C进位时,同样OV=1。

若执行乘法指令,乘积超过255时,OV=1,乘积在AB寄存器对中。若OV=0,说明乘积没有超过255,乘积只在累加器A中。

若执行除法指令,OV=1,表示除数为0,运算不被执行;否则,OV=0。

⑥P:奇偶校验位。它用来表示ALU运算结果中二进制数位“1”个数的奇偶性。若为奇数,则P=1;否则为0。运算结果有奇数个“1”,P=1;运算结果有偶数个“1”,P=0。

例如,某运算结果是78H(01111000),显然“1”的个数为偶数,所以P=0。(4)I/O口专用寄存器(P0、P1、P2、P3)

I/O口寄存器P0、P1、P2和P3分别是MCS-51单片机的4组I/O口锁存器。MCS-51单片机没有专门的I/O口操作指令,而是把I/O口当作一般的寄存器来使用,数据传送统一使用MOV指令完成。这样的好处是,4组I/O口可以当作寄存器以直接寻址方式参与其他操作。(5)程序计数器PC(ProgramCounter)

PC是一个16位计数器,用于存放一条要执行的指令地址,寻址范围为64KB。PC有自动加1功能,即执行完一条指令后,其内容自动加1。PC本身没有地址,因而不可寻址,用户无法对它读写,但是可以通过转移、调用、返回等指令改变其内容,以控制程序按要求去执行。(6)数据指针DPTR

数据指针为16位寄存器。编程时,既可以按16位寄存器来使用,也可以按两个8位寄存器(即高位字节寄存器DPHR和低位字节寄存器DPLR)来使用。

DPTR主要用来保存16位地址。当对64KB的外部数据存储器寻址时,DPTR可作为间址寄存器使用。在访问程序存储器时,DPTR用作基址寄存器,采用基址+变址寻址方式访问程序存储器,常用于读取程序存储器内的表格数据。(7)堆栈指针SP(StackPointer)

堆栈是一种数据结构,堆栈指针SP(StackPointer)是一个8位寄存器,指示堆栈顶部在内部RAM中的位置。系统复位后,SP的初始值为07H,堆栈实际上从08H开始。从RAM的结构分布可知,08H~1FH隶属1~3工作寄存器区(如图2-5所示),若编程时需要用到这些数据单元,必须对堆栈指针SP初始化。原则上,堆栈设在任何一个区域均可,但一般设在30H~7FH较适宜。

数据的写入堆栈称为入栈,从堆栈中取出数据称为出栈。堆栈的最主要特征是“后进先出”,即最先入栈的数据放在堆栈的最底部,最后入栈的数据放在栈的顶部,因此最后入栈的数据出栈时是最先的。这和往一个箱子里放书本一样,要将最先放入箱子底部的书取出,必须先取走最上层的书籍。

图2-2所示为一个堆栈操作的示意图。在图2-2(a)中,栈底存放数据38;其上是栈顶,存放数据24;当前栈指针SP指向栈顶,地址为40H,此时假设有数据78要被压入堆栈。图2-2(b)所示为数据78被压入栈中。在该数据进栈之前,(SP)+1的值必须先赋予SP,这时栈指针SP为41H,并假设数据78准备出栈。图2-2(c)所示为数据78出栈后的示意图。注意,这时的顺序是数据78先被读出,然后(SP)-1的值赋给SP,SP为40H。图2-2 堆栈操作示意图

设立堆栈是为了中断操作和调用子程序,并用于保存数据,即常说的断点保护和现场保护。微处理器无论是转入子程序和中断执行服务程序,执行完之后,都要回到主程序。在转入子程序和中断服务程序之前,必须先保存现场数据,否则返回时,CPU将不知道原来的程序执行到哪一步,原来的中间结果如何。所以,在转入执行其他子程序之前,先将需要保存的数据压入堆栈来保存,以备返回时复原当时的数据,供主程序继续执行。

转入中断服务程序或子程序时,需要保存的数据可能有若干个,需要一一保存。如果微处理器执行多重子程序或中断服务程序嵌套,需保存的数据就更多,这要求堆栈有相当的容量;否则,会造成堆栈溢出,丢失应备份的数据。轻则使运算和执行结果错误,重则使整个程序紊乱。

MCS-51的堆栈是在RAM 中开辟的,即堆栈要占据一定的RAM 存储单元。同时,MCS-51的堆栈可以由用户设置,SP的初始值不同,堆栈的位置就不同;不同的设计人员,使用的堆栈区不同;不同的应用要求,堆栈要求的容量也不同。堆栈的操作只有两种,即进栈和出栈,但不管是向堆栈写入数据还是从堆栈中读出数据,都是针对栈顶单元的,SP将即时指示栈顶的位置(即地址)。在子程序调用和中断服务程序响应的开始和结束期间,CPU都是根据SP指示的地址与相应的RAM存储单元交换数据。

堆栈的操作有两种方法:第一种是自动方式,即在中断服务程序响应或子程序调用时,返回地址自动进栈。当需要返回执行主程序时,返回的地址自动交给PC,保证程序从断点处继续执行,不需要编程人员干预。在编译C51程序时,采用这种方式。第二种是人工指令方式,使用专有的堆栈操作指令完成进、出栈操作。这种方式只有两条指令:进栈为PUSH指令,在中断服务程序或子程序调用时用作现场保护;出栈操作POP指令,用于子程序完成时,为主程序恢复现场。在汇编程序设计中必须采用这种方式。(8)定时器/计数器

① 定时器方式寄存器:TMOD。

② 定时器控制寄存器:TCON。

③ 计数寄存器:TH0、TL0、TH1、TL1,可用于设定计数初值。(9)串行数据缓冲器

串行数据缓冲器SBUF用来存放需发送和接收的数据。它由两个独立的寄存器组成,一个是发送缓冲器,另一个是接收缓冲器。发送和接收操作其实都是针对串行数据缓冲器的。2.1.3 引脚功能

MCS-51单片机及其兼容机中一般都采用40Pin封装的双列直接DIP结构。图2-3所示为MCS-51单片机的引脚配置和兼容机之一(深圳宏晶科技有限公司生产的STC单片机)的实物图。图2-3 MCS-51单片机引脚配置和兼容机STC单片机实物图

MCS-51单片机的40个引脚中,有正电源和地线(分别有1根,即分别为1个口(也称端口或脚));外置石英振荡器的时钟线2根,即2个口;4组8位共32个I/O口;中断口、串口、计数器输入和读写控制线与P3口复用。以下详细介绍这些引脚的功能。

①Pin20:接地脚GND。

②Pin40:正电源脚VCC。正常工作或对片内EPROM烧写程序时,接+5V电源。

③Pin19:时钟XTAL1脚,片内振荡电路的输入端。

④Pin18:时钟XTAL2脚,片内振荡电路的输出端。8051的时钟有两种方式,一种是片内时钟振荡方式,但需在18脚和19脚外接石英晶体(2~12MHz)和振荡电容,振荡电容的值一般取10~30pF。另外一种是外部时钟方式,即将XTAL1接地,外部时钟信号从XTAL2脚输入。

⑤ 输入/输出(I/O)引脚:Pin39~Pin32为P00~P07输入/输出脚,Pin1~Pin8为P10~P17输入/输出脚,Pin21~Pin28为 P20~P27输入/输出脚,Pin10~Pin17为P30~P37输入/输出脚。

⑥Pin9:RESET复位信号复用脚。当8051通电时,时钟电路开始工作,在RESET引脚上出现24个时钟周期以上的高电平,系统初始复位。初始化后,程序计数器PC指向0000H,P0~P3输出口全部为高电平,堆栈指针写入07H,其他专用寄存器被清零。RESET由高电平下降为低电平后,系统从0000H地址开始执行程序。8051的复位方式既可以是自动复位,也可以是手动复位,应根据不同的应用场合来选择设计。

⑦Pin30:ALE地址锁存。当访问外部程序器时,ALE脚的输出用于锁存地址的低位字节。访问内部程序存储器时,ALE脚将输出一个1/6时钟频率的正脉冲信号。这个信号可以用于识别单片机是否工作,也可以当作一个时钟向外输出。

⑧Pin29:当访问外部程序存储器时,此脚输出负脉冲选通信号。PC的16位地址数据将出现在P0和P2口上;外部程序存储器把指令数据放到P0口上,由CPU读入并执行。

⑨Pin31:程序存储器的内、外部选通脚。8051和8751单片机内置有4KB程序存储器。当EA为高电平并且程序地址小于4KB时,读取内部程序存储器指令数据;若超过4KB地址,读取外部指令数据。若EA为低电平,则不管地址大小,一律读取外部程序存储器指令数据。显然,对于内部无程序存储器的8031,EA脚必须接地。

2.2 并行I/O(输入/输出)接口

2.2.1 输入功能

I/O口作为输入口时有两种工作方式,即读端口(读锁存器)与读引脚。读端口实际上并不从外部直接读入数据,而是把端口锁存器的内容读入到内部总线,经过某种运算或变换后写回到端口锁存器,比如取反、置位、清零等指令。

读引脚方式才是真正地把外部数据读入到内部总线。以图2-4(a)为例,图中上、下两个三角形分别表示读端口和读引脚的输入缓冲器,CPU根据不同的指令由硬件自动发出“读端口”或“读引脚”信号,用于完成不同的操作。

值得一提的是,读引脚方式可以直接从端口引脚读入信息,前提-是CPU必须使欲读端口引脚对应的锁存器置位(Q端为“1”,Q为“0”),以便使驱动器中的晶闸管T截止;然后,打开输入三态缓冲2器2,使相应端口引脚线上的信号输入到MCS-51内部数据总线。

由于在读引脚时必须连续使用两条指令(对端口置“1”和读指令),因此附加了一个准备动作,所以这类I/O口称为“准双向”口。MCS-51的P0、P1、P2、P3口作为输入/输出口时都是“准双向”口。

从图2-4中可以看出,这4个端口有1个差别:除了P1口外,P0口和P2口还具有地址/数据复用功能,P3口还有第二功能。这些第二功能起不同的作用,下面将具体讨论。2.2.2 输出功能及负载配置(1)P0口

由图2-4(a)所示的P0口内部结构图可以看到,其内部有一个2选1的选择器,受内部信号的控制。图中的位置正处在I/O口工作方式,此时相当于一个“准双向口”。输入时,须先将口置“1”,每根口线可以独立定义为输入或输出口,但是须在口线上加上拉电阻。如果将开关扳至另一个方向,口线即作为地址/数据复用总线用,此时不能逐位定义为输入/输出口。在这种方式下,作为数据总线用时,输入8位数据;作为地址总线用时,输出8位地址。值得一提的是,当P0口作为地址/数据总线用之后,就不能用作I/O口了。图2-4 MCS-51单片机P0、P1、P2和P3口的内部结构图(2)P1口

图2-4(b)所示为P1口一个位的内部结构,P1口只能作为I/O口使用,其内部有一个上拉电阻,所以连接外围负载时不需要外接上拉电阻。对于这一点,P1、P2、P3口都一样,使用时一定要注意。(3)P2口

由图2-4(c)可以看出,P2口作为I/O口使用时,与P0口一样,当内部开关扳至另一个方向作为地址输出口时,可以输出程序存储器或外部数据存储器的高8位地址,并与P0口输出的低8位地址一起构成16位地址线,从而分别寻址64KB程序存储器或外部数据存储器。同样地,地址线是8位一起自动输出的,不能像I/O口那样逐位定义。(4)P3口

P3口的电路如图2-4(d)所示,P3口也是“准双向口”。为适应引脚第二功能的需要,增加了第二功能控制逻辑。在真正的应用电路中,第二功能显得更为重要。第二功能信号有输入、输出两种情况,下面分别介绍。

P3口的输入/输出及P3口锁存器、中断、定时器/计数器、串行口和特殊功能寄存器有关。P3口的第一功能和P1口一样,可作为输入/输出口,同样具有字节操作和位操作两种方式,在位操作模式下,每一位均可定义为输入或输出。

P3口的第二功能各引脚定义如表2-3所示。表2-3 P3口的第二功能引脚定义

在图2-4(d)中,当第二功能为输出引脚,作为I/O口使用时,第二功能信号线应保持高电平,与非门开通,以维持从锁存器到输出口数据输出通路畅通无阻。而当作第二功能口使用时,该位的锁存器置高电平,使与非门对第二功能信号的输出是畅通的,实现第二功能信号的输出。对于第二功能为输入的信号引脚,在口上的输入通路增设了一个缓冲器3,输入的第二功能信号从缓冲器3的输出端取得。作为I/O口输入端时,取自三态缓冲器2的输出端。这样,不管是作为输入口还是第二功能信号输入口,输出电路中的端口锁存器输出Q和第二功能输出信号线均应置“1”。

CPU区分单片机的引脚是否有第二功能其实很简单,只要CPU执行到相应的指令,就自动转成第二功能。这一点很重要,在后面的项目中有具体的应用,希望读者认真体会。

2.3 存储器配置方法

MCS-51单片机的存储器组织结构(如图2-5所示)分为4个不同的存储空间,分别是:① 片内4KB程序存储器(ROM),地址为0000H~0FFFH。

② 片外64KB程序存储器(ROM),地址为0000H~FFFFH。

③64KB外部数据存储器(外RAM),地址为0000H~FFFFH。

④256B内部数据存储器(内RAM)(包括特殊功能寄存器),地址为00H~FFH。2.3.1 程序存储器配置

一台微处理器要能够准确地执行某种任务,除了拥有强大的硬件外,还需要运行软件。这种软件完全是人们预先编写的。设计人员编写的程序存放在微处理器的程序存储器中,称之为只读程序存储器(ROM)。

对于程序来说,相当于给微处理器提供处理问题的一系列命令。程序和数据一样,都是由机器码组成的代码串,只是程序代码存放于程序存储器中。

由图2-5所示的MCS-51单片机存储器组织结构图可以看出,MCS-51具有64KB程序存储器寻址空间,用于存放用户程序、数据和表格等信息。对于内部无ROM的8031单片机,其程序存储器必须外接,容量为64KB。此时,单片机的EA端必须接地,强制CPU从外部程序存储器读取程序。对于内部有ROM的8051等单片机,正常运行时,EA端需接高电平,使CPU先从内部程序存储器读取程序;当PC值超过内部ROM的容量时,才转向外部程序存储器读取程序。图2-5 MCS-51单片机的存储器组织结构图

MCS-51单片机片内有4KB程序存储单元,其地址为0000H~0FFFH。单片机启动复位后,程序计数器PC的内容为0000H,所以系统将从0000H单元开始执行程序。但在程序存储器中有些特殊的单元,使用时应注意。

其中一组特殊单元是0000H~0002H。如果程序不是从0000H单元开始,应在这3个单元中存放一条无条件转移指令,让CPU直接执行用户指定的程序。

另一组特殊单元是0003H~002AH。这40个单元各有用途,它们

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载