单片机原理及应用_第1页
单片机原理及应用_第2页
单片机原理及应用_第3页
单片机原理及应用_第4页
单片机原理及应用_第5页
已阅读5页,还剩776页未读, 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第1章单片机基础知识124331.1单片机概述1.2单片机的特点及应用领域1.3常用8位单片机1.4学者容易混淆的概念下一页返回第1章单片机基础知识6本章小结习题1上一页返回51.1单片机概述自1946年第一台电子计算机诞生以来,经过50多年的发展,计算机能够对信息进行加工处理,并在各行各业得到了广泛应用。计算机对入类社会的发展起到了极大的推动作用。然而,真正使计算机的应用深入到社会生活的各个方面,促使入类社会跨入计算机时代的,是微型计算机和单片微型计算机的产生和发展。1.1.1单片机的基本概念随着微型计算机的高速发展,微型计算机系统、微处理器、单片微型计算机、嵌入式系统、片上系统(SOC)等新系统不断涌现。为了学习并掌握好单片微型计算机,从概念上弄清这些系统之间的关系是十分重要的。下一页返回1.1单片机概述1.微处理器微处理器(MicR0pR0cessor)的缩写是MPU,简称为MP。MPU是集成在同一块芯片上的具有运算和逻辑控制功能的中央处理器。微处理器不仅是构成微型计算机、单片微型计算机系统、嵌入式系统的核心部件,还是构成多微处理器系统和现代并行结构计算机的基础。2.微型计算机微型计算(MicR0computer),简称为MC,是由微处理器加上采用大规模集成电路制成的程序存储器和数据存储器,以及与输入/输出设备相连接的输入/输出接口电路组成的。如果将微处理器、存储器和输入/输出接口电路集成在电路芯片上,则称为单片微型计算机;如果将组成微型计算机的各部件都做在一块电路板上,则称为单板机。上一页下一页返回1.1单片机概述如果分做在多块电路板上,则称为多板机。3.单片机进入20世纪60年代,世界在大规模集成电路的制造水平和工艺上取得了飞速的进步。1971年,美国的Intel公司研究并制造了140004微处理器芯片。该微处理器是将以往分立的运算器、控制器和寄存器集成在一块芯片上,因此又称中央处理单元(CPU)。单片机就是在一块半导体硅片上集成了中央处理单元(CPU)、存储器(RAM,R0M,EPR0M)和各种输入/输出接口(定时器/计数器、并行I/O口、串行口、A/D转换器等),这样一块半导体硅片具有单台计算机的属性,因而被称为单片微型机,简称单片机。国际上多把单片机称为微控制器(MicR0ContR0llerUnit,简称MCU)。上一页下一页返回1.1单片机概述140004微处理器芯片是世界上第一个微处理芯片,以它为核心组成的MCS一48计算机是世界上第一台微型计算机。微型计算机就是以微处理器为核心,采用系统总线技术,配以采用了大规模或超大规模集成电路的存储器、输入/输出接口电路、输入/输出设备所组成的计算机。单片机(SingleChipMicR0computer或OneChipMicR0computer)的全称为单片微型计算机,是微型计算机家族中的一个分类,结构框图如图1-1所示。在单片机的结构设计上,它的软、硬件系统及I/O接口控制能力等方面都有独到之处,具有较强而有效的功能。从其组成、逻辑功能上看,单片机具备了微型计算机系统的基本部件。上一页下一页返回1.1单片机概述但需要指出的是,单片机毕竟还只是个芯片,只有在配置了应用系统所需的接口芯片、输入/输出设备后,才能构成实用的单片机系统。4.SOCSOC是片上系统的简称。所谓SOC技术,是一种高度集成化、固件化的系统集成技术。使用SOC技术设计系统的核心思想,是把整个应用电子系统全部集成在一个芯片上。在使用SOC技术设计应用系统时,除了那些无法集成的外部电路或机械部分以外,其他所有的系统电路全部集成在一起。1.1.2单片机的发展历程及趋势从单片机走过的30年发展历程可以看出,单片机的发展趋势是向大容量、高性能化、外围电路内装化等方面发展。上一页下一页返回1.1单片机概述单片机技术的发展以微处理器(MPU)技术及超大规模集成电路技术的发展为先导,以广泛的应用领域为动力,表现出较微处理器更具个性的发展趋势。目前,把单片机嵌入式系统和Internet连接已成为一种趋势。1.单片机的发展历史(1)第一阶段(1974-1976年):单片机初级阶段。因工艺限制,单片机采用双片的形式,功能简单。(2)第二阶段(1976-1978年):低性能单片机阶段。以Intel公司制造的MCS-48单片机为代表,集成了8位CPU、并行I/0口、8位定时器/计数器、RAM,R0M,但无串口,中断处理比较简单,片内RAM和R0M容量较小。(3)第三阶段(1978-1982年):高性能单片机阶段。上一页下一页返回1.1单片机概述典型代表有Intel公司制造的MCS-51系列单片机、MotoR0la公司的6801,Zilog公司的Z8等。这些单片机带有串口、多级中断系统、16位定时器/计数器,片内RAM和R0M容量加大,寻址范围可达64KB(4)第四阶段(1982年至今):8位单片机巩固发展,16位单片机、32位单片机推出阶段。此阶段的主要特征是:一方面发展16位单片机、32位单片机及专用型单片机;另一方面不断完善高档8位单片机,以满足不同的用户需求16位单片机的典型产品如Intel公司生产的MCS-96系列单片机MCS是Intel公司生产的单片机的系列符号,例如MCS-48,MCS-51,MCS-96系列单片机。MCS-51系列单片机既包括3个基本型8031,8051,8751,也包括低功耗型80C31,80C51,89C51等。因而MCS-51系列特指Intel公司的这几种型号的单片机。上一页下一页返回1.1单片机概述2.单片机技术的发展方向从第一代单片机到今日各大公司推出的各种型号单片机的动能及资源,可以看出单片机正朝着更高性能、更高容量、进一步微型化、多品种、多规格的方向发展。主要体现在如下几个方面:1)低功耗CMOS化现在的单片机功耗普遍都在100Ml}%左右,随着对单片机功耗的要求越来越低,现在单片机制造商基本都采用了互补金属氧化物半导体工艺(CMOSCMOS功耗虽低,但其物理特性决定了其工作速度不够高,而互补高性能金属氧化物半导体结构(CHMOS)则具备了高速和低功耗的特点,这些特征,更适合于要求低功耗如电池供电的应用场合。所以这种工艺将是今后一段时期单片机发展的主要方向。上一页下一页返回1.1单片机概述2)CPU技术和存储器容量的进一步提高80C51采用了高密度CPU的运算速度,处理能力进一步提高。为了进一步提高CPU的处理能力,双CPU结构、增加数据总线的宽度、改进指令的执行队列等技术已经开始应用或正在研发之中。16位单片机中R0M和RAM的容量进一步增大,特别是Flash存储器的使用,使擦除和编程完全是电气实现,大大提高了编程和擦写的速度,并可实现在线编程。3)I/O口的改进在单片机发展历程进入第四代后,单片机的I/O口开始呈现多样化和多功能化发展的趋势,包括可编程并行口、可编程串行口、串行扩展口、多位的A/D转换器、高速输入/输出部件(HSI/0)、脉宽调制输出(PWM)等。上一页下一页返回1.1单片机概述同时提高了并行口的驱动能力、增加I/0口的逻辑控制功能等多项软硬件技术都已经开始应用,这些新技术的应用将会从整体上大幅度提高单片机系统的实时处理能力。4)提供特殊的串行口功能为适应控制系统网络化的需求,一些单片机提供了具有网络功能的特殊串行口,为应用单片机构造控制网络系统提供了便利的条件。5)微型单片化现在常规的单片机普遍将CPU,RAM,R0M、并行和串行通信接口、中断系统、定时电路、时钟电路集成在一块单一的芯片上。随着超大规模集成电路制造水平和工艺的不断发展和提高,一些外围电路的功能将被并入或集成到单片机的芯片内部。上一页下一页返回1.1单片机概述包括LCD驱动电路、多位的A/D和D/A转换器、DMA控制器、频率合成电路、锁相环电路、中断控制器、CRT控制器等,将一个单片机控制系统集成在一块芯片上,包含的单元电路更多,功能更强大此外,现在的产品普遍要求体积小、重量轻,这就要求单片机除了功能强和功耗低外,其体积也要小。目前,许多单片机都具有多种封装形式,其中表面封装(SMD)越来越受欢迎,使得由单片机构成的系统朝着微型化的方向发展6)微巨机的单片机化美国在1992年研发了180860超级单片机,它的功能极其强大,其CPU的运算速度达到了1.2亿次每秒,可实现32位整数运算和64位的浮点数运算,芯片内集成有一个三维图形处理器。上一页下一页返回1.1单片机概述180860超级单片机配以必要的外设可组成超级图形工作站。可以这样认为,随着超大规模集成电路制造水平和工艺的不断发展提高,今日的高级台式计算机和笔记本电脑会在不远的将来被单片机化的计算机取代1.1.3单片机与嵌入式系统数字电子计算机诞生于1946年,在其后漫长的历史进程中,计算机始终是供养在特殊的机房中,实现数值计算的大型昂贵设备。直到20世纪70年代,微处理器的出现,才使得计算机出现了历史性的变化。以微处理器为核心的微型计算机以其小型、廉价、高可靠性等特点,迅速走出机房;基于高速数值计算能力的微型机,表现出的智能化水平引起了控制专业入士的兴趣,要求将微型机嵌入到一个对象体系中,实现对象体系的智能化控制。上一页下一页返回1.1单片机概述例如,将微型计算机经电气加固、机械加固,并配置各种外围接口电路,安装到大型舰船中构成自动驾驶仪或轮机状态监测系统。这样一来,计算机便失去了原来的形态与通用的计算机功能。为了与原有的通用计算机系统有所区别,把嵌入到对象体系中,实现对象体系智能化控制的计算机称为嵌入式计算机系统。嵌入式系统按形态可分为设备级(工控机)、板级(单板、模块)、芯片级(MCU,SOC)。嵌入式系统是以应用技术产品为核心,以计算机技术为基础,以通信技术为载体,以消费类产品为对象,引入各类传感器,采用Internet网络技术的连接,生产达到适应应用环境的产品。嵌入式系统是计算机、通信、半导体、微电子、语音图像数据传输技术,甚至传感器技术等先进技术和具体应用对象相结合后的更新换代产品。上一页下一页返回1.1单片机概述更新换代产品。因此往往是技术密集、投资强度大、高度分散、不断创新的知识密集型系统,反映了当代最新技术的先进水平。针对不同的具体应用而设计的嵌入式系统之间差别也很大,一般的嵌入式系统功能简单,且在兼容性方面要求不高,但是在大小、成本方面限制较多。嵌入式系统一般都具有系统编程的功能。其可靠性高、成本低、体积小、功耗低,因此它已广泛地应用到各种不同类型设备当中,且具有不断创新特征,系统中采用片上系统(SOC)将是其发展趋势单片机开创了嵌入式系统独立发展的道路。嵌入式系统虽然起源于微型计算机时代,然而,微型计算机的体积、价位、可靠性都无法满足广大对象系统的嵌入式应用要求,因此,嵌入式系统必须走独立发展道路,这条道路就是芯片化道路。上一页下一页返回1.1单片机概述将计算机集成在一个芯片上,从而开创了嵌入式系统独立发展的单片机时代。在探索单片机的发展道路时,有过两种模式,即“乏模式”与“创新模式”。“Σ模式”本质上是通用计算机直接芯片化的模式,它将通用计算机系统中的基本单元裁剪后,集成在一个芯片上,构成单片微型计算机;“创新模式”则完全按嵌入式应用要求设计全新的系统,满足嵌入式应用要求的体系结构、微处理器、指令系统、总线方式、管理模式等。Intel公司的MCS一48,MCS一51就是按照“创新模式”发展起来的单片形态的嵌入式系统(单片微型计算机)。MCS一51是在MCS一48探索的基础上,进行全面完善的嵌入式系统。历史证明,“创新模式”是嵌入式系统独立发展的正确道路,MCS一51的体系结构也因此成为单片嵌入式系统的典型结构体系。上一页返回1.2单片机的特点及应用领域随着半导体大规模集成电路的不断发展,将计算机的CPU,RAM,R0M,定时器/计数器和多种I/O接口集成在一块芯片上,形成了芯片级的计算机,因此单片机早期时被称为微型计算机,沿用至今。按准确反映单片机本质的叫法,应称为微控制器(MicR0contR0ller)一块单片机芯片就是一台计算机。由于单片机的这种特殊的结构形式,在某些应用领域中,它承担了大中型计算机和通用的微型计算机无法完成的一些工作。其具有很多显著的优点和特点,因此在各个领域都得到迅猛的发展。1.2.1单片机的特点1.性能价格比高单片机的高性能、低价格是它最显著的一个特点。下一页返回1.2单片机的特点及应用领域单片机尽可能把应用所需要的存储器、各种功能的I/0口都集成在一块芯片上,使之成为名副其实的单片机。有的单片机为了提高速度和执行效率,开始采用RISC流水线和DSP的设计技术,使单片机性能明显优于同类型微处理器。而单片机应用广泛,量大面广,高性价比是各公司竞争的主要策略。2.控制功能强单片机是电子计算机这个庞大家族中的一个特殊品种,体积虽小,但部件齐全,它非常适用于工业控制。为了满足工业控制的需求,一般单片机的指令系统中有极丰富的转移指令、I/0口的逻辑操作及位处理功能。单片机的逻辑控制功能及运行速度均高于同一档次的微型计算机。3.低电压、低功耗上一页下一页返回1.2单片机的特点及应用领域单片机大量应用于携带式和家用消费类产品,低电压和低功耗的特性尤为重要。许多单片机可在2.2V的电压下运行,有的已能在1.2V或0.9V下工作功耗降至μA级,只需一粒钮扣电池就可以长期使用。4.集成度及可靠性高单片机把各个功能部件集成在一块芯片上,内部采用总线结构,减少了芯片之间的连线,大大提高了单片机的可靠性与抗干扰能力。另外,其体积小对于强磁场环境易采取屏蔽措施,适合在恶劣的环境下工作。除以上特点之外,不同类型单片机,其特点也不相同。例如,通用型单片机的主要特点是:内部资源比较丰富,性能全面,而且通用性强,可覆盖多种应用要求。所谓资源丰富,就是功能强。通用型单片机的用途很广泛,用不同的接口电路及编制不同的应用程序就可完成不同的功能。上一页下一页返回1.2单片机的特点及应用领域小到家用电器、仪器仪表,大到机器设备和整套生产线都可用单片机来实现自动化控制。专用型单片机的主要特点是:针对某一种产品或某一种控制应用而专门设计,设计时已使结构最简,软硬件应用最优,可靠性及应用成本最佳。专用型单片机用途比较专一,出厂时程序已经一次性固化好,不能再修改。例如电子表里的单片机就是其中的一种,其生产成本很低。1.2.2单片机的应用领域目前单片机渗透到我们生活的各个领域,几乎很难找到没有单片机的踪迹的领域。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通信与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统。上一页下一页返回1.2单片机的特点及应用领域录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等,这些都离不开单片机,更不用说自动控制领域的机器入、智能仪表、医疗器械了。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个应用领域:1.在智能仪器仪表上的应用单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器。可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。上一页下一页返回1.2单片机的特点及应用领域采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比采用电子或数字电路更加强大。例如,精密的测量设备(功率计、示波器、各种分析仪)。2.在工业控制中的应用用单片机可以构成形式多样的控制系统、数据采集系统。例如,工厂流水线的智能化管理、电梯智能化控制、各种报警系统、与计算机联网构成二级控制系统等。3.在家用电器中的应用可以这样说,现在的家用电器基本上都采用了单片机控制,从电饭煲、洗衣机、电冰箱、空调机、彩电、其他音响视频器材,再到电子秤量设备,无所不在。上一页下一页返回1.2单片机的特点及应用领域4.在计算机网络和通信领域中的应用现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备基本都实现了单片机智能控制,从电话机、小型程控交换机,到楼宇自动通信呼叫系统、列车无线通信,再到日常工作中随处可见的移动电话、集群移动通信、无线电对讲机等。5.单片机在医用设备领域中的应用单片机在医用设备中的用途也相当广泛,例如,医用呼吸机、各种分析仪、监护仪、超声诊断设备及病床呼叫系统等此外,单片机在工商、金融、科研、教育、国防航空航天等领域都有着十分广泛的应用。上一页返回1.3常用8位单片机1.3.1单片机的主要厂商和机型目前世界上比较著名的部分s位单片机的生产厂家和部分主要机型如下:Intel(美国英特尔)公司:MCS一51/96及其增强型系列。NS(美国国家半导体)公司:NS8070系列。ATMEL(美国爱特梅尔半导体)公司:AT89/90系列。TI(美国得克萨斯仪器仪表)公司:TMS700系列。Cypress(美国赛普拉斯半导体)公司:CYXX系列。R0ckwell(美国洛克威尔)公司:6500系列。MotoR0la(美国摩托罗拉)公司:6805系列。其中ATMEL公司的AT89CS1系列及其增强型系列在目前国内单片机市场中占的份额最大,达50%左右,后面将详细介绍。下一页返回1.3常用8位单片机以下是其他几种市场中常用的单片机:1.8051类单片机最早由Intel公司推出的8051/31类单片机是世界上用量最大的几种单片机之一。后来8051类单片机主要由PHLIPIS,ATMEL、华邦、三星等公司生产。这些公司都在保持与8051单片机兼容的基础上改善了8051的许多特性,提高了速度、降低了时钟频率、放宽了电源电压的动态范围、降低了价格。2.ATMEL单片机(51单片机)ATMEL公司的8位单片机有AT89,AT90两个系列,AT89系列是8位Flash单片机,与8051系列单片机相兼容,静态时钟模式;AT90系列单片机是增强RISC结构,全静态工作方式。上一页下一页返回1.3常用8位单片机内载在线可编程Flash的单片机,也叫AVR单片机。3.PHLIPISS1PLC系列单片机(51单片机)PHILIPS公司的单片机是基于80051内核的单片机,嵌入了掉电检测、模拟、片内RC振荡器等功能,这使S1LPC可以满足高集成度、低成本、低功耗等多方面的性能要求的应用设计。4.TI公司单片机(51单片机)德州仪器提供了TMS370和MSP430两大系列通用单片机。TMS370系列单片机是8位CMOS单片机,具有多种存储模式、多种外围接口模式。5.MotoR0la单片机MotoR0la是世界上最大的单片机厂商之一。已有二百多个品种,选择余地较大。上一页下一页返回1.3常用8位单片机在8位机中有68HCOs和升级产品68HC08两种,68HC16有三十多个系列其特点是在同样速度下所使用的时钟频率较Intel类单片机低很多,因而使其高频噪声较低,抗干扰能力强,更适合用于工控领域及恶劣的环境。1.3.2AT89C51系列单片机在众多的s1系列单片机中,AT89系列单片机在我国得到了极其广泛的应用。AT89系列单片机是美国ATMEL公司的8位机产品。1.AT89系列单片机的特点AT89系列单片机是以8031为内核的产品,它与s1系列单片机是兼容的。AT89系列单片机具有以下特点:上一页下一页返回1.3常用8位单片机(1)内部含有Flash存储器,Flash存储器是一种电擦除和电写入的闪速存储器,使得用户在开发过程中十分容易修改程序,进行开发调试,缩短系统的开发周期。可以重复多次编程,可根据需要对内部程序进行更新或提升。(2)AT89系列单片机的引脚和AT80C513IW插座兼容,用AT89系列单片机可以替代同档次的AT80C51单片机,不需要对外围电路进行改动。(3)AT89系列单片机采用静态时钟方式,可以节省电能,降低便携式设备的功耗。2.AT89系列单片机的分类(1)标准型。主要有AT89CS1、AT89LV51、AT89C52和AT89LV52这4种型号。上一页下一页返回1.3常用8位单片机其中AT89C51,AT89C52直接与8051系列兼容,相当于将8051,8052中的4KB,8KB的R0M换成相应数量的Flash存储器,其余部分完全相同AT89LV51是AT89C51低电压型号,可在2.7~6V的电压范围工作,其余功能和AT89CS1的相同。(2)低档型。主要有AT89C1051和AT89C2051这两种型号。除并行I/O接口数较少外,其他部件和AT89CS1基本相同,引脚只有20条。(3)高档型。主要有AT89SS1、AT89S52和AT89S53等型号,其中AT89SS1有4KB可下载Flash存储器,AT89S52有8KB可下载Flash存储器,AT89S53有12KB可下载Flash存储器,下载功能是由PC通过AT89系列单片机的串行外围接口SPI实现的。3.AT89系列单片机的结构上一页下一页返回1.3常用8位单片机AT89系列单片机的内部结构与AT80CS1的相似,主要部件有:8031CPU,振荡电路、总线控制部件、中断携制部件、片内FLash存储器、片内RAM、并行I/0插口、定时器、串行I/0插口。AT89系列的各种型号单片机,内部差别很大。例如,AT89C1051片内Flash存储器只有1KB,而AT89C52,AT89LV52和AT89S8252的片内Flash存储器有8KB。AT8958252的结构复杂,它的内部含有标准的串行接口,还有一个串行的外围插口SPI,Watchdog定时器、双数据指针等部件,以及电源下降的中断恢复等功能。AT89系列单片机一共有7种型号,分别为AT89C1051,AT89C2052,AT89C51,AT89LV51,AT89C52,AT89LV52和AT89S8252。上一页下一页返回1.3常用8位单片机其中AT89LV51和AT89LV52分别是AT89CS1和AT89C52的低电压产品,最低电压可以低至2.7VAT89C1051和AT8902052则是低档的低电压产品,只有20根引脚。AT89系列单片机的型号编码中字母的意义是:AT表示该器件是ATMEL公司的产品,C表示该器件是CMOS产品,LV表示该器件是低电压产品,S表示该器件含可以下载的FLash存储器。表1-1给出了AT89系列单片机的几种主要型号的性能比较。从表中可以看出:AT89C1051是这个系列中最早的型号;AT89C52的片内存储能力较强,可以用于比较复杂的用表;而AT89S8252比AT89C52多出了一个2KB的EEPR0M,主要用于比较复杂的控制。上一页返回1.4初学者容易混淆的概念随着电子技术的迅速发展,计算机已深入到我们的生活中,许多电子爱好者开始学习单片机知识,但单片机的内容比较抽象,相对于电子爱好者已熟悉的模拟电路、数字电路而言,单片机中有一些新的概念。下面就对这些新的概念进行说明。1.总线我们知道,一个电路总是由元器件通过电线连接而成的,在模拟电路中,连线不成为问题,因为各器件间一般是串行关系,各器件之间的连线并不是很多。但计算机电路却不一样,它是以微处理器为核心,各器件都要与微处理器相连,各器件之间的工作必须相互协调,所以需要的连线就很多了。如果仍如模拟电路一样,在各微处理器和各器件间单独连线,则线的数量将多得惊入,所以在微处理机中引入了总线的概念。下一页返回1.4初学者容易混淆的概念各个器件共同享用连线,所有器件的8根数据线全部接到8根公用的线上,即相当于各个器件并联起来。但仅这样还不行,如果有两个器件同时送出数据,一个为0,一个为1,那么,接收方接收到的究竟是什么呢?这种情况是不允许的,所以要通过控制线进行控制,使器件分时工作,任何时候只能有一个器件发送数据(可以有多个器件同时接收)。器件的数据线称为数据总线,器件所有的控制线称为控制总线。在单片机内部或外部存储器及其他器件中有存储单元,这些存储单元要被分配地址才能使用。分配地址当然也是以电信号的形式给出的,因为存储单元比较多,所以用于地址分配的线也较多,这些线称为地址总线。2.数据、地址和指令之所以将这三者放在一起,是因为这三者的本质都是一样的—数字。上一页下一页返回1.4初学者容易混淆的概念或者说都是由一串。和1组成的序列。换言之,地址、指令也都是数据。指令是由单片机芯片的设计者规定的一种数字,它与我们常用的指令助记符有着严格的一一对应关系,不可以由单片机的开发者更改。地址是寻找单片机内部/外部的存储单元、输入/输出口的依据。内部存储单元的地址值已由芯片设计者规定好,不可更改;外部存储单元可以由单片机开发者自行决定,但有一些地址单元是一定要有的。数据是由微处理机处理的对象,在各种不同的应用电路中各不相同。3.PO口、P2口和P3口的第二功能用法初学者往往对PO口、P2口和P3口的第二功能用法迷惑不解,认为第二功能和原功能之间要有一个切换的过程,或者说要有一条指令。事实上,各端口的第二功能完全是自动的,不需要用指令来转换。上一页下一页返回1.4初学者容易混淆的概念如P3.6,P3.7分别是WR,RD信号,当微处理机外接RAM或有外部I/)口时,它们被用作第二功能,不能作为通用I/O口使用,只要微处理机一执行到MOVX指令,就会有相应的信号从P3.6或P3.7送出,不需要事先用指令说明。事实上,也并不是“不能作为通用I/O口使用”,而是(使用者)“不会”将其作为通用I/O口使用。你完全可以在指令中安排一条SETBP3.7的指令,并且当单片机执行到这条指令时,也会使P3.7变为高电平,但使用者一般不会这么做,因为这通常会导致系统崩溃(即死机)。4.程序的执行过程单片机在通电复位后,80051内的程序计数器(PC)中的值为0000,所以程序总是从0000单元开始执行。上一页下一页返回1.4初学者容易混淆的概念也就是说,在系统的R0M中,一定要存在0000这个单元,并且在0000单元中存放的一定是一条指令。5.堆栈堆栈是一个区域,是用来存放数据的。这个区域就是内部RAM的一部分,特殊的是它存放和取用数据的方式,即“先进后出,后进先出”;放和取用数据的方式,即“先进后出,后进先出”;堆栈有特殊的数据传输指令,即PUSH和POP;有一个特殊的专为其服务的单元,即堆栈指针SP,每当执行一次PUSH指令时,SP就(在原来值的基础上)自动加1,每当执行一次POP指令,SP就(在原来值的基础上)自动减1。由于SP中的值可以用指令来改变,所以只要在程序开始阶段更改了SP的值,就可以把堆栈设置在规定的内存单元中。上一页下一页返回1.4初学者容易混淆的概念例如,在程序开始时,用一条MOVSP,#SFH指令,就把堆栈设置在从内存单元60H开始的单元中。一般程序的开头总有这样一条设置堆栈指针的指令,因为开机时,SP的初始值为07H,这样就使堆栈从08H单元开始,而08H到1FH这个区域正是8031的第二、第三、第四工作寄存器区,经常要被使用,这会造成数据的混乱。不同程序员编写程序时,初始化堆栈指令也不完全相同,这是编程者的习惯问题。当设置好堆栈区后,并不意味着该区域成为一种专用内存。它还是可以像普通内存区域一样使用,只是一般情况下编程者不会把它当成普通内存使用。以上对C51系列单片机的类型进行了简单的了解,在后面的章节中将详细阐述其内部结构等相关知识。上一页返回本章小结学习单片机的应用技术,首先要了解计算机的发展历程,掌握单片机的基本概念。单片机是单片微型计算机的简称,也就是把微处理器(CPU)、一定容量的程序存储器(R0M)和数据存储器(RAM)、输入/输出接口(I/0、时钟及其他一些计算机外围电路,通过总线连接在一起并集成在一个芯片上,构成的微型计算机系统。单片机的发展经历了四个阶段,目前,单片机技术的发展仍然以8位机为主。随着移动通信、网络技术、多媒体技术等高科技产品进入家庭,16位和32位单片机应用得到了长足发展。单片机技术的发展方向主要表现在内部结构上,增加了各种新功能,提高了运算速度、降低了功耗、改善了工艺水平、增强了抗干扰能力、增加了存储能力和Internet连接功能。目前单片机已应用在测控系统、智能仪器仪表、通信产品、民用产品和军用产品中。返回习题1一、名词解释(1)单片机(2)嵌入式系统二、简答题1.简述单片机的发展历程。2.简述单片机的发展方向。3.单片机有哪些种类?4.89051单片机的主要特点是什么?5.你认为在哪个领域中单片机的应用将得到较大发展?简述该领域的现状。返回谢谢观赏图1-1单片机结构框图返回表1-1AT89系列部分单片机性能表返回第2章89C51单片机的结构和原理1243352.1单片机的结构2.289C51存储器组织2.3单片机时钟电路与时序2.4单片机的复位状态与工作方式2.5并行输入/输出端口下一页返回第2章89C51单片机的结构和原理67本章小结习题2上一页返回第2章89C51单片机的结构和原理89C51是8位单片机,具有体积小、功能全、面向控制、开发应用方便等特点,是测控应用领域中较理想的8位微型计算机。本章重点介绍其内部硬件结构、引脚功能、存储器结构、I/O接口、CPU时序和运行方式,使读者对89051单片机的内部硬件结构及各部分的工作原理有一个全面的了解,为后续章节的学习和应用系统的设计与开发打下坚实的基础。返回2.1单片机的结构2.1.1单片机的组成及结构89C51的内部结构框图如图2-1所示,从图中可以看出其各个功能部件是由内部总线紧密联系在一起的,其基本构成部分如下(1)1个8位中央处理器(CPU)。与通用的CPU基本相同,包括运算器和控制器两部分。单片机CPU的内部结构主要由算术逻辑运算单元(ALU),累加器(ACC)、程序状态字寄存器(PSW)、堆栈指针(SP)、寄存器B、程序计数器(即指令指针,PC)、数据指针(DPTR)、指令寄存器(IR)、暂存器(TMP)等部件组成。单片机CPU运算器内包含一个专门进行位数据操作的布尔处理机,增加了面向控制的处理功能,可进行位寻址。因此,不仅可处理字节数据,还可以进行位变量的处理。下一页返回2.1单片机的结构(2)程序存储器(片内R0M。程序存储器用于存储程序、表格、固定不变的常数等。通常采用只读存储器,且有多种类型。(3)数据存储器(片内RAM。数据存储器可实现快速的数据存储,用于存储单片机运行期间的工作变量、运算的中间结果、数据暂存和缓冲、标志位等。(4)并行输入/输出接口。4个8位并行输入/输出接口PO口、P1口、P2口和P3口(共32根线),用于并行输入和输出数据。(5)串行输入/输出接口。一个全双工串行口,用于单片机与其他微机之间的串行通信,可构成多机系统。(6)定时器/计数器。片内两个16位定时器/计数器TO和T1,用于精确定时(或延时)控制以及对外部事件进行计数。上一页下一页返回2.1单片机的结构(7)中断系统。有s个中断源、2个可编程优先级的中断系统,用于外部中断申请、串行口中断申请和定时器/计数器中断申请(8)时钟电路。时钟电路的作用是产生单片机工作所需的时钟脉冲序列。由图2-1可以看出,单片机的硬件结构具有功能部件种类齐全的特点,其基本组成和一般微型计算机是相同的,它只不过是把计算机的基本功能部件集成到了一块芯片上,是具有完整功能的微型计算机2.1.2引脚定义及功能89CS1单片机芯片有40只引脚,常用的有两种封装方式:图2-2(a)为PLCC封装形式,为具有44个引脚(其中有4个是空脚)的方形芯片,使用时需要插入到与其相配的方形插座中;图2-2(b)为DIP封装形式,为普通40脚双列直插式芯片。上一页下一页返回2.1单片机的结构为了缩小芯片体积,减少引脚数,很多引脚采用复用方式,40个引脚大致可以分为如下四类:1.电源电源引脚用来接入单片机的工作电源。(1)Vcc:正常运行时的电源,接+5V。(2)Vss:电源地线,接地端。2.时钟两个时钟引脚XTAL1,XTAL2外接晶体与片内的反相放大器构成了一个振荡器,为单片机提供时钟控制信号。两个时钟引脚也可以外接独立的晶体振荡器。(1)XTALl:此引脚内部是i个片内振荡器的反相放大器的输入端。上一页下一页返回2.1单片机的结构如使用外接晶体振荡器时,此引脚应接地(2)XTAL2:此引脚内部接至内部反相放大器的输出和内部时钟发生器的输入。当使用外部晶体振荡器时,接收外部时钟晶体振荡器的信号3.控制引脚(1)ALE/;ALE为地址锁存允许信号,工作时输出一正脉冲当单片机外接程序或数据存储器时,它将PO口作为地址和数据总线的复用接口,先传送低8位地址信号,然后再传送8位数据信号,分时复用。为了保证正常运行,应选用一锁存器将低8位地址信号锁存起来,使之在整个读写周期内予以保存ALE就是与地址锁存器配合工作的一个控制信号。ALE一般每个机器周期输出两个正脉冲,即使在不使用外部存储器场合也是如此。上一页下一页返回2.1单片机的结构这样ALE在不使用外部存储器时也可作为时钟或定时信号使用,它的频率是晶体振荡频率的1/6。应当注意的是,在每一次存取片外数据存储器时(即执行MOVX类指令),有一个ALE脉冲跳过去。为此引脚的第二功能,在对片内EPR0M型单片机(如8751)编程写入时,此脚为编程脉冲输入端。(2):外部程序存储器的读选通信号,低电平有效。当CPU执行从外部程序存储器读取指令时,此引脚输出一低电平信号。该信号应作为外部程序存储器的选通信号,控制从外部程序存储器读取指令到数据总线上。此引脚接外部程序存储器的OE(输出允许)端,每个机器周期内两次有效输出。对片内程序存储器存取时,无效。(3)RST/VPD:复位信号的输入端,高电平有效。上一页下一页返回2.1单片机的结构在该引脚加上持续时间大于两个机器周期的高电平信号,就可以实现8051的复位操作(复位操作的内容在本章后面介绍)。VPD为此引脚的第二功能,即备用电源的输入端。在掉电情况下(Vcc降到操作允许限度以下),可以从此引脚自动引入一个+SV电源,给片内RAM提供备用电源,保证片内RAM中的数据在掉电情况下不会丢失,单片机复位后能继续正常运行。(4)/VPP;内外程序存储器选择控制端。当引脚EA为高电平时,CPU先执行片内程序存储器指令,除非程序计数器PC超过OFFFH(即4K地址范围),将自动转向执行外部程序存储器内的程序。当引脚为低电平时,CPU只执行片外程序存储器指令,不管片内是否有程序存储器。对闪存进行编程期间,此引脚用于施加编程电源Vpp。上一页下一页返回2.1单片机的结构4.I/O口引脚89C51单片机共有四个8位并行I/O口,共犯个引脚。(1)PO口(P0.0~P0.7):8位双向I/O口。当访问外部存储器时,为地址总线(低8位)及数据总线分时复用口。可驱动8个LS型TTL负载。(2)P1口(P1.0~P1.7);8位准双向I/O口。为通用单一功能的I/O端口。可驱动4个LS型TTL负载(3)P2口(P2.0~P2.7:8位准双向I/O口。系统扩展时,作为高8位地址线使用;不作系统扩展时,可作为一般I/O口使用。可驱动4个LS型TTL负载(4)P3口(P3.0~P3.7);8位准双向I/O口。双功能复用口,可做一般I/O口使用,同时该口的每一位都具有第二功能,用于特殊信号输入/输出和控制信号(属控制总线)。P3口引脚的第二功能如下:上一页下一页返回2.1单片机的结构P3.0:RXD(串行输入口);P3.1:TXD(串行输出口);P3.2:INTO(外部中断0);P3.3:INT1(外部中断1);P3.4:TO(定时器0的外部输入);P3.5:T1(定时器1的外部输入);P3.6:WR(外部数据存储器写选通);P3.7:RD(外部数据存储器读选通)。上一页返回2.289C51存储器组织2.2.1存储器结构和地址空间分配存储器的主要功能是存放程序和数据。程序是计算机操作的依据,数据是计算机操作的对象。不管是程序还是数据,在存储器中都是用二进制的“1”或"0”表示,统称为信息。向存储单元写入或从存储单元取出信息,都称为访问存储器。访问存储器时,先由地址译码器将送来的单元地址进行译码,找到相应的存储单元,再由读写控制电路,确定访问存储器的方式,即取出(读)或写入(写);然后,按规定的方式具体完成取出或写入的操作。与存储器有关的部件还有地址总线与数据总线,分别为存储器提供读写信息用的存储单元地址及接收或发送被访问的信息。一般通用型微机通常只有一个地址空间,而ROM和RAM可以随意安排在一个地址范围内不同的空间。下一页返回2.289C51存储器组织即R0M和RAM的地址同在一个队列里分配不同的地址空间。CPU访问存储器时,一个地址对应唯一的存储器单元,可以是R0M,也可以是RAM,并用同类访问指令。此种存储器结构称为普林斯顿结构。89051单片机的存储器与一般微机的存储器配置方式不同,存储器在物理结构上分为程序存储器空间和数据存储器空间,共有4个存储空间:片内程序存储器和片外程序存储器空间以及片内数据存储器和片外数据存储器空间,这种程序存储器和数据存储器分开的结构形式,称为哈佛结构。从用户使用的角度看,存储器地址空间分为以下三部分。(1)片内外统一编址0000H一FFFFH的64KB程序存储器地址空间(用16位地址)。(2)片内256字节数据存储器地址空间(用8位地址,即00H一FFH。上一页下一页返回2.289C51存储器组织(3)片外64KB数据存储器地址空间,地址也为0000H一FFFFH(用16位地址)编址。上述三部分存储空间地址有部分是重叠的,89C51指令系统设计了不同的数据传送指令符号来区别这3个不同的逻辑空间。2.2.2程序存储器程序是指挥计算机动作的一系列命令,计算机能直接认识并执行的命令是一串由“0”和“1”代码组成的所谓机器指令。在计算机处理问题之前,必须事先把编好的程序和所需表格常数存入机器之中,单片机中完成这一存储任务的物理器件就是程序存储器。程序存储器以16位的程序计数器(PC)为地址指针,故可寻址空间为64K字节。上一页下一页返回2.289C51存储器组织89051单片机的程序存储空间由片内和片外两部分组成,片内程序存储器由0000H一OFFFH的4KB组成,片外扩展的程序存储器1000H一FFFFH(60KB),地址编号由1000H开始。CPU访问片内和片外程序存储器,可由引脚所接的电平来确定。当引脚接高电平时,CPU将首先从片内程序存储器中取指令,当指令地址(即PC值)超过OFFFH时,会自动转向片外程序存储器取指令。当引脚接地或低电平时,CPU只能访问片外程序存储器。单片机的程序存储器是只读的,CPU以通过MOVC指令遍访64K的程序存储器空间,但没有任何其他指令可以用来更改程序存储区的内容,即向程序存储器执行写入操作。实际应用中,用户可根据需要扩展程序存储器的容量,而其地址空间原则上也可由用户任意安排。上一页下一页返回2.289C51存储器组织但程序存储器低地址的40多个单元是系统留用的,如表2-1所示。89C51单片机复位后,(PC)=0000H,CPU从地址为0000H的R0M单元中读取指令和数据。通常在这3个字节中安排一条无条件指令,跳转到主程序真正存在的地址执行。0003H~0023H是5个中断源中断服务程序入口地址,用户不能安排其他内容。当中断响应后,系统能根据中断源的种类自动转到相应中断源的入口地址执行程序。但由于两个中断源入口地址间隔仅有8个地址单元,这8个存储单元难以存储一个完整的中断服务程序,所以在中断入口地址单元中一般也存放一条无条件转移指令转向中断服务程序的实际入口地址。2.2.3数据存储器单片机的数据存储器一般由随机存取存储器(RAM)组成。上一页下一页返回2.289C51存储器组织这种存储器利用程序可随时向存储单元写入信息,又可以随时从存储单元读出信息。89051单片机数据存储器有片内和片外之分。内部数据存储器由地址00H一FFH共256个字节的地址空间组成。外部数据存储器可扩展64K存储空间,地址范围为0000H一FFFFH,但两者的地址空间是各自独立分开的。1.片外RAM当单片机的内部数据存储器不够用时,就需要外扩数据存储器。89051单片机最多可外扩64K的RAM或I/O,这对很多应用场合已足够用。在实际应用中,扩展外部数据存储器容量的大小,由用户根据需要而定。89051单片机访问外部数据存储器是用一个特殊功能寄存器(16位数据存储器地址指针)DPTR进行的。上一页下一页返回2.289C51存储器组织由于DPTR为16位,所以可寻址的范围为64KB。此外,还可以用R0和R1间接寻址片外低256个单元的数据存储器。89051单片机提供MOV和MOVX两种指令,用以区分片内、片外RAM空间,片内RAM使用MOV指令,片外RAM空间使用MOVX指令。2.片内RAM片内数据存储器最大可寻址256个单元,它们又分为两部分:低128字节(OOH一7FH)是真正的RAM区;高128字节(80H一OFFH)为特殊功能寄存器(SFR)区,如图2-4所示。1)片内RAM低128字节在00H一7FH白勺低128字节单元,还可以再分为3个区域:在00H一1FH共32个字节单元安排了4组工作寄存器,每组占用8个RAM字节单元。上一页下一页返回2.289C51存储器组织地址20H~2FH共有16个字节单元的128位是位寻址区;地址30H一7FH共有80个字节单元属于一般RAM区。所以,真正可以给用户使用的RAM单元并不多。(1)工作寄存器区(OOH~1FH)。工作寄存器区(00H一1FH)是通用工作寄存器区,工作寄存器常用于存放操作数及中间结果等,由于它们的功能及使用不用预先规定,因此称为通用寄存器或者工作寄存器。单片机对工作寄存器提供了丰富的操作指令,使用灵活且响应速度快,有效地设置4个寄存器工作区给软件设计带来极大方便,特别是在中断嵌套时,可实现工作寄存器快速现场内容保护功能,提高程序的运行效率。32个单元共分4个组,每组有8个8位工作寄存器,编号为R0~R7,组号依次为0,1,2,3。上一页下一页返回2.289C51存储器组织在任一时刻,CPU只能使用其中一组寄存器,称为当前寄存器组,即R0~R7可指向四组中任一组,到底是用哪一组,由程序状态字PSW中的RS1,RSO状态决定。如表2-2所示。(2)位寻址区(20H一2FH)。位寻址区地址的16个单元(共计128位)具有双重功能,既可作为一般RAM单元使用,进行字节操作,也可以对单元中的每一位进行位操作。其中每1位都有一个8位表示的固定的位地址,从20H单元的第0位起,到2FH单元的第7位止共128位,用地址00H一7FH分别与之对应。这16个单元构成了1位处理机的存储空间,CPU可以直接寻址位寻址区,进行位操作。通常可以把各种程序状态标志、位控制变量存于位寻址区内。同样,这16个单元也可以进行字节寻址,作为一般的RAM单元进行读/写操作。上一页下一页返回2.289C51存储器组织(3)堆栈和数据缓冲区(30H一7FH)。也称用户RAM区,这80个单元只能进行字节寻址,用于作为数据缓冲区和堆栈区,用户可以灵活使用和分配堆栈区。对用户RAM区的使用没有任何规定和限制,一般把堆栈开辟在此区中。2)片内RAM高128字节片内80H~OFFH为特殊功能寄存器区,详细内容见2.2.4介绍。2.2.4特殊功能寄存器特殊功能寄存器又称为专用寄存器,实质上是一些具有特殊功能的片内RAM单元。89051单片机片内有21个特殊功能寄存器(SFR),它们离散地分布在80H~FFH的RAM空间中,特殊功能寄存器和内部RAM单元地址的对应关系如表2-3所示。上一页下一页返回2.289C51存储器组织它们专用于CPU对各种功能部件的控制、选择和管理等工作,存放各功能部件的工作方式、条件、状态和结果。在这21个特殊功能寄存器中,有11个具有位寻址能力,它们的字节地址正好能被8整除。下面对部分特殊功能寄存器进行介绍,其余将在后续章节中讲述1)程序计数器(PC)程序计数器(PC)是一个16位专用计数器,用来存放下一条CPU将要取出并执行的指令的16位程序存储器地址。CPU在顺序执行指令时,首先根据PC所指地址单元取出指令,然后PC的内容自动加1,即(PC)+1PC,指向下一个要读取指令的地址单元。CPU在执行转移指令、子程序调用及中断响应时,PC被自动置入新的地址。89C51单片机的16位程序计数器PC可寻址64KB(64K=65536)的程序存储器空间。上一页下一页返回2.289C51存储器组织系统上电或复位时,PC就自动清0(即PC=0000H,从而保证上电或复位后CPU从程序存储器的0000H地址单元开始执行程序。但要注意,PC不可寻址,因此用户无法对它进行读写。2)累加器(ACC)累加器(ACC)是89C51最常用、最忙碌的8位特殊功能寄存器,许多指令的操作数取自于ACC,许多运算中间结果也存放于ACC。在指令系统中用A作为累加器ACC的助记符。3)寄存器B寄存器B是8位寄存器,主要用于乘法和除法的运算。乘法时,B中存放乘数,乘法操作后,乘积的高8位存于B中;除法时,B中存放除数,除法操作后,B中存放余数。上一页下一页返回2.289C51存储器组织4)程序状态字(PSW)PSW是一个8位特殊功能寄存器,它的各位包含了程序执行后的状态信息,供程序查询或判别之用。其中有些状态位是根据程序执行结果由硬件自动设置的,而有些状态位则使用软件方法设定。如表2-4所示。PSW除有确定的字节地址(DOH)外,每一位均有位地址。表中:CY(PSW.7):进位标志位。在执行加法(或减法)运算指令时,如果运算结果最高位(位7)向更高位有进位(或借位),则CY位由硬件自动置1,否则CY清0。在进行位操作时,CY是位操作(布尔操作)累加器,指令助记符用C表示。Ac(pse.6):半进位标志位,也称辅助进位标志。上一页下一页返回2.289C51存储器组织当执行加法(或减法)操作时,如果运算结果(和或差)的低半字节(位3)向高半字节有半进位(或借位),则AC位将被硬件自动置1,否则AC清0}FO(PSW.5):用户标志位。用户可以根据自己的需要对FO位赋予一定的含义,由用户置位或复位,以作为软件标志。RSl(PSW.4)和RSO(PSW.3):工作寄存器组选择控制位。这两位的值可决定选择哪一组工作寄存器为当前工作寄存器组。通过用户用软件改变RS1和RSO值的组合,以切换当前选用的工作寄存器组。其组合关系如表2-2所列。OV(PSW.2):溢出标志位。在带符号数算术运算中,如果运算结果有溢出,即当运算结果超出一128一+127的范围时,OV位由硬件自动置1,否则OV=0。上一页下一页返回2.289C51存储器组织P(PSW.0):奇偶标志位。每条指令执行完后,该位始终跟踪指示累加器ACC中“1”的个数。如结果ACC中有奇数个“1",则置P=1,否则P=0。常用于校验串行通信中的数据传送是否出错5)数据指针(DPTR)DPTR是一个16位的特殊功能寄存器,其高位字节寄存器用DPH表示(地址83H),低位字节寄存器用DPL表示(地址82H)。DPTR既可以作为一个16位寄存器来处理,也可以作为两个独立的8位寄存器DPH和DPL使用。DPTR主要用于存放16位地址,以便对64KB片外RAM作间接寻址6)堆栈指针(SP)SP是一个8位的特殊功能寄存器,用来自动跟踪堆栈栈顶地址。上一页下一页返回2.289C51存储器组织堆栈是设在片内数据存储器RAM中的一个连续存储区间,存储区间的一端(即栈底)固定,另一端(即栈顶)活动,堆栈中的数据只能从栈顶进出,且遵循“后进先出”的原则。堆栈可在响应中断或调用子程序时保护断点地址,也可以通过堆栈操作指令PUSH(进栈)和POP(出栈)保护现场和恢复现场。89051单片机的堆栈是向地址增大方向生长的,在设置堆栈区时,为了避开工作寄存器区和位寻址区,一般设在片内数据存储器RAM中的30H~7FH地址空间内,但系统复位后SP的内容为07H,所以在程序设计时常通过软件方法对SP的值重新设置,以将堆栈开辟在堆栈、数据缓冲区中。上一页返回2.3单片机时钟电路与时序2.3.1振荡器和时钟电路单片机内部的各功能部件是在时钟脉冲的控制下,严格地按时序执行指令进行工作的。时钟电路为单片机工作产生连续的时钟脉冲序列,提供单片机片内各种微操作的时间基准。时序是研究单片机在执行指令过程中,CPU所发出的一系列特定的控制信号在时间上的相互关系。单片机本身就如一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格地按时序进行工作。单片机在执行指令时,CPU首先到程序存储器中取出要执行的指令操作码,然后译码,由时序电路产生一系列控制信号去完成指令所规定的操作。CPU发出的时序信号有两类:一类用于单片机内部各功能部件的控制,用户不能直接接触此类信号,因此无须了解。下一页返回2.3单片机时钟电路与时序另一类是通过控制总线送到片外的,用于对片外存储器或I/O端口的控制,这部分控制信号的时序,是单片机应用系统设计者应该关心的。89051单片机的时钟信号通常由两种方式产生:一种是内部方式,另一种是外部方式。1)内部时钟方式89051单片机芯片内部有一个高增益反相放大器,用于构成振荡器,反相放大器的输入端为XTAL1,输出端为XTAL2,在XTALl,XTAL2两端跨接石英晶体及微调电容就可以构成稳定的自激振荡器,构成单片机的时钟电路。电路如图2-5所示。89051单片机常选择振荡频率为12MHz的石英晶体,采用6MHz的情况也比较多。上一页下一页返回2.3单片机时钟电路与时序内部振荡方式所得的时钟信号比较稳定,实用电路中使用较多。2)外部时钟方式外部时钟方式是把外部已有的时钟信号引入到单片机内部,由XTAL2输入,直接送入内部时钟电路,XTALl接地。外部时钟方式常用于多片单片机同时工作,以便于多个单片机同步。2.3.2指令时序时序是用定时单位来描述的,89C51单片机的时序单位有4个,从小到大依次是:节拍、状态、机器周期和指令周期。下面分别加以说明。1)节拍与状态单片机以晶体振荡器的振荡周期(或外部引入的时钟周期)为最小的时序单位,片内的各种微操作都以此周期为时序基准。上一页下一页返回2.3单片机时钟电路与时序把振荡脉冲的周期(时钟周期)定义为节拍(为方便描述,用P表示),振荡频率二分频后形成状态周期,用S表示。所以,1个状态周期包含两个振荡周期,1个状态包含两个节拍,分别用P1和P2表示。2)机器周期单片机完成一次完整的、基本的操作所需的时间称为机器周期。MSC-51单片机有固定的机器周期,规定1个机器周期有6个状态,分别表示为S1~S6,而1个状态包含两个节拍,那么1个机器周期就有12个节拍,分别记为S1P1,S1P2,…,S6P1,S6P2。1个机器周期共包含12个振荡周期,即机器周期就是振荡脉冲的12分频,即1个机器周期=6个状态周期=12个振荡周期。各时序单位的相互关系如图2-6所示。上一页下一页返回2.3单片机时钟电路与时序显然,如果使用6MHz的时钟频率,1个机器周期就是2μs,而如果使用12MHz的时钟频率,1个机器周期就是1μs。3)指令周期执行一条指令所需要的时间称为指令周期,89051单片机有单字节、双字节和三字节指令,所以它们的指令周期不完全相同,也就是说它们所需的机器周期不相同,可能包括1一4个不等的机器周期。单字节和双字节指令一般为单机器周期和双机器周期,三字节指令都是双机器周期,只有乘、除指令占用四个机器周期。下面是单片机外接晶振频率12MHz时的各种时序单位的大小。振荡周期=1/fOSC=1/12MHz=0.0833μs状态周期=2/fOSC=2/12MHz=0.167μs上一页下一页返回2.3单片机时钟电路与时序机器周期=12/fOSC=12/12MHz=1μs指令周期=(1~4)机器周期=1~4μs图2-7列举了MCS-51单片机几种指令的取指令时序。由于用户看不到内部时序信号,我们可以通过观察XTAL2和ALE引脚的信号,分析CPU取指令时序。通常,每个机器周期中,ALE两次有效,第一次出现在S1P2和S2P1期间,第二次出现在S4P2和SSP1期间。单周期指令的执行始于S1P2,这时操作码被锁存到指令寄存器内,若是双字节则在同一机器周期的S4读第2字节。若是单字节指令,则在S4仍有读出操作,但被读入的字节无效,且程序计数器PC并不增量。图2-7(a)、(b)分别给出了单字节周期和双字节周期指令的时序,都能在S6P2结束时完成操作。上一页下一页返回2.3单片机时钟电路与时序图2-7(c)给出了单字节双周期指令的时序,两个机器周期内进行4次读操作码操作。因为是单字节指令,后3次读操作都是无效的。图2-7(d)给出了访问片外RAM指令“MOVXA,@DPTR”的时序,它是一条单字节双周期指令。在第一个机器周期SS开始送出片外RAM地址后,进行读/写数据。读写期间在ALE端不输出有效信号,所以第二机器周期,即外部RAM已被寻址和选通后,也不产生取指令操作。上一页返回2.4单片机的复位状态与工作方式2.4.1复位方式复位是单片机进入工作状态的初始化操作,是使CPU和系统中其他部件都处于一个确定的初始状态,并从这个状态开始工作。除了进入系统的正常初始化之外,当程序运行错误或由于错误操作而使单片机进入死锁状态时,也可以通过复位重新启动。当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也须按复位键重新启动。了解单片机内部寄存器初始化的状态,对于熟悉单片机的操作,简化应用程序的初始化过程是很有必要的。89051单片机的RST引脚是复位信号的引入端,复位信号为高电平有效。单片机在时钟电路工作以后,只要在RST端持续给出两个机器周期(24个振荡周期)以上的高电平就可以完成复位操作。下一页返回2.4单片机的复位状态与工作方式复位操作还会把ALE和变为无效状态,即ALE=1,=1。但复位操作不影响片内RAM单元的内容。复位操作使程序计数器PC初始化为0000H,单片机从0000H单元开始执行程序。此外,还对一些寄存器有影响,这些寄存器复位后的状态如表2-5所示。2.4.2单片机复位电路复位操作有上电自动复位和按键手动复位两种方式。1.上电自动复位上电自动复位是在加电瞬间电容通过充电来实现的,其电路如图2-8(a)所示。在通电瞬间,电容C通过电阻R充电,RST端出现正脉冲,用以复位。上一页下一页返回2.4单片机的复位状态与工作方式只要电源从(的上升时间不超过1ms,就可以实现上电自动复位,即接通电源就完成了系统的复位初始化。2.按键手动复位所谓按键手动复位,是指通过接通一按钮开关,使单片机进入复位状态。系统上电运行后,若需要复位,一般是通过按键手动复位来实现的。通常采用按键手动复位和上电自动复位组合,其电路如图2-8(b)所示。复位电路虽然简单,但其作用非常重要。一个单片机系统能否正常运行,首先要检查是否能复位成功。2.4.3单片机的工作方式89051单片机的工作方式有:复位方式、程序执行方式、节电工作方式、低功耗方式以及EPR0M编程和校验方式。上一页下一页返回2.4单片机的复位状态与工作方式单片机不同的工作方式,代表单片机处于不同的状态。单片机工作方式的多少,是衡量单片机性能的一项重要指标。1.程序执行方式程序执行方式是单片机的基本工作方式,也就是执行用户编写好并存放在程序存储器中的程序,可分为连续执行和单步执行两种。1)连续执行方式连续执行方式是所有单片机都需要的一种基本工作方式,用户编写好的被执行程序可以放在片内或片外R0M中。由于单片机复位后程序计数器PC=0000H,因此单片机在加电或按键复位后总是到0000H处执行程序,这就可以预先在0000H处放一条转移指令,以便跳转到0000H一FFFFH中的用户从需要的地方开始连续执行程序,每读一次程序,PC自动加1。上一页下一页返回2.4单片机的复位状态与工作方式2)单步执行方式在单片机开发系统上有一专用的单步执行按键,按一次,单片机就顺序执行一条指令(仅执行一条),这样就可以逐条检查程序,发现问题进行修改,通常只在用户调试程序时使用,用于观察每条指令的执行情况。单步执行方式是利用单片机外部中断功能实现的程序的单步运行方式,单步执行键相当于外部中断的中断源,当它被按下时相应电路就产生一个负脉冲(即中断请求信号)送到单片机的INTO或INT1引脚,单片机在INTO上的负脉冲作用下便能启动一次中断处理过程,CPU执行一条程序指令,这样就可以一步一步地进行单步操作。2.节电工作方式节电工作方式是一种减少单片机功耗的工作方式。上一页下一页返回2.4单片机的复位状态与工作方式通常可分为空闲(等待)方式和掉电方式,是通过对SFR中的PC0N(地址87H)相应位置1而启动的。图2-9所示为89C51电源控制寄存器PCON各位的分布情况。CHMOS器件的PCON只包括一个SMOD位,其他4位是CHMOS器件独有的。3个保留位用户不得使用,因为硬件没有做出安排,可能在今后的89C51新产品中代表某特定的功能。图2-9中各符号的名称和功能如下。SMOD:串行口波特率倍率控制位,用于串行口通信。若此位为1,则串行口方式1、方式2和方式3的波特率加倍。GF1、GF0:通用标志位。PD:掉电方式位。PD=1即启动掉电方式。上一页下一页返回2.4单片机的复位状态与工作方式IDL:空闲方式位。IDL=1即启动空闲方式,这时CPU因无时钟控制而停止运作。如果同时向PD和IDL两位写1,则PD优先,进入掉电工作方式。PCON的复位值为0xxx0000B。1)空闲工作方式当程序执行将PCON的IDL位置1的指令(如MOVPCON,#01H)后,系统就进入了空闲工作方式。空闲工作方式是在程序运行过程中,用户在CPU无事可做或不希望它执行程序时,进入的一种降低功耗的待机工作方式。在此工作方式下,单片机的工作电流可降到正常工作方式时电流的15%左右。在空闲工作方式时,振荡器继续工作,中断系统。上一页下一页返回2.4单片机的复位状态与工作方式串行口以及定时器模块由时钟驱动工作,但时钟不提供给CPU,也就是说CPU处于待机状态,工作暂停。与CPU有关的SP,PC,PSW,A的状态以及全部工作寄存器的内容均保持不变,I/O引脚状态也保持不变。ALE和PSEN保持逻辑高电平。退出空闲方式的方法有两种,一种是中断退出,一种是按键复位退出。任何的中断请求被响应都可以由硬件将PCON.O(IDL)清0,从而中止空闲工作方式。当执行完中断服务程序返回时,系统将从设置空闲工作方式指令的下一条指令开始继续执行程序。另外,PCON寄存器中的GFO和GF1通用标志可用来指示中断是在正常或是在空闲方式下发生。例如,在执行设置空闲方式的指令前,先置标志位GFO(或GFI),当空闲工作方式被中断中止时,在中断服务程序中可检测标志位GFO(或GFI)。上一页下一页返回2.4单片机的复位状态与工作方式以判断出系统是在什么情况下发生的中断,如GFO(或GF1)为1,则是在空闲方式下进入的中断。另一种退出空闲方式的方法是按键复位,由于在空闲工作方式下振荡器仍然工作,复位仅需两个机器周期便可完成。复位信号直接将PCON.O(IDL)清0,从而退出空闲状态,CPU则从进入空闲方式的下一条指令开始重新执行程序。2)掉电方式当CPU执行一条置PCON.1位(PD)为1的指令(如MOVPCON.1,#02H后,系统即进入掉电工作方式。掉电的具体含义是指由于电源的故障使电源电压丢失或工作电压低于正常要求的范围值。掉电将使单片机系统不能运行,若不采取保护措施,则会丢失RAM和寄存器中的数据。上一页下一页返回2.4单片机的复位状态与工作方式为此单片机设置有掉电保护措施,进行掉电保护处理。具体做法是:检测电路,一旦发现掉电,立即把程序运行过程中有用信息转存到RAM,然后启用备用电源维持RAM供电。在掉电工作方式下,单片机内部振荡器停止工作。由于没有振荡时钟,因此,所有的功能部件都停止工作。但内部RAM区和特殊功能寄存器的内容被保留,端口的输出状态值都保存在对应的SFR中。退出掉电方式的唯一方法是由硬件复位,复位时将所有的特殊功能寄存器的内容初始化,但不改变内部RAM区的数据。在掉电工作方式下,Vcc可以降到2V,但在进入掉电方式之前,Vcc不能降低。而在准备退出掉电方式之前,Vcc必须恢复正常的工作电压值,并维持一段时间(不小于10ms),使振荡器重新启动并稳定后方

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论