第9章定时计数器学习教案_第1页
第9章定时计数器学习教案_第2页
第9章定时计数器学习教案_第3页
第9章定时计数器学习教案_第4页
第9章定时计数器学习教案_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

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

文档简介

1、会计学1第第9章定时章定时(dn sh)计数器计数器第一页,共58页。 1. 软件定时方法: 由于执行每条指令都需要时间,故可循环执行某一段指令产生延迟时间。特点: 这种方法由于要完全占用(zhn yn)CPU的时间,因而降低了CPU的利用率,但硬件开销少,使用灵活。第1页/共57页第二页,共58页。例:某一例:某一LEDLED灯控系统,要求控制灯控系统,要求控制(kngzh)LED(kngzh)LED灯亮灯亮0.5s0.5s后熄灭。后熄灭。选择软件定时法,控制选择软件定时法,控制(kngzh)(kngzh)程序段如下:程序段如下:SUBCX,CXMOV AL,01H ; 灯亮控制灯亮控制(k

2、ngzh)码码OUTPORT,AL ;PORT为端口地址为端口地址L:LOOP L ;循环;循环216次,约次,约0.5秒秒MOVAL,00H ;灯灭控制;灯灭控制(kngzh)码码OUTPORT,AL LOOP指令(zhlng)执行占17个时钟周期,设时钟=2MHz,时钟周期=0.5us, 0.5us*17* 216= 0.5s。第2页/共57页第三页,共58页。 2. 纯硬件(yn jin)定时方法: 采用固定的电路,如可以采用小规模集成电路555,外接电阻和电容构成单稳延时电路。特点: 定时电路简单,而且通过改变电阻和电容,可以使定时在一定的范围内调整。 但使用不灵活。第3页/共57页第

3、四页,共58页。 3. 可编程硬件定时器/计数器 是目前在控制系统中广泛使用的方法,它通过编程来控制电路的定时值及定时范围(fnwi)。 在计算机系统中,象定时中断、定时检测、定时扫描等等都是用可编程定时器来完成定时控制的。特点: 功能强,使用灵活,定时时间精确(由软件设置),提高CPU的利用率。 第4页/共57页第五页,共58页。Intel 系列的系列的8253、8254就是常用的可编程定时就是常用的可编程定时/计数器。计数器。8253的主要性能:的主要性能:* 具有具有3个独立的个独立的16位计数器通道;位计数器通道;* 每个计数器均可按二进制或二每个计数器均可按二进制或二十进制计数;十进

4、制计数;* 每个计数器的计数速率高达每个计数器的计数速率高达2MHz (8254为为10MHZ) ;* 每个通道有每个通道有6种工作方式,可由程序设置和改变;种工作方式,可由程序设置和改变;* 所有的输入输出都与所有的输入输出都与TTL兼容兼容(jin rn)。 可用在多种场合,如方波发生器、分频器、实时时钟、事件计数等方面。可用在多种场合,如方波发生器、分频器、实时时钟、事件计数等方面。 第5页/共57页第六页,共58页。一、一、 8253的内部结构和引脚信号的内部结构和引脚信号内部结构内部结构 数据总线缓冲器数据总线缓冲器 它与它与CPU的数据总线相连,是的数据总线相连,是8位双向三态缓冲

5、器。位双向三态缓冲器。CPU通过这个缓冲器对通过这个缓冲器对8253进行读进行读/写操作。写操作。 读读/写控制逻辑写控制逻辑 有有CS、RD、WR、A0、A1信号。信号。 控制字寄存器控制字寄存器 只能写入只能写入, 初始化时由初始化时由CPU写入控制字来设置写入控制字来设置(shzh)计数器的工作方式。计数器的工作方式。 计数器计数器 3个独立的结构相同的个独立的结构相同的16位减法器,可作定时位减法器,可作定时/计数器使用;计数器可按二进制计数器使用;计数器可按二进制/BCD方式减法计数,从预置值减到零时,方式减法计数,从预置值减到零时,OUT端输出一信号。端输出一信号。第6页/共57页

6、第七页,共58页。图图9.1 Intel 8253的内部结构的内部结构数据 总 线缓冲 器读/写逻 辑控制 字寄 存器计 数器0计 数器1计 数器2RDWRCSA0A1CLK0GATE0OUT0CLK1GATE1OUT1CLK2GATE2OUT2D7D0第7页/共57页第八页,共58页。图图9.2 Intel 8253的外部的外部(wib)引脚图引脚图D7D6D5D4D3D2D1D0CLK0OUT0GATE0GNDOUT1GATE1CLK1GATE2CLK2A0A1OUT2WRRDCSVCC8253242322212019181716151413123456789101112第8页/共57页第

7、九页,共58页。 GATE:门控信号(xnho),当GATE为低电平时,禁止计数器工作; GATE为高电平时,才允许计数器工作。 CLK:计数脉冲输入。 OUT:脉冲输出。当计数到“0”时,从OUT端输出信号(xnho),输出信号(xnho)的波形取决于工作方式。 CS、RD、WR、A0、A1共同结合,用于对8253进行端口操作,如表9-1所示。第9页/共57页第十页,共58页。表表9-1 8253的端口选择的端口选择(xunz)CSRDWRA1A0寄存器选择和操作寄存器选择和操作0 1000写计数器写计数器001001写计数器写计数器101010写计数器写计数器201011写控制字寄存器写控

8、制字寄存器00100读计数器读计数器000101读计数器读计数器100110读计数器读计数器200111无操作无操作(三态三态)1禁止禁止(三态三态)011无操作无操作(三态三态)第10页/共57页第十一页,共58页。图图9.3 8253的控制的控制(kngzh)字字M2M1M0BCDRL0RL1SC0SC1D7D6D5D4D3D2D1D0(计数器选择计数器选择) 00:选择计数器:选择计数器0 01:选择计数器:选择计数器1 10:选择计数器:选择计数器2 11:非法选择:非法选择(读读/写格式写格式) 00:计数器锁存命令:计数器锁存命令 01:读:读/写高写高8位位 10:读:读/写低写

9、低8位位 11:先读:先读/写低写低8位,再读位,再读/写高写高8位位(数制选择数制选择) 0:二进制:二进制(0000FFFFH) 1:BCD (00009999H)(工作方式选择工作方式选择) 000: 方式方式0 001: 方式方式0 X10:方式:方式2 X11:方式:方式3 100 :方式:方式4 101: 方式方式5第11页/共57页第十二页,共58页。SC1SC1、SC0SC0:这两位决定这个控制字是哪一个计数器的控制字。:这两位决定这个控制字是哪一个计数器的控制字。RL1RL1、RL0RL0:设置数据读:设置数据读/ /写格式写格式(g shi)(g shi)。在读取计数值时,

10、可令。在读取计数值时,可令RL1RL1、RL0=00RL0=00,先将写控制字时的计数值锁存,然后再读取。,先将写控制字时的计数值锁存,然后再读取。M2M2、M1M1、M0M0:设置每个计数器的工作方式。:设置每个计数器的工作方式。BCDBCD:用于选择每个计数器的计数制。在二进制计数时,计数初值的范围是:用于选择每个计数器的计数制。在二进制计数时,计数初值的范围是0000H0000HFFFFHFFFFH,其中,其中0000H0000H是最大值,代表是最大值,代表6553665536。在。在BCDBCD码计数时,计数初值的范围中码计数时,计数初值的范围中0000 0000 9999H 9999

11、H,其中,其中,00000000是最大值,代表是最大值,代表1000010000。第12页/共57页第十三页,共58页。 Intel 8253的每个计数器都有6种工作方式。 6种方式的主要区别是:输出的波形不同,计数过程中GATE信号对计数操作的影响不同,启动计数器的触发方式不同等。1. 方式0计数结束中断(zhngdun)方式 该方式的波形如图9.4所示,这种方式的特点是: 第13页/共57页第十四页,共58页。* CW写入,写入,OUT=0;* 写入时常,通道开始写入时常,通道开始(kish)计数;计数;* 计数到零,计数到零,OUT=1;* 计数器只计数一遍;计数器只计数一遍;* OUT

12、是是N+1个个CLK后变高;后变高;* 计数过程中,计数过程中,GATE=0, 计数暂停;计数暂停;* 计数过程中可改变计数过程中可改变(gibin)计数值;计数值;* 可用可用OUT信号作为中断请求。信号作为中断请求。图图9.4 9.4 方式方式(fngsh)0(fngsh)0波形图波形图43210FFOUTGATE=1CLKWRCW=10LSB=432220FFOUTGATECLKWRCW=10LSB=31 置时常第14页/共57页第十五页,共58页。方式方式(fngsh)0计数过程中改变计数初值计数过程中改变计数初值GATEWRCLKOUTCW10 H N3N2321210第15页/共5

13、7页第十六页,共58页。 方式0特点: 写入控制字后,OUT输出端变为低电平。当写入计数初值后,计数器开始减1计数(相当于软件触发启动) 。直到计数到0时,OUT输出变为高电平。期间共记录n+1个脉冲,即: Tout n TCLK (该方式作定时(dn sh)用时不够准确) 但此信号可用于向CPU发出中断请求。 计数器只计数一遍。当计数到0时,不恢复计数初值,不开始重新计数,且输出一直保持为高电平。只有在写入新的计数值时,OUT才变低,并开始新的计数。第16页/共57页第十七页,共58页。 GATE是门控信号,GATE=1时允许(ynx)计数,GATE=0时,禁止计数。在计数过程中,如果GAT

14、E=0则计数暂停,当GATE=1后接着计数。 在计数过程中可改变计数值。第17页/共57页第十八页,共58页。* 写入控制写入控制(kngzh)字字OUT=1,写入常数不计数;,写入常数不计数;* GATE上升沿启动计数,上升沿启动计数,OUT=0,硬件触发;,硬件触发;* 计数到,计数到,OUT=1。*单拍脉冲宽度为单拍脉冲宽度为N;*由由GATE重新启动;重新启动;*计数中,可重新启动;计数中,可重新启动;*计数中,可改变计数值,再次计数中,可改变计数值,再次(zi c)启动时有效。启动时有效。二. 8253-PIT的工作方式3230FFOUTGATECLKWRCW=12LSB=31二.

15、8253-PIT的工作方式3230OUTGATECLKWRCW=12LSB=3121图图9.5 9.5 方式方式(fngsh)1(fngsh)1的波形图的波形图第18页/共57页第十九页,共58页。方式方式1 1特点:特点: 写入控制字后,输出写入控制字后,输出OUTOUT将保持为高电平,计数由将保持为高电平,计数由GATEGATE上升沿触发启动(相当于硬件触发启动)。上升沿触发启动(相当于硬件触发启动)。GATEGATE启动之后,启动之后,OUTOUT变为低电平,当计数到变为低电平,当计数到0 0时,时,OUTOUT输出高电平,从而在输出高电平,从而在OUTOUT端输出一个负脉冲,负脉冲的宽

16、度为端输出一个负脉冲,负脉冲的宽度为n n个个( (计数初值计数初值)CLK)CLK的脉冲宽度。的脉冲宽度。 Tout = n TCLK Tout = n TCLK (定时(定时(dn sh)(dn sh)准确)准确) 当计数到当计数到0 0后,不用送计数值,可再次由后,不用送计数值,可再次由GATEGATE脉冲启动脉冲启动, ,输出同样宽度的负的单脉冲。输出同样宽度的负的单脉冲。 第19页/共57页第二十页,共58页。 在计数过程中,可改变计数初值,此时计数过程不受影响。如果再次触发启动,则计数器将按新输入的计数值计数。 在计数未到0时,如果GATE再次启动,则计数初值将重新(chngxn)

17、装入计数器,并重新(chngxn)开始计数。第20页/共57页第二十一页,共58页。32OUTGATECLKWRCW=14LSB=332132图图9.6 方式方式(fngsh)2波形图波形图* 写入控制字写入控制字OUT=1;* 写入常数立即对写入常数立即对CLK计数计数(j sh);* 计数计数(j sh)到到1,OUT=0;* 一个一个CLK周期后,周期后,OUT=1,重新计数,重新计数(j sh)。* 通道连续工作不需重置时间常数;通道连续工作不需重置时间常数;* 计数过程计数过程(guchng)中,中,GATE=0,计数暂停,计数暂停,GATE变高后重新计数;变高后重新计数;* 计数过

18、程计数过程(guchng)中可改变计数值;新的计数值在下一次有效。中可改变计数值;新的计数值在下一次有效。321OUTGATE=1CLKWRCW=14LSB=33213第21页/共57页第二十二页,共58页。 方式2的特点是: 写入控制字后,输出将变为高电平。写入计数值后,计数立即开始。在计数过程中输出始终为高电平,直至计数器减到1时,输出将变为低电平。经过一个CLK周期,输出恢复(huf)为高,且计数器开始重新计数。因此,它能够连续工作,输出固定频率的脉冲。 如果计数值为N,则每输入N个CLK脉冲,输出一个脉冲。因此,相当于对输入脉冲的N分频。通过对N赋不同的初值,即可在输出端得到所需的频率

19、,起到频率发生器的作用。 第22页/共57页第二十三页,共58页。 计数过程可由门控脉冲控制。计数过程可由门控脉冲控制。 GATE=1 GATE=1允许计数,当允许计数,当GATE=0GATE=0时,暂停计数;当时,暂停计数;当GATEGATE变高自动恢复计数初值,重新开始变高自动恢复计数初值,重新开始(kish)(kish)计数。计数。 在计数过程中可以改变计数值,这对正在进行的计数过程没有影响。但在计数到在计数过程中可以改变计数值,这对正在进行的计数过程没有影响。但在计数到1 1时输出变低,经过一个时输出变低,经过一个CLKCLK周期后输出又变高,计数器将按新的计数值计数。周期后输出又变高

20、,计数器将按新的计数值计数。第23页/共57页第二十四页,共58页。 方式方式3 3的波形如图的波形如图9.79.7所示。它的特点是:所示。它的特点是: 输出为周期输出为周期(zhuq)(zhuq)性的方波。若计数值为性的方波。若计数值为N N,则输出方波的周期,则输出方波的周期(zhuq)(zhuq)是是N N个个CLKCLK脉冲的宽度。脉冲的宽度。图图9.7 方式方式(fngsh)3波形波形WRCLKGATEOUTCW16 N44242424第24页/共57页第二十五页,共58页。 与方式2的区别在于(ziy):输出为周期是N个CLK脉冲的方波。 若计数值为偶数,则输出对称方波。每个CLK

21、使计数值减2,计到0,OUT改变状态,重装计数值开始新的计数。如果计数值为奇数,则前(N+1)/2个CLK脉冲期间输出为高电平,后(N-1)/2个CLK脉冲期间输出为低电平。 GATE信号能使计数过程重新开始。GATE=1允许计数,GATE=0禁止计数。停止后OUT将立即变高开,当GATE再次变高以后,计数器将重新装入计数初值,重新开始计数。第25页/共57页第二十六页,共58页。方式方式4 4的波形如图的波形如图9.89.8所示,这种方式的特点是:所示,这种方式的特点是: 写入控制字后,输出为高电平。写入计数值后立即开始计数(相当于软件触发启动),当计数到写入控制字后,输出为高电平。写入计数

22、值后立即开始计数(相当于软件触发启动),当计数到0 0后,输出一个时钟周期的负脉冲,计数器停止计数。只有在输入新的计数值后,才能开始新的计数。后,输出一个时钟周期的负脉冲,计数器停止计数。只有在输入新的计数值后,才能开始新的计数。 当当GATE=1GATE=1时,允许计数,而时,允许计数,而GATE=0GATE=0,禁止计数。,禁止计数。GATEGATE信号不影响输出。信号不影响输出。 在计数过程中,如果改变计数值,则按新计数值重新开始计数。如果计数值是在计数过程中,如果改变计数值,则按新计数值重新开始计数。如果计数值是1616位,则在设置第一位,则在设置第一(dy)(dy)字节时停止计数,在

23、设置第二字节后,按新计数值中开始计数。字节时停止计数,在设置第二字节后,按新计数值中开始计数。第26页/共57页第二十七页,共58页。图图9.8 方式方式(fngsh)4波形波形WRCLKGATEOUTCW18N33210第27页/共57页第二十八页,共58页。方式方式5 5的波形如图的波形如图9.99.9所示,这种方式的特点是:所示,这种方式的特点是: 写入控制字后,输出为高电平。在设置了计数值后,计数器并不立即开始计数,而是由门控脉冲的上升沿触发启动。当计数到写入控制字后,输出为高电平。在设置了计数值后,计数器并不立即开始计数,而是由门控脉冲的上升沿触发启动。当计数到0 0时,输出一个时,

24、输出一个CLKCLK周期的负脉冲,并停止计数。当门控脉冲再次触发时才能再计数。周期的负脉冲,并停止计数。当门控脉冲再次触发时才能再计数。 在计数过程中如果再次用门控脉冲触发,则使计数器重新开始计数,此时输出还保持为高电平,直到计数为在计数过程中如果再次用门控脉冲触发,则使计数器重新开始计数,此时输出还保持为高电平,直到计数为0 0,才输出负脉冲。,才输出负脉冲。 如果在计数过程中改变如果在计数过程中改变(gibin)(gibin)计数值,只要没有门控信号的触发,不影响计数过程。当有新的门控脉冲的触发时,不管是否计数到计数值,只要没有门控信号的触发,不影响计数过程。当有新的门控脉冲的触发时,不管

25、是否计数到0 0,都按新的计数值计数。,都按新的计数值计数。第28页/共57页第二十九页,共58页。图图9.9 方式方式(fngsh)5波形波形WRCLKGATEOUTCW1A N33210第29页/共57页第三十页,共58页。1. 输出输出(shch)端端OUT的初始状态的初始状态 只有方式只有方式0是在写入控制字后输出是在写入控制字后输出(shch)为低,其它均为高;为低,其它均为高;2. 计数值的设置计数值的设置 任一种任一种(y zhn)方式,只有在写入计数值后才能开始计数,方式方式,只有在写入计数值后才能开始计数,方式0、2、3、4在写入计数值后,计数自动开始,方式在写入计数值后,计

26、数自动开始,方式1、5需外部触发,才开始计数。需外部触发,才开始计数。 方式方式0、1、4初始化后仅有效一次。方式初始化后仅有效一次。方式2、3、5会在计数器减为会在计数器减为0时,自动将初值再装入。时,自动将初值再装入。 6种方式各有特点,适用于不同的应用场合。方式种方式各有特点,适用于不同的应用场合。方式0,1相似,方式相似,方式2,3相似,方式相似,方式4,5相似。相似。第30页/共57页第三十一页,共58页。计数值计数值N与输出与输出(shch)波形的关系波形的关系方式功能N与输出波形的关系0计完最后一个数中断 写入计数值N后,经过N+1 个CLK脉冲输出变高1硬件再触发单拍脉冲 单拍

27、负脉冲的宽度为N个CLK脉冲2速率发生器 N个CLK脉冲,输出宽度为一个CLK周期的负脉冲3方波速率发生器写入N后,输出N /2 个CLK高电平,N /2 个CLK低电平(N为偶数) ; (N+1)/2 个 CLK 高电平, (N-1)/2 个 CLK 低电平(N为奇数)4软件触发选通 写入N后,过N+1 个CLK,输出宽度为一个CLK的负脉冲5硬件触发选通 门控触发后过N+1 个CLK,输出宽度为一个CLK的负脉冲第31页/共57页第三十二页,共58页。3. 门控信号的作用:门控信号的作用:GATE输入总是在输入总是在CLK输入时钟的上升沿被采样输入时钟的上升沿被采样(ci yn)。在方式。

28、在方式0,2,3,4中,中,GATE输入是电平起作用。在方式输入是电平起作用。在方式1,2,3,5中中 GATE输入是上升沿起作用的。输入是上升沿起作用的。GATE方式功 能低或变为低上升沿高0计完最后一个数中断禁止计数_允许计数1硬件再触发单拍脉冲-启动计数下一个 CLK 脉冲使输出变低-2速率发生器禁止计数立即使输出为高重新装入计数值启动计数允许计数3方波速率发生器禁止计数立即使输出为高启动计数允许计数4软件触发选通禁止计数-允许计数5硬件触发选通-启动计数-第32页/共57页第三十三页,共58页。82538253的初始化编程步骤的初始化编程步骤 接通电源时接通电源时82538253处于未

29、定义状态,必须首先对其进行处于未定义状态,必须首先对其进行(jnxng)(jnxng)初始化,初始化步骤(分别对每个计数器进行初始化,初始化步骤(分别对每个计数器进行(jnxng)(jnxng)):): 写控制字。写控制字。 写计数初值,如果计数值是写计数初值,如果计数值是1616位的,则先写低位的,则先写低8 8位再写高位再写高8 8位。位。* 对对3个通道的编程没有先后顺序的规定,只要个通道的编程没有先后顺序的规定,只要(zhyo)符合先写入控制字,后写入计数初值的规定即可。符合先写入控制字,后写入计数初值的规定即可。第33页/共57页第三十四页,共58页。 例:设一个8253在某系统中的

30、端口地址40H43H,如果要将计数器0设置为工作(gngzu)方式3,计数初值为3060H,采用二进制计数法,则初始化方法如下:MOVAL,36H;设置控制字00110110(计数器0,方式3,写两个字节,二进制计数)OUT43H,AL;写入控制寄存器MOVAX,3060H;设置计数值OUT40H,AL;写低8位至计数器0MOVAL,AHOUT40H,AL;写高8位至计数器0第34页/共57页第三十五页,共58页。例例1:某:某8253端口地址为端口地址为F8HFBH,欲用通道,欲用通道0以方式以方式1,按,按BCD计数计数(j sh),计数,计数(j sh)值为值为5080。1.确定确定(q

31、udng)通道控制通道控制字;字;2.计数值的低计数值的低8位为位为80;3.计数值的高计数值的高8位为位为50。00110011初始化程序初始化程序(chngx)为为:MOV AL,33HOUT 0FBH,ALMOV AL,80HOUT 0F8H,ALMOV AL,50HOUT 0F8H,AL在计数过程中,在计数过程中,8253读计数器现行值的方法:(将读计数器现行值的方法:(将计数值存入内部锁存器)计数值存入内部锁存器)MOV AL,03H ;计数器;计数器0的锁存命令的锁存命令OUT 0FBH,AL;写入控制寄存器;写入控制寄存器IN AL,0F8H ;读低;读低8位位MOV CL,AL

32、 ;存入;存入CL中中IN AL,0F8H ;读高;读高8位位MOV CH,AL ;存入;存入CH中中8253的应用举例的应用举例第35页/共57页第三十六页,共58页。A4A3A0A5M/IOA7A6A9A8G1G2BG2ACBAY4A2A1RDWRD7D0GATE0OUT0CLK0CLK1CLK2GATE1OUT1GATE2OUT2A1A0RDWRD7D0CS1MHz方波5V2KHz方波1ms的负脉冲单脉冲8086CPU74LS138例例2:用:用8253产生各种定时波形。产生各种定时波形。第36页/共57页第三十七页,共58页。例例2:用:用8253产生各种产生各种( zhn)定时波形。

33、定时波形。要求:要求: (1)通道)通道(tngdo)0输出频率为输出频率为2KHz的方波;的方波;(2)通道)通道(tngdo)1产生宽度为产生宽度为1ms的负脉冲;的负脉冲;(3)通道)通道(tngdo)2以硬件方式触发,输出单脉冲时间常数为以硬件方式触发,输出单脉冲时间常数为26。已知:已知:8253基地址基地址(dzh)为为310H,3通道所用时钟脉冲频率为通道所用时钟脉冲频率为1MHz。分析:分析:通道通道0工作于方式工作于方式3,控制端,控制端GATE0接接+5V,时间常数,时间常数N0=1MHz/2KHz=500;通道通道1工作于方式工作于方式1,由控制端,由控制端GATE1的正

34、跳变触发,的正跳变触发,OUT1的宽度为时常,单次触发,时间常数的宽度为时常,单次触发,时间常数N1=1ms/0.001ms=1000;通道通道2工作于方式工作于方式5,由控制端,由控制端GATE2的正跳变触发,可连续触发,时间常数的正跳变触发,可连续触发,时间常数N2=26。第37页/共57页第三十八页,共58页。;通道;通道(tngdo)0初始化程初始化程序序MOV DX,316HMOV AL, 00110111BOUT DX,ALMOV DX,310H MOV AL,00HOUT DX,ALMOV AL,05HOUT DX,AL;通道;通道(tngdo)1初始化程序初始化程序MOV DX

35、,316HMOV AL, 01110011BOUT DX,ALMOV DX,312H MOV AL,00HOUT DX,ALMOV AL,10HOUT DX,AL;通道;通道(tngdo)2初始化程序初始化程序MOV DX,316HMOV AL, 10011011BOUT DX,ALMOV DX,314H MOV AL,26HOUT DX,AL第38页/共57页第三十九页,共58页。例例3:8253控制控制(kngzh)LED。要求:。要求:LED点亮点亮10秒,熄灭秒,熄灭10秒。秒。分析:分析: 8253的地址线与的地址线与CPU高高8位数据线位数据线D8D15相连,相连,8253的各端口

36、的地址为的各端口的地址为81H、83H、85H、87H。OUT1输出占空比为输出占空比为1:1的方波,周期的方波,周期20秒。秒。 8253端口端口1工作工作(gngzu)在方式在方式3。 时钟频率为时钟频率为2MHz时,时,16位计数通道的最大定时位计数通道的最大定时(dn sh)时间为:时间为:0 .5s65536=32.768ms分频系数:分频系数:2MHz/0.05Hz=40,000,000级连:级连:通道通道0输出输出400Hz脉冲(时常脉冲(时常5000),),通道通道1输出输出0.05Hz方波(时常方波(时常8000)。)。D7-D0WR RD A1 A0 CSCLK0OUT0C

37、LK1OUT1译码译码WRRDA2A1M/ IOA0-A7+5VD8-D15GATE0GATE12MHz第39页/共57页第四十页,共58页。;通道;通道(tngdo)0初始化程序初始化程序MOV AL, 00110101BOUT 87H,ALMOV AL,00HOUT 81H,ALMOV AL,50HOUT 81H,AL;通道;通道(tngdo)1初始化程序初始化程序MOV AL, 01110111BOUT 87H,ALMOV AL,00HOUT 83H,ALMOV AL,80HOUT 83H,AL 因单通道最大分频系数为因单通道最大分频系数为65536,所以,所以(suy)需用几个通道级连

38、的方法来解决这个问题。需用几个通道级连的方法来解决这个问题。通道通道0:CLK0:接:接2MHz时钟信号,方式时钟信号,方式2,N0=5000;通道通道1:CLK1:接:接OUT0,方式,方式3,N1=8000;第40页/共57页第四十一页,共58页。例例4:用:用8253设计一个自动计数系统(计数设计一个自动计数系统(计数500向向CPU提出中断提出中断(zhngdun)申请)。申请)。8253端口地址:端口地址: F0H, F2H, F4H, F6H,8253工作工作(gngzu)方式:计数器方式:计数器1工作工作(gngzu)于方式于方式0,按,按BCD计数,先读写低字节,后读写高字节。

39、计数,先读写低字节,后读写高字节。D7-D0OUT1 WR RD A1 A0 CSGATE1CLK1译码译码8259IR0WRRDA2A1M/IOAB+5V+5V+5V第41页/共57页第四十二页,共58页。;通道;通道(tngdo)1初始化程序初始化程序MOV AL, 01110001BOUT 0F6H, ALMOV AL, 99HOUT 0F2H, ALMOV AL, 04HOUT 0F2H, AL;方法;方法2读通道读通道1计数值计数值(shz)程序程序MOV AL, 01000000BOUT 0F6H, ALIN AL, 0F2HMOV AH, ALIN AL, 0F2HXCHG AH

40、, AL当前计数值的读取当前计数值的读取 (1)利用)利用GATE控制信号,使控制信号,使计数器停止计数器停止(tngzh)计数。故干扰计数。故干扰了计数过程,需要硬件电路配合。了计数过程,需要硬件电路配合。 (2)利用计数器锁存命令锁存)利用计数器锁存命令锁存现行计数值,就可从相应的计数器现行计数值,就可从相应的计数器通道中读取计数值。通道中读取计数值。第42页/共57页第四十三页,共58页。82538253在在IBM PC/XTIBM PC/XT机的应用机的应用 在在IBM PC/XTIBM PC/XT机中,机中,82538253主要提供系统时钟中主要提供系统时钟中断、动态断、动态RAMR

41、AM的刷新定时及喇叭发声控制等功能。的刷新定时及喇叭发声控制等功能。82538253的初始化是在计算机启动时由的初始化是在计算机启动时由BIOSBIOS完成的。完成的。 从从82848284时钟发生器来的频率时钟发生器来的频率2.386364MHZ2.386364MHZ经二分经二分(r fn)(r fn)频后作为频后作为82538253三个计数器的时钟输入,三个计数器的时钟输入,82538253在在IBM-PC/XTIBM-PC/XT中的端口地址为中的端口地址为40H43H40H43H,这三个计数器,这三个计数器在系统中的初始化程序如下:在系统中的初始化程序如下:第43页/共57页第四十四页,

42、共58页。8253在在IBM-PC/XT机的应用机的应用(yngyng)的示意图的示意图CLK0CLK1CLK2GATE0GATE1GATE2OUT0OUT1OUT2INTIROQQ&滤波&PB0PB182555 V1.193182 MHz825382595 V8088 CPUDMA 控制器CP第44页/共57页第四十五页,共58页。计数器计数器0 0用于定时中断(约用于定时中断(约55ms55ms) OUT0(f=1.19318MHz/65536=18.2Hz OUT0(f=1.19318MHz/65536=18.2Hz的方波的方波) )经系经系统板上的统板上的IRQ0IRQ

43、0送到送到82598259的的IR0,IR0,使计算机每秒钟产生使计算机每秒钟产生18.218.2次的中断(即每隔次的中断(即每隔55ms55ms申请一次),申请一次),CPUCPU可以此可以此作为时间基准。如计作为时间基准。如计6553665536次中断就为次中断就为1 1小时。小时。MOVMOVAL,36H AL,36H ;计数器;计数器0 0,方式,方式3 3,写两,写两个个(lin )(lin )字节,二进制计数字节,二进制计数OUTOUT43H,AL 43H,AL ;控制字送控制字寄存器;控制字送控制字寄存器MOVMOVAL,0 AL,0 ;计数值为最大值;计数值为最大值OUTOUT

44、40H,AL 40H,AL ;写低;写低8 8位位OUTOUT40H,AL 40H,AL ;写高;写高8 8位位第45页/共57页第四十六页,共58页。计数器计数器1 1用于定时(用于定时(15s15s)DMADMA请求请求 8253 8253通道通道1 1和和82378237通道通道0 0构成刷新电路,构成刷新电路, 8253 8253通道通道1 1每隔每隔15us15us请求一次请求一次DMADMA读操作。读操作。f=1/15us=66666.67Hz,f=1/15us=66666.67Hz,故分频系数故分频系数= 1193180Hz/66666.67Hz=18(= 1193180Hz/66666.67Hz=18(即初值即初值) )MOVMOVAL,54H AL,54H ;计数器;计数器1 1,方式,方式(fngsh)2(fngsh)2,只,只写低写低8 8位,二进制计数位,二进制计数OUTOUT43,AL43,ALMOVMOVAL,12H AL,12H ;初值为;初值为1818OUTOU

温馨提示

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

评论

0/150

提交评论