MCS-51单片机的系统扩展与应用

上传人:仙*** 文档编号:244079344 上传时间:2024-10-02 格式:PPT 页数:65 大小:1.45MB
返回 下载 相关 举报
MCS-51单片机的系统扩展与应用_第1页
第1页 / 共65页
MCS-51单片机的系统扩展与应用_第2页
第2页 / 共65页
MCS-51单片机的系统扩展与应用_第3页
第3页 / 共65页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第三章,MCS-51,单片机的系统扩展与应用,3.1 MCS-51,最小系统,3.2 MCS-51,系列单片机的外部扩展原理,3.3,存储器的扩展,3.4,输入,/,输出口的扩展,3.5,定时器,/,计数器的应用,3.6,串行口的应用,3.7,布尔处理机的应用,3.1 MCS-51,最小系统,3.1.1,最小应用系统,单片机系统的扩展是以基本的,最小系统为基础,的,故应首先熟悉最小应用系统的结构。,内部带有程序存储器的,8051,或,8751,单片机,本身就,是一个最简单的最小应用系统,许多实际应用系统就,是用这种成本低和体积小的单片结构实现了高性能,的控制。,对于目前较多采用的内部无程序存储器的芯片,8031,来说,则,要用外接程序存储器,的方法才能构成,一个最小应用系统。,一、,8051/8751,硬件最小系统,对于片内有,ROM,型单片机,其自身可以构成最小系统,系统构成:,4KB ROM,,,256B RAM,;,五个中断源;,两个,16,位定时,/,计数器;,一个全双工串行,UART;,四个并行,I / O,口,二、,8031,硬件最小系统,8031,单片机片内无,ROM,,若要正常工作,必需外配,ROM,。外接,ROM,后,,P3,口、,P2,口、,P0,口均被占用只剩下,P1,口作,I / O,口用,其它功能不变。,3.2 MCS-51,系列单片机的外部扩展原理,1. MCS-51,系列单片机的片外总线结构,MCS-51,系列单片机具有很强的外部扩展功能。其外部扩展,都是通过三总线进行的。,(,1,)地址总线(,AB,),地址总线用于传送单片机输出的地址信号,宽度为,16,位,,P0,口经锁存器提供低,8,位地址,锁存信号是由,CPU,的,ALE,引脚提,供的;,P2,口提供高,8,位地址。,(,2,)数据总线(,DB,),数据总线是由,P0,口提供的,宽度为,8,位。,(,3,)控制总线(,CB,),控制总线实际上是,CPU,输出的一组控制信号。,MCS-51,单片,机通过三总线扩展外部设备的总体结构图如下图所示。,单片机的三总线结构形式,2,MCS-51,系列单片机系统的扩展能力,片外可扩展存储器的最大容量为,2,16,=64KB,,地址范围为,0000H,FFFFH,。,片外程序存储器和数据存储器的地址重叠共享,但选通信号不,同。,PSEN,选通片外程序存储器,,RD,和,WR,分别选通片外数据存储,器的读写。,I/O,接口的编址方法:一种是,独立编址,,另一种是,统一编址,。,MCS-51,单片机采用了统一编址方式,,即,I/O,端口地址与外部数据,存储单元地址共同使用,0000H,FFFFH,(,64KB,)。当,MCS-51,单片,机应用统扩展较多外部设备和,I/O,接口时,要占去大量的数据存储,器的地址。,3.3,存储器的扩展,一、存储器扩展概述,MCS-51,系列单片机具有,64 KB,的程序存储器空间,, 其中,8051,、,8751,型单片机含有,4 KB,的片内程序存储器,而,8031,型单片机则无片内程序存储器,。 当采用,8051,、,8751,型单片,机而程序超过,4KB,或采用,8031,型单片机时,就需要进行程序,存储器的扩展。,MCS-51,系列单片机的数据存储器与程序存储器的地址空,间是互相独立的,其片外数据存储器的空间可达,64 KB,而片,内的数据存储器空间只有,128 B,。 如果片内的数据存储器不,够用时,则需进行数据存储器的扩展。,存储器扩展的核心问题是,存储器的编址,问题。 所谓编址就,是给存储单元分配地址。 由于存储器通常由多片芯片组成,为此存储器的编址分为两个层次,:,即存储器芯片的选择和存,储器芯片内部存储单元的选择。,存储器芯片的选择有两种方法,:,线选法,和,译码法,。,1.,线选法,所谓线选法,就是直接以系统的地址线作为存储器芯片的片选信号,为此只需把用到的地址线与存储器芯片的片选端直接相连即可。,2.,译码法,所谓译码法就是使用地址译码器对系统的片外地址进行译码,以其译码输出作为存储器芯片的片选信号。,译码法又分为,完全译码,和,部分译码,两种。,(1),完全译码。,地址译码器使用了全部地址线, 地址与存储单元一一,对应, 也就是,1,个存储单元只占用,1,个唯一的地址。,(2),部分译码。,地址译码器仅使用了部分地址线, 地址与存储单元不,是一一对应, 而是,1,个存储单元占用了几个地址。,1,根地址,线不接, 一个单元占用,2(2,1,),个地址;,2,根地址线不接, 一,个单元占用,4(2,2,),个地址;,3,根地址线不接, 则占用,8(2,3,),个,地址, 依此类推。,注:,在设计地址译码器电路时, 如果采用地址译码关系, 将会带来很大的方便。,二、,MCS-51,单片机扩展外部存储器应考虑的问题:,(,1,)选择合适类型的存储器芯片,只读存储器用于固化程序和常数。可分为掩膜,ROM,、可编程,PROM,、紫外线可擦除,EPROM,和电可擦,除,E,2,PROM,几种。若所设计的系统是小批量生产或开发,产品,则建议使用,EPROM,和,E,2,PROM,;若为成熟的大,批量产品,则应采用,PROM,或掩膜,ROM,。,随机存取存储器常用来存取实时数据、变量和运算,结果。可分为静态,RAM,(,SRAM,)和动态,RAM,(,DRAM,)两类。此外,还可以选择,OTP ROM,、,Flash,存储器、,FRAM,、,NVSRAM,、用于多处理机系统的,DSRAM,(双端口,RAM,)等。,(,2,)选择合适的存储容量,在,MCS-51,应用系统所需存储容量不变的前提下,,若所选存储器本身存储容量越大,则所用芯片数量,就越少,所需的地址译码电路就越简单。,(,3,)合理分配存储器地址空间的分配,存储器地址空间的分配必须满足存储器本身的,存储容量,否则会造成存储器硬件资源的浪费。,(,4,)合理选择地址译码方式,可根据实际应用系统的具体情况选择线选法、全,地址译码法、部分地址译码法等地址译码方式。,二、三总线的连接,1,、数据线的连接,P0,口,的八位线承担此任,此时不用外接上拉电阻。,2,、地址线的连接,P0,口,承担地址低八位线,,A0 A7,;,P2,口,承担地址高八位线。,A8 A15,。,注意:,P0,口线地址,/,数据分时复用,需用地址锁存器,74LS373,锁存地址。,3,、控制线的连接,对存储器来讲控制线无非是:芯片的,选通,控制、,读写,控,制。单片机与外部器件数据交换要遵循两个重要原则:,一是,地址唯一性,一个单元一个地址。,二是,同一时刻,,CPU,只能访问一个地址,即只能与一个,单元交换数据。,不交换时,外部器件处于锁闭状态,对总线,呈浮空状态。,选通:,CPU,与器件交换数据或信息,需先发出选通信号,/CE,或,/CS,,以便选中芯片。,读,/,写:,CPU,向外部设备发出的读,/,写控制命令。,EPROM,:,/OE /PSEN,SRAM,:,/WE /WR,/OE /RD,A10 A8,A7 A0,D7 D0,CB,3.3.1,程序存储器的扩展,常用,EPROM,程序存储器,EPROM,主要是,27,系列芯片,如,: 27C64(8K),、,27C128(16K),、,27C256(32K),、,27C512,(,64K,)、,27C040(512K),、,27C080,(,1M,),一般选择,8KB,以,上的芯片作为外部程序存储器。其引脚图如下图所,示:,引脚符号的含义和功能如下:,D7,D0,:,三态数据总线;,A0,Ai,:,地址输入线,,:,片选信号输入线; :输出允许输入线;,V,PP,:,编程电源输入线; :编程脉冲输入线;,V,CC,:,电源;,GND,:,接地,;,NC,:,空引脚。,2.,地址锁存器,程序存储器扩展时,还需要地址锁存器,地址锁存器常用,的有带三态缓冲输出的,8D,锁存器,74LS373,、带有清除端的,74LS273,。,74LS373,是带有三态门的,8D,锁存器,当三态门的使能信号,线,OE,为低电平时,三态门处于导通状态,允许锁存器输出,,锁存控制端为,11,脚,LE,,采用下降沿锁存,控制端可以直接与,CPU,的地址锁存控制信号,ALE,相连。,3.,程序存储器扩展举例,现分,3,种情况说明程序存储器的扩展方法。,(1),不用片外译码的单片程序存储器的扩展。,例,1:,试用,EPROM2764,构成,8031,的最小系统。,解,:,由于,8031,无片内程序存储器,因此必须,外接程序存储,器,以构成最小系统。,其连接方法是在将三总线连接好的基础上,将,2764,按三总线,的要求连接,其连接的关键在于地址译码。 由于一般所采用,的芯片其字节数均超过,256,个单元,也就是说片内地址线超过,8,条,故地址译码的核心问题是高,8,位地址线的连接。接线图,如下页所示:,(2),采用线选法的多片程序存储器的扩展。,例,2:,在下页图所示的连接图中,使用了两片,2764,一共构成了,8K,2=16K,的有效地址。,采用线选法编址,以,P2.7(A15),直接作为片选信号,当,P2.7=0,时,选中左边,1,片,2764,其地址范围为,0000H1FFFH;,当,P2.7=1,时,选中右边,1,片,2764,其地址范围为,8000H9FFFH,。,(3),采用地址译码器的多片程序存储器的扩展。,例,3:,要求用,2764,芯片扩展,8031,的片外程序存储器空,间,分配的地址范围为,0000H3FFFH,。,解:本例采用完全译码的方法,即所有地址线全部连接,每个单元只占用唯一的,1,个地址。, 确定片数,:,字片数,=,(,末地址,-,首地址,)+1,芯片字数,=,(3FFFH-0000H) +1,2000H,=,4000H,2000H,=2(片), 分配地址范围,:,第,1,组,(1,片,),所占用的地址范围为,:,0000,0000,0000,0000 0000H, ,0001,1111,1111,11111FFFH,第,2,组,(1,片,),所占用的地址范围为,:,0010,0000,0000,00002000H, ,0011,1111,1111,11113FFFH,位片数为,位片数,=,单元位数,芯片位数,=,总片数,=,字片数,位片数,=21=2(,片,), 画出地址译码关系图,:,第,1,组,0,0,0,X,X,X,X,X,X,X,X,X,X,X,X,X,P2.7P2.6P2.5P2.4 P2.0 P0.7,P0.0,(A15)(A14)(A13)(A12) (A8)(A7) (A0),0,0,1,X,X,X,X,X,X,X,X,X,X,X,X,X,第,2,组,上面打,部分为片内译码,对于,2764,来说有,13,位,其地址变化范围为从全,0,变到全,1,其余部分为片外,译码。, 设计外译码电路,:,本例只介绍采用译码器芯片的设计方法,现采用,3-8,译码器,74LS138,。片外译码只有,3,根线,(P2.7,P2.6, P2.5),,分别接至译码器的,C,、,B,、,A,输入端。,控制端,G1,G2A,G2B,不参与译码,接成常有效。, 画出存储器扩展连接图,:,该连接图如下所示。图中,3-8,译码器,74LS138,只用了两个译码输出端,如果需要的话,还可利用其余,6,个译码输出端。,例,4,:图中译码器,74LS138,的译码输出端,Y4,和,Y5,所对应的地址范围各为多少,?,解:,对于,Y4,来说,其地址变化范围为,1000000000000000,1001111111111111,即,8000H9FFFH,。,对于,Y5,来说,其地址变化范围为,1010000000000000,1011111111111111,即,A000H,BFFFH,。,3.3.2,数据存储器的扩展,单片机内部的,RAM,为,128B,(或,256B,),有的单片机应用系,统需要扩展外部数据存储器,RAM (,如数据采集系统数据量较,大,需要专设,RAM,或,Flash RAM),。最常用的,RAM,器件是静,态,RAM,(,SRAM,)。,1.,常用静态,RAM,存储器,常用的,SRAM,有,6264(8K),、,62128(16K),、,62256(32K),、,628128(128K),等。一般选择,8KB,以上的芯片作为外部程序存,储器。,引脚符号的含义和功能如下:,D7,D0,:,双向三态数据总线;,A0,Ai,:,地址输入线;,CS (CS1),:片选信号输入端;,CS2:,片选信号输入端,高电平有效(仅,6264,芯片有);,RD,:读选通信号输入线,低电平有效;,WR,:,写选通信号输入线,低电平有效;,Vcc,:,电源,+5V,;,GND,:,地。,2,、,MCS-51,扩展数据存储器与程序存储器电路的异同:,(,1,)所用的地址总线,数据总线完全相同;,(,2,)读,/,写控制线不同:扩展程序存储器的读选通信号由,PSEN,控制,扩展数据存储器的读、写控制线用,RD,、,WR,分别,控制存储器芯片的,OE,和,WE,;,(,3,)数据存储器与程序存储器的地址可以重叠,因为扩展它们,的控制信号不同。,(,4,),I/O,扩展的地址空间与数据存储器扩展的空间是共用的,,所以扩展数据存储器涉及到的问题远比扩展程序存储器扩展,多。,3,、数据存储器的扩展方法:,扩展容量为,256B,的,RAM,,采用,MOVX ,Ri,指令访问外部,RAM,,只用,P0,口传送,8,位地址;,扩展容量大于,256B,而小于,64KB,的,RAM,,访问外部,RAM,时,采用,MOVX DPTR,指令,同时用,P0,和,P2,口送,16,位地址;,扩展容量略大于,256B,的,RAM,,为节省,I/O,口(,P2,),用,P0,口送低,8,位地址,通过少量,I/O,口线、用软件方法传送高位地,址的指令。,数据存储器,RAM,的扩展:,有时需要扩展外部数据存储器,RAM,方能工作,(,如数据采集系统数据量较大,需要专设,RAM,或,Flash RAM),。,最常用的,RAM,器件是,SRAM,。,如,:6116(2K)/6264(8K)/62128(16K)/628128(128K) ,A7,Vcc,A6 A8,A5 A9,A4,WE,A3,OE,A2 A10,A1,CE,A0 D7,D0 D6,D1 D5,D2 D4,GND D3,6116,Vpp,Vcc,A12,WE,A7,CE2,A6 A8,A5 A9,A4 A11,A3,OE,A2 A10,A1,CE1,A0 D7,D0 D6,D1 D5,D2 D4,GND D3,6264,Vpp,Vcc,A12,WE,A7,A13,A6 A8,A5 A9,A4 A11,A3,OE,A2 A10,A1,CE,A0 D7,D0 D6,D1 D5,D2 D4,GND D3,62128,数据存储器,6264,的扩展:,锁存器,74LS373,51,单片机能提供,16,条地址线,可扩展,64K,字节的,RAM,。,可以用一片芯片,也可以用多片,RAM,89C51,单片机,SRAM6264,P0.0-P0.7,ALE,P2.7,P2.0-P2.4,8D,8Q,OE,A8-A12,A0-A7,D0-D7,G,EA,OE,CE2,RD,WR,WE,CE1,+5V,4,、全地址范围的存储器最大扩展系统,8031,的片外程序存储器和数据存储器的地址各为,64K,。若,采用,EPROM2764,和,RAM6264,芯片,则各需,8,片才能构成全部,有效地址。芯片的选择采用,38,译码器,74LS138,,片外地址,线只有,3,根,(A15,、,A14,、,A13),,分别接至,74LS138,的,C,、,B,、,A,端,其,8,路译码输出分别接至,8,个,2764,和,8,个,6264,的片选端,CE,。,5,、,MCS-51,对外部存储器的扩展,下图所示的,8031,扩展系统中,外扩了,16KB,程序存储器(使用两片,2764,芯片)和,8KB,数据存储器(使用一片,6264,芯片)。采用全地址译码方式,,P2.7,用于控制,24,译码器的工作,,P2.6, P2.5,参加译码,且无悬空地址线,无地址重叠现象。,1# 2764, 2# 2764, 3# 6264,的地址范围分别为:,0000H,1FFFH, 2000H,3FFFH, 4000,5FFFH,。,6,、程序存储空间和数据存储空间的混合,在硬件结构上将,PSEN,信号和,RD,信号相“与”后连接到,RAM,芯片的读选通端,这样就能使程序存储空间和数据存储空间混合。如右图所示。将程序装入,6264,中,很容易进行读写修改,执行程序时,由,PSEN,信号选通,RAM,读出。调试通过后,再将,RAM6264,调换成,EPROM2764,。,注意,2,点:,1,。程序和数据之和不大于存储器总容量。,2,。程序必须存放在低地址,数据存放在高地址。,3.4,输入,/,输出口的扩展,MCS-51,单片机具有四个并行,8,位,I/O,口(即,P0, P1, P2,P3,),原理上这四个,I/O,口均可用做双向并行,I/O,接口,但在,实际应用中,可提供给用户使用的,I/O,口只有,P1,口和部分,P3,口线及作为数据总线用的,P0,口。在单片机的,I/O,口线不够用,的情况下,可以借助外部器件对,I/O,口进行扩展。可资选用,的器件很多,方案也有多种。,并口扩展常用三种方法:,1,、利用,TTL,、,CMOS,集成电路来扩展,2,、利用单片机串口扩展,3,、利用可编程并行接口芯片来扩展,2. MCS-51,单片机扩展并行,I/O,口的扩展性能,访问扩展,I/O,口的方法与访问数据存储器完全相同,使用,相同的指令,所有扩展的,I/O,口与片外数据存储器统一编,址。,利用串行口扩展法扩展的外部并行,I/O,口不占用外部,RAM,地址空间。,利用并行总线扩展的方法扩展外部并行,I/O,口时,必须注,意,P0, P2, P3,口的负载问题,若负载能力不够,必须进行总,线驱动能力扩展。,扩展外部并行,I/O,口对外设的硬件具有依赖性(驱动功,率、电平匹配、干扰抑制、隔离等)。,1,、利用,TTL,、,CMOS,集成电路来扩展,利用,TTL,芯片、,CMOS,锁存器、三态门等接口芯片扩展,P0,口,常选用,74LS273,、,74LS373,、,74LS244,等芯片。,2,、用串行口扩展并行,I / O,接口,如果串口别无他用,则可让其工作于方式,0,,来扩展一个或多个,8,位并行,I / O,口,(,1,)用,74LS165,扩展并行,I / O,口,8031,P3.0,P3.1,P1.0,H G F E D C B A,QH SIN,/QH 74LS165(1),S/L M CP,H G F E D C B A,QH SIN,/QH 74LS165(2),S/L M CP,D0 . D7,D0 . D7,(,2,)用,74LS164,扩展并行输出口,74LS164,是,8,位串入、并出移位寄存器,其中,,CP,为移位脉冲输入端;,/CR,为清除端。,8031,P3.0,P3.1,P1.0,A B C D E F G H,AB,74LS164(1),/CR CP,A B C D E F G H,AB,74LS164(2),/CR CP,D7 . D0,D7 . D0,AB,CLK,h g f e d c b a,CLR,AB,CLK,CLR,+5V,VCC,TxD,RxD,89C51,单片机,74LS164,74LS164,h g f e d c b a,+5V,共阳,LED,数码管,LED,数码管静态显示举例,有几个,LED,就要几个,74LS164,,,但只要数据不变,送一次就保持住了,且不闪烁,编程十分简单。,3,、利用可编程并行接口芯片来扩展,可编程,I/O,接口芯片的特点:适应多种功能需求,使用灵活,可扩展多个并行,I/O,口,可以编程设定为输入或输出口,应用非常广泛。,(,1,)可编程并行口,8255A,芯片,Intel 8255A,芯片是通用可编程并行接口电路,广泛应用于单片机扩展并行,I/O,口。它具有,3,个,8,位并行口,PA, PB,和,PC,,一个,8,位的数据口,D0,D7,,,PC,口分高,4,位和低,4,位。高,4,位可与,PA,口合为一组,(A,组,),低,4,位可与,PB,口合为一组,(B,组,),,,PC,口可按位置位,/,复位。,40,条引脚,,DIP,封装。 引脚图如右图所示。,(,2,),8255A,的,3,种工作方式,方式,0,(基本输入,/,输出方式):,不需要任何选通信号,适,合于无条件传输数据的设备,数据输出有锁存功能,数据输,入有缓冲(无锁存)功能。,方式,1,(选通输入,/,输出方式):,A,组包括,A,口和,C,口的高四,位(,PC7,PC4,),,A,口可由程序设定为输入口或输出口,,C,口的高四位则用来作为输入,/,输出操作的控制和同步信号;,B,组包括,B,口和,C,口的低四位(,PC3,PC0,),功能和,A,组相同。,方式,2,(双向,I/O,口方式):,仅,A,口有这种工作方式,,B,口无,此工作方式。此方式下,,A,口为,8,位双向,I/O,口,,C,口的,PC7,PC3,用来作为输入输出的控制和同步信号。此时,,B,口可以工,作在方式,0,或方式,1,。,(,3,),8255A,芯片的控制字,8255A,为可编程接口芯片,以控制字形式对其工作方式和,C,口各位的状态进行设置。它有两种控制字:工作方式控制字和,C,口置位,/,复位控制字。,应注意的是,作为联络线使用的,C,口各位是不能采用置位,/,复位操作来使其置位或复位的。其数值应视现场的具体情况而定。,8255A,控制字格式,(a),工作方式控制字,; (b)C,口置位,/,复位控制字,(,4,)接口与编程方法,MCS-51,单片机外扩,8255A,芯片的电路原理图如下图所示。,8255A,芯片内部已有数据总线驱动器,可以直接与,MCS-51,单片机总线相连接(,P0,口接,D0,D7,)。,8255A,的,RESET,RD,WR,CS,分别与,MCS-51,单片机的,RESET,RD,WR,P2.7,相连,单片机地址线最低,2,位分别接,8255A,芯片的,A1,,,A0,。,PA, PB, PC,及控制寄存器的地址分别是,7FFCH, 7FFDH, 7FFEH,和,7FFFH,。,例:,如图上页所示,假设,8255A,芯片的,PA,接,8,只状态指示灯,,PB,接,8,个开,关,现须将开关闭合的状态输入到片内,60H,单元保存,将,70H,单元的内容送,状态指示灯显示,并置位,PC7,引脚,编写相应程序。,解:,根据题意,设置,8255A,的,A,口方式,0,输出,,B,口方式,0,输入,,C,口高四位输,出,则,8255A,的方式字为,82,(,10000010B,),,C,口置位,/,复位字为,0FH,(,00001111B,),,8255A,的方式字及置位,/,复位控制字地址为,7FFFH,。初始,化过程及输入,/,输出的程序如下:,ORG 1000H,DSP8255: MOV DPTR, #7FFFH ;,数据指针指向,8255A,控制口,MOV A, #82H,MOVX DPTR, A;,工作方式字送,8255A,控制口,MOV A, #0FH,MOVX DPTR, A ; C,口置位,/,复位字送,8255A,控制口,MOV DPTR, #7FFDH ;,数据指针指向,8255A,的,B,口,MOVX A, DPTR,MOV 60H, A;,将,B,口开关状态送入,60H,单元,MOV DPTR, #7FFCH ;,数据指针指向,8255A,的,A,口,MOV A, 70H,MOVX DPTR, A; 70H,单元内容,A,口指示灯显示,RET,END,3.5,定时器,/,计数器的应用,定时器,/,计数器可按片内机器周期定时,也可对由,T0/T1,引,脚输入一个负脉冲进行加法计数。在应用时,其工作方式和,工作过程均可通过程序设定和控制,因此,定时器,/,计数器在,工作前必须先对其进行初始化,计算和设置初值。,1.,定时器,/,计数器初始化的步骤,(,1,)写,TMOD,,设置定时器,/,计数器的工作方式,(,2,)计算定时器,/,计数器的初值,写入,TH0/TH1,、,TL0/TL1,。,(,3,)设置,IE,、,IP,,以开放相应的中断和设定中断优先级。,2.,定时器,T0/T1,中断申请过程,(,1,)在已经开放,T0/T1,中断允许且已被启动的前提下,,T0/T1,加,1,计满溢出时,TF0/TF1,标志位自动置“,1”,;,(,2,),CPU,检测到,TCON,中,TF0/TF1,变“,1”,后,将产生指令:,LCALL 000BH/LCALL 001BH,执行中断服务程序;,(,3,),TF0/TF1,标志位由硬件自动清“,0”,以备下次中断申请。,3.,定时器,/,计数器的定时器,/,计数器范围,(,1,)工作方式,0,:,13,位定时器,/,计数器方式,最大计数值,= 213 = 8192,(,2,)工作方式,1,:,16,位定时器,/,计数器方式,最大计数值,= 216 = 65536,(,3,)工作方式,2,和工作方式,3,:,8,位的定时器,/,计数器方式,最大计数值,= 28 = 256,4.,定时器,/,计数器应用举例,例:,设一只发光二极管,LED,和,8051,的,P1.0,脚相连。当,P1.0,脚,是低电平时,,LED,发亮;当,P1.0,脚是高电平时,,LED,不亮。,编制程序用定时器来实现发光二极管,LED,的闪烁功能,设置,LED,每,1s,闪烁一次。已知单片机系统主频为,12MHz,。,解:,定时器,/,计数器的最长的定时是,65.536ms,,无法实现,1s,的定时。可以采用软件计数器来进行设计。,设计思想:,定义一个软件计数器单元,30H,,,先用定时器,/,计数器,0,做一个,50ms,的定时器,定时时间到了以后将软件计数器中的值加,1,,如果软件计数器计到了,20,,取反,P1.0,,,并清掉软件计数器中的值,否则直接返回。则完成了,20,次定时中断才取反一次,P1.0,,,因此定时时间就为,2050=1000ms=1s,。,定时器,/,计数器,0,采用工作方式,1,,其初值为:,2,16,50ms/1,s=65536,50000=15536=3CB0H,电路图如下:,程序如下:,ORG 0000H,AJMP START ;,转入主程序,ORG 000BH ;,定时器,/,计数器,0,的中断服务程序入口地址,AJMP TIME0 ;,跳转到真正的定时器中断服务程序处,ORG 0030H,START: MOV SP, #60H ;,设置堆栈指针,MOV P1, #0FFH ;,关发光二极管,LED,(,使其灭),MOV 30H, #00H ;,软件计数器预清,0,MOV TMOD, # 01H ;,定时器,/,计数器,0,工作于方式,1,MOV TH0, #3CH ;,设置定时器,/,计数器的初值,MOV TL0, #0B0H,SETB EA ;,开总中断允许,SETB ET0 ;,开定时器,/,计数器,0,中断允许,SETB TR0 ;,启动定时器,/,计数器,0,LOOP: AJMP LOOP ;,循环等待,(真正工作时,这里可写任意其他程序),定时器,/,计数器,0,的中断服务程序,1,:,TIME0: PUSH ACC ;,将,PSW,和,ACC,推入堆栈保护,PUSH PSW,INC 30H ;,软件计数器加,1,MOV A, 30H,CJNE A, #20, T_LP2;,软件计数器单元中的值到了,20,了吗?,到了,继续执行,;,否则,T_LP2,T_LP1: CPL P1.0 ;,到了,,P1.0,取反,MOV 30H, #00H;,清软件计数器,(,或置初值,20),T_LP2: MOV TH0, #3CH;,重置定时器,/,计数器的初值,MOV TL0, #0B0H,POP PSW ;,恢复,PSW,和,ACC,POP ACC,RETI;,中断返回,END,定时器,/,计数器,0,的中断服务程序,2,:,TIME0: MOV TL0, #0B0H ;,重置定时器,/,计数器的初值,MOV TH0, #3CH,DJNZ 30H, T_LP2 ;,软件计数器单元中,的值到了,20,了吗?,T_LP1: CPL P1.0 ;,到了,,P1.0,取反,MOV 30H, #20 ;,重置软件计数器初值,T_LP2: RETI ;,中断返回,END,5.,定时器操作模式,0,的应用,要求:利用定时器,/,计数器,0,控制产生宽度为,2,个机器周期的定时负脉冲,由,P1.0,送出。,定时脉冲产生的周期为,2ms,。,(,fosc,=12M,定时器工作于方式,0,),解:计算计数初值:,x = 7192 = 1110000011000B,= 0E018H,程序:,ORG 0000H,LJMP START,ORG 000BH ;,定时器,0,中断入口地址,LJMP T0INT ;,长转移到定时器,0,中断服务程序,ORG 4100H,START: MOV TMOD, #00H ;,设置工作方式,MOV TH0, #0E0H,;设置计数初值,MOV TL0, #18H,MOV IE, #10000010B,;设置总中断允许,开定时器,0,中断,SETB TRO,;启动定时器,SJMP $,T0INT: CLR TR0,CPL P1.0,MOV TH0, #0E0H,MOV TL0, #18H,SETB ET0,RETI,END,6.,定时器操作模式,1,的应用,要求:利用定时器,0,模式,1,产生一个,50Hz,的方,波,由,P1.0,输出。(采用查询方式),计算计数器初值:,X=55536=0D8F0H,程序:,ORG 0000H,LJMP START,ORG 4100H,START,:,MOV TMOD, #01H,;设置定时器,0,模式,1,SETB TR0,LOOP,:,MOV TH0, #0D8H ;,设置计数初值,MOV TL0,#0F0H,JNB TF0,$,CLR TF0,CPL P1.0,SJMP LOOP,END,8.,定时器操作模式,2,的应用,要求:利用定时器,1,产生,1200,的波特率。,Fosc,=11.059,计算重装载值:,TH1=E8H,(,SMOD=0,),相关程序:,MOV TMOD,,,#20H,;置,T1,为模式,2,MOV TL1,,,#0E8H,MOV TH1,,,#0E8H,SETB TR1,2,SMOD,fosc,32, 12(256,- N),波特率,=,全部课程到此结束,谢谢大家!,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!