第10章-定时器/计数器资料.ppt_第1页
第10章-定时器/计数器资料.ppt_第2页
第10章-定时器/计数器资料.ppt_第3页
第10章-定时器/计数器资料.ppt_第4页
第10章-定时器/计数器资料.ppt_第5页
免费预览已结束,剩余56页可下载查看

下载本文档

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

文档简介

1,第10章定时/计数技术及接口,10.1定时/计数技术概述10.2可编程定时器/计数器8253/825410.38253在微机系统中的应用,10.1定时/计数技术概述,10.1.1系统的时间基准计算机为什么需要时间基准?第一,计算机系统本身需要一个时间基准,以保证计算机在确定时刻完成规定动作。第二,用计算机构成的测控系统常被要求能提供一些定时和计数的功能。计算机系统的时间基准:主时钟频率(简称主频),10.1.2系统定时分类软件定时:用循环程序实现定时:简单硬件定时:用硬件电路实现硬件定时:可编程硬件定时:用可编程芯片实现(软、硬件结合方式),系统定时分类,2.硬件定时硬件定时由硬件电路来实现的定时。优点减轻CPU的负担,使得在定时期间CPU能做其它工作。不可编程的硬件定时555时基电路等缺点:不易修改定时参数,时间长了器件会老化。可编程硬件定时8253定时/计数器等优点:定时参数和工作方式可由软件来控制,定时过程不需要CPU干预。,1.软件定时软件定时:让CPU执行一段具有固定延时时间的循环程序来实现的延时。是实现系统定时或延时控制的最简单的方法。优点:不需要外加硬件电路且定时精确。缺点:定时时间越长,CPU的开销越大,而且不能响应中断,否则定时就不准确。,10.2可编程定时器/计数器8253/8254,10.2.18253主要特性单一正5V电源,NMOS工艺制成。片内具有3个独立的16位减法计数器(或称计数通道)。计数频率为02MHz。两种计数方式:即二进制或BCD方式计数。六种工作方式,既可对系统时钟脉冲计数实现定时,又可对外部事件进行计数。可由软件或硬件控制开始计数或停止计数。,10.2.28253内部结构,8253内部结构,1.数据总线缓冲器:三态、双向8位寄存器CPU写入的命令传送的信息:CPU写入的计数初值CPU读出的当前计数值8254增加了回读命令:CPU可读出当前状态,8253内部结构,2.读/写逻辑读/写逻辑接收由CPU发来的读、写信号和地址信号等,选择读出或写入寄存器,控制芯片完成读写操作。3.控制字寄存器控制字寄存器接收CPU送来的控制命令。选择计数器及相应的工作方式。控制字寄存器只能写入,不能读出。,8253内部结构,4.计数器8253有三个独立的计数通道16位的计数单元(减1计数器)每个通道的组成:16位初值寄存器(只写)16位输出锁存器锁存当前计数值控制单元控制该计数器的工作方式,图10.2计数器的内部逻辑,8253内部结构,计数初值寄存器:用于存放计数初值(定时常数或称分频系数),最大计数值为65536(64K)。计数初值是在初始化时装入计数初值寄存器的,计数初值在计数过程中保持不变。计数单元:用于进行减1计数操作,每来一个时钟脉冲,它就作一次减1运算,直至将计数初值减为零。当前计数值锁存器:用于锁存减1计数器的内容,以供CPU读出。,8253内部结构,计数器工作原理:初始化时首先向计数通道装入计数初值,送入计数初值寄存器然后送到计数单元(减1计数器)。计数启动后(GATE允许),在时钟脉冲CLK作用下,计数单元进行减1计数,直到计数值减到0,OUT输出端产生相应动作时,计数结束。计数初值寄存器的内容在计数过程中保持不变。需要读出当前计数值时,发锁存命令,锁存器锁定当前计数值,之后读出当前计数值。,10.2.38253外部特性,8253的引脚图,8253外部特性,8253的引脚分为两部分:1.与CPU连接的引脚CPU写入的命令D7D0:数据线(双向,三态),传送CPU写入的计数初值CPU读出的当前计数值:写信号,用于控制完成写操作:读信号,用于控制完成写操作A1、A0:地址线,用于寻址8253内部的4个端口:片选信号,用于选中8253芯片,表10.18253端口操作中各信号组合所实现的功能,8253外部特性,2.与外设的接口引脚CLK02:计数时钟,输入。用于输入定时脉冲或计数脉冲信号。GATE02:门控信号,输入。用于外部控制计数器的启动计数和停止计数的操作。OUT02:计数输出端。当计数器从初值开始完成计数操作时,OUT引脚上输出相应的信号。,10.2.48253方式控制字(CW),8253控制字的格式,例:选择2号计数器,工作在方式3,计数初值为533H(2个字节),采用二进制计数。设8253的端口地址为304H307H。则其初始化程序段为:MOVDX,307H;命令口MOVAL,10110110B;2号计数器的初始化命令字OUTDX,AL;写入命令寄存器MOVDX,306H;2号计数器数据口MOVAX,533H;计数初值OUTDX,AL;选送低字节到2号计数器MOVAL,AH;取高字节送ALOUTDX,AL;后送高字节到2号计数器,(1)工作方式编程举例,工作方式3为输出方波,10.2.58253控制字的应用,(2)读当前计数值,在事件计数器的应用中,需要读出计数过程中的当前计数值,以便根据这个值做计数判断。,例:要求读出并检查1号计数器的当前计数值是否是全“1”。设8253的端口地址为304H307H,假定只读低8位计数值。其程序段为:MOVDX,307H;命令口L:MOVAL,01000000B;1号计数器的锁存命令OUTDX,AL;写入命令寄存器MOVDX,305H;指向1号计数器数据端口INAL,DX;读1号计数器的当前计数值CMPAL,0FFH;比较JNEL;非全“1”,再读HLT;是全“1”,暂停,10.2.68253初始化编程,初始化编程的具体步骤为:1.写入计数器的控制字,规定其工作方式等;2.写入计数初值。若规定只写低8位,则写入的为计数值的低8位,高8位自动置0;若规定只写高8位,则写入的是计数值的高8位,低8位自动置0;若规定写16位计数值,则分两次写入,先写的必是低8位,后写的必是高8位。,解:1按要求找出所用计数器的控制字选计数器0只写低8位选工作方式0二进制计数选计数器1只写高8位选工作方式2BCD计数,0,0,0,1,0,0,0,0,0,1,1,0,0,1,0,1,例10.1:,某微机系统中8253的端口地址为40H43H,要求计数器0工作在方式0,计数初值为FFH,按二进制计数;计数器1工作在方式2,计数初值为1000,按BCD码计数。试写出初始化程序段。,计数器0的控制字:,计数器1的控制字:,例10.1:,2初始化程序段MOVAL,10H;写通道0控制字OUT43H,ALMOVAL,0FFH;写通道0计数初值OUT40H,ALMOVAL,65H;写通道1控制字OUT43H,ALMOVAL,10H;写通道1计数初值OUT41H,AL,例10.2:,设8253端口地址为FFF0HFFF3H,要求计数器2工作在方式5,二进制计数,初值为F03FH。试按上述要求完成8253的初始化。解:选计数器2写低8位选工作方式5二进制计数再写高8位,1控制字,例10.2:,2初始化程序段MOVDX,0FFF3H;DX指向控制端口MOVAL,0BAH;写控制字OUTDX,ALMOVDX,0FFF2H;DX指向通道2MOVAL,3FH;写初值低8全OUTDX,ALMOVAL,0F0H;写初值高8位OUTDX,AL,通常,在时钟脉冲CLK的上升沿,门控信号GATE被采样。对于一种给定的工作方式,门控信号的触发方式有具体规定,即或者用电平触发,或者用边沿触发。方式0、4中,门控信号为电平触发;方式1、5中,门控信号为上升沿触发;方式2、3中,既可用电平触发,也可用上升沿触发。在时钟脉冲的下降沿,计数器作减1计数。0是计数器所能容纳的最大值,因为用二进制计数时,16位计数器中,0相当于216;用BCD码计数时,0相当于104。,几条基本原则:控制字写入计数器时,所有的控制逻辑电路立即复位,输出端OUT进入初始状态(高电平或者低电平)。初值写入以后,要经过一个时钟上升沿和一个时钟下降沿,计数执行部件才开始计数。,10.2.78253工作方式,8253工作方式,工作方式及其特点8253中有三个独立的计数器,每个计数器都可编程选择六种工作方式之一。主要从三个方面区别这六种工作方式:其一是他们的输出波形不同;其二是启动计数器的触发方式不同;其三是计数过程中门控信号对计数操作的影响不同。,1.方式0-计数结束产生中断,正常计数,GATE影响,新的初值影响,方式0,方式0有如下3个特点:正常计数过程:写入控制字后的时钟上升沿OUT变低,当向计数器写完计数初值后,开始减1计数,在计数过程中输出端OUT一直保持低电平,当计数器减到0时,OUT立即变成高电平。门控信号的影响:门控信号GATE为高电平时,计数器工作;当GATE为低电平时,计数器停止工作,其计数值保持不变。如果门控信号GATE再次变高时,计数器从中止处继续计数。新的计数初值的影响:在计数器工作期间,如果重新写入新的计数值,计数器将按新写入的计数初值重新开始计数。,例1:使计数器T1工作在方式0,进行16位二进制计数,计数初值的高低字节分别为BYTEH和BYTEL。(设8253的端口地址为304H307H)其初始化程序段为:MOVDX,307H;命令口MOVAL,01110000B;方式字OUTDX,ALMOVDX,305H;T1数据口MOVAL,BYTEL;计数值低字节OUTDX,ALMOVAL,BYTEH;计数值高字节OUTDX,AL,2.方式1可重触发的单稳态触发器,图10.5方式1输出波形图,正常计数,GATE影响,新的初值影响,正常计数过程:写入控制字后的时钟上沿输出OUT变高,写入计数初值后,计数器并不立即开始工作;门控信号GATE有效(上升沿到来),使输出OUT变成低电平,同时才开始减1计数;直到计数器值减到0后,输出才变成高电平。门控信号的影响:在计数器工作期间,当GATE又出现一个上升沿时,计数器重新装入原计数初值并重新开始计数。新的计数初值的影响:如果工作期间对计数器写入新的计数初值,则要等到当前的计数值计满回零且门控信号再次出现上升沿后,才按新写入的计数初值开始工作。,方式1说明,例2:使计数器T2工作在方式1,进行8位二进制计数,并设计数初值的低8位为BYTEL。(设8253的端口地址为304H307H)其初始化程序段为MOVDX,307H;命令口MOVAL,10010010B;方式字OUTDX,ALMOVDX,306H;T2数据口MOVAL,BYTEL;低8位计数值OUTDX,AL,3.方式2分频器,方式2是一种自动装计数初值的N分频器。,图10.6方式2输出波形图,正常计数,GATE影响,新的初值影响,方式2说明:输出连续脉冲波正常计数过程:写入控制字后的时钟上沿输出OUT变高,写入计数初值后,计数器开始减1计数,减到1时OUT变成低电平,减到0时OUT又变成高电平,同时初值自动重新装入,并重复前一过程;门控信号的影响:在计数器工作期间,当GATE变为低电平时终止计数,而当GATE又恢复为高电平后,计数器重新装入原计数初值并重新开始计数。新的计数初值的影响:如果工作期间对计数器写入新的计数初值:GATE一直为高电平:新的初值下次有效则写入新的初值后,遇到GATE上升沿,新的初值立即有效,例3:使计数器T0工作在方式2,进行16位二进制计数。(设8253的端口地址为304H307H)其初始化程序段为MOVDX,307H;命令口MOVAL,00110100B;方式字OUTDX,ALMOVDX,304H;T0数据口MOVAL,BYTEL;低8位计数值OUTDX,ALMOVAL,BYTEH;高8位计数值OUTDX,AL,4.方式3方波发生器,方式3与方式2基本相同,也具有自动装入时间常数(计数初值)的功能。,图10.7方式3输出波形图,计数值为偶数,计数值为奇数,方式2OUT输出的是脉冲波方式3与方式2的不同之处:方式3OUT输出的是方波,说明:(1)工作在方式3,引脚OUT输出的是占空比为1:1或近似1:1的方波;当计数初值为偶数时,输出严格方波(输出脉冲占空比为50%)。当计数初值为奇数时,输出近似方波(输出脉冲占空比约为50%)。(2)由于方式3输出的波形是方波,并且具有自动重装计数初值的功能,因此,8253一旦计数开始,就会在输出端OUT输出连续不断的方波。,5.方式4软件触发的选通信号发生器,图10.8方式4输出波形图,正常计数,新的初值影响,GATE影响,方式4说明:输出单次单拍负脉冲(软件触发)正常计数过程:写入控制字后的时钟上沿输出OUT变高,写入计数初值后,计数器开始减1计数,减到0时OUT变低1个时钟周期,然后又恢复成高电平。门控信号的影响:在计数器工作期间,GATE=1允许计数,GATE=0禁止计数,输出OUT维持当时的电平,只有计数减到0时OUT才变低1个时钟周期,然后又恢复成高电平。新的计数初值的影响:任何时候对计数器写入新的计数初值,只要GATE=1,就会立即终止现行的计数过程,而按新写入的计数初值开始工作。,例4:使计数器T1工作于方式4,进行8位二进制计数,并且只装入高8位计数值。(设8253的端口地址为304H307H)其初始化程序段为:MOVDX,307H;命令口MOVAL,01101000B;方式字OUTDX,ALMOVDX,304H;T2数据口MOVAL,BYTEH;低8位计数值OUTDX,AL,6.方式5硬件触发的选通信号发生器,图10.9方式5输出波形图,正常计数,GATE影响,方式4由计数值触发计数器计数方式5与方式4的不同之处:方式5由GATE上升沿触发计数器计数,方式5工作特点1)在方式5下,当写入计数初值后,计数器并不立即开始计数,而要由门控信号的上升沿启动计数。2)在计数过程中(或者计数结束后),如果门控再次出现上升沿,计数器将从原装入的计数初值重新计数。3)新的计数初值要等到下一个门控信号的上升沿到来才能生效。,方式5说明:输出单次单拍负脉冲(硬件触发),6种工作方式的比较(参见表10.310.6),方式2(分频器)和方式3(方波发生器),这两种方式共同的特点是具有自动重加载功能(装入初值)。二者的区别在于:方式2在计数过程中输出高电平,而在每当减1至0时输出宽度为1个TCLK的负脉冲。方式3是在计数过程中,OUT的信号是占空比为1:1的方波或近似方波。,方式4(软件触发单脉冲)和方式5(硬件触发单脉冲)。这两种方式的OUT输出波形相同,两者的区别是计数启动的触发信号不同,前者由写初值启动计数,后者由GATE信号的上升沿启动计数)。,方式0(门控单稳)和方式1(门控单稳),这两种方式的输出波形类似。,各种工作方式的输出波形,8253工作方式,例:设8253的计数器0,工作在方式1,计数初值为2050;计数器1,工作在方式2,计数初值为3000;计数器2,工作在方式3,计数初值为1000。如果三个计数器的GATE都接高电平,三个计数器的CLK都接2MHz时钟信号,试画出OUT0、OUT1、OUT2的输出波形。,例:,分析:计数器0工作在方式1,即可编程的单脉冲方式。种方式下,计数的启动必须由外部门控脉冲GATE控制。因为GATE接了高电平,当方式控制字写入后OUT0变高,计数器无法启动,所以OUT0输出高电平。计数器1工作在方式2,即分频器的方式。输出波形的频率f=2MHz/3000=666.7HZ,其周期为1.5ms(1/666.70.0015),输出负脉冲的宽度等于CLK的周期为0.5s。(1/2000000=0.0000005)计数器2工作在方式3,即方波发生器的方式。输出频率f=2MHz/1000=2000Hz的对称方波。,三个OUT的输出波形如下:,11.2.88253应用举例,例10.3:IBM-PC/XT微机的某扩展板上使用一片8253,其端口地址为200H203H。要求从定时器0的输出端OUT0得到500Hz的方波信号,从定时器1的输出端OUT1得到50Hz的连续单拍负脉冲信号。已知系统提供的计数脉冲频率为250KHz,其硬件连接见图10.10。试编写初始化此8253的程序段。,图10.10例10.3的硬件连接图,1,1,1,0,0,0,A,A,7,D0,例10.3,解:1确定工作方式定时器0工作在方式3;定时器1工作在方式2。2计算计数初值计数初值=分频系数=fklc/fout定时器0:N0=fclk0/fout0=250000/500=500化为十六进制为01F4H。定时器1:N1=fclk1/fout1=500/50=10化成16进制为0AH。,例10.3,3确定控制字定时器0:定时器1:,0,0,1,1,0,1,1,0,选定时器0,先写低,8,位,选工作方式3,二进制计数,后写高,8,位,4初始化程序段MOVDX,203H;写定时器0控制字MOVAL,36HOUTDX,ALMOVDX,200H;写定时器0计数初值低8位MOCAL,0F4HOUTDX,ALMOVAL,01H;写定时器0计数初值高8位OUTDX,ALMOVDX,203H;写定时器1控制字MOVAL,54HOUTDX,ALMOVDX,201H;写定时器1计数初值MOVAL,0AHOUTDX,AL,例10.4:,某IBMPC/XT应用系统中,当某一外部事件发生时(给出一高电平信号),1秒钟后向主机申请中断。若用8253实现此延迟,试设计硬件连接图并对8253进行初始化。设8253的端口地址为40H43H。,图10.11例10.4硬件连接图,例10.4:,解:1确定工作方式若题目要求,OUT1输出的是连续方波,而OUT2端输出连续单拍负脉冲或高电平,则定时器1工作在方式3,定时器2必须工作在方式2或方式0。2计算计数初值若8253的定时器工作在方式2或方式3,实际上相当于分频器,即OUT端的输出信号频率是由CLK端的信号频率经定时器分频得到的,而分频系数就是从计数初值开始减到1时所计得的时钟周期数。那么,计数初值N就是定时器的分频系数所对应的数字。也就是说,存在如下关系式:计数初值=分频系数=fclk/fout,例10.4:,定时器1计数初值:,定时器2计数初值:00000000,分析:实现1秒定时,对应频率为1H

温馨提示

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

评论

0/150

提交评论