可变程计数器8253及其应用课件

上传人:枫** 文档编号:567954364 上传时间:2024-07-22 格式:PPT 页数:51 大小:279KB
返回 下载 相关 举报
可变程计数器8253及其应用课件_第1页
第1页 / 共51页
可变程计数器8253及其应用课件_第2页
第2页 / 共51页
可变程计数器8253及其应用课件_第3页
第3页 / 共51页
可变程计数器8253及其应用课件_第4页
第4页 / 共51页
可变程计数器8253及其应用课件_第5页
第5页 / 共51页
点击查看更多>>
资源描述

《可变程计数器8253及其应用课件》由会员分享,可在线阅读,更多相关《可变程计数器8253及其应用课件(51页珍藏版)》请在金锄头文库上搜索。

1、第第8章章 可编程计数器可编程计数器/定时器定时器8253及其应用及其应用2、可编程计数器、可编程计数器/定时器定时器(1). 计数器:计数器:(2). 定时器定时器1、微机定时方法、微机定时方法 (1). 软件定时软件定时延迟子程序,占用延迟子程序,占用CPU时间时间 (2). 硬件定时硬件定时用计数器用计数器/定时器定时器8253 一、微机定时方法一、微机定时方法 1. 软件定时软件定时延迟子程序延迟子程序 2. 硬件定时硬件定时用计数器用计数器/定时器定时器8253 二、可编程计数器二、可编程计数器/定时器的工作原理定时器的工作原理 功能功能:一是为计数;一是为定时。:一是为计数;一是为

2、定时。 8253的用处的用处:1)在多任务的分时系统中用来作为中断信号实)在多任务的分时系统中用来作为中断信号实 现程序的切换;现程序的切换;2)可以往)可以往I/O设备输出精确的定时信号;设备输出精确的定时信号;3)作为一个可编程的波特率发生器;)作为一个可编程的波特率发生器;4)实现时间延时。)实现时间延时。第第8章章 可编程计数器可编程计数器/定时器定时器8253及其应用及其应用z计数器计数器/定时器定时器8253特点特点z 三个通道,可单独使用三个通道,可单独使用z片内寻址片内寻址z A1 A0= 00、01、10、11z 对应:通道对应:通道0、1、2和控制口地址和控制口地址z工作方

3、式:工作方式:6种种8-1 8253的工作原理一、一、8253的内部结构和引脚信号的内部结构和引脚信号1.数据总线缓冲器数据总线缓冲器 往计数器设置计数初值;往计数器设置计数初值; 从计数器读取计数值;从计数器读取计数值; 往控制寄存器设置控制字。往控制寄存器设置控制字。2.读读/写逻辑电路写逻辑电路 A1 A0:端口选择:端口选择 0 0:通道:通道0(0号计数器)号计数器) 0 1:通道:通道1(1号计数器)号计数器) 1 0:通道:通道2(2号计数器)号计数器) 1 1:控制字寄存器:控制字寄存器3.通道通道0、通道、通道1、通道、通道2 计数器计数器0:CLK0计数器计数器0的时钟输入

4、。的时钟输入。 GATE0计数器计数器0的门脉冲控制输入。的门脉冲控制输入。OUT0计数器计数器0的输出。的输出。 计数器计数器1:CLK1,GATE1,OUT1 计数器计数器2: CLK2,GATE2,OUT28253 编程结构z 4. 控制寄存器控制寄存器 8253控制寄存器的格式控制寄存器的格式 SC1 SC0 RW1 RW0 M2 M1 M0 BCD1-计数值为BCD码格式0-计数值为二进制格式M2 M1 M0 模式选择 0 0 0 模式0 0 0 1 模式1 x 1 0 模式2 x 1 1 模式3 1 0 0 模式4 1 0 1 模式50 0-对计数器进行锁存0 1-只读/写低8位字

5、节 1 0-只读/写高8位字节1 1-先读/写低8位字节, 再读/写高8位字节.0 0-选计数器00 1-选计数器11 0-选计数器21 1-无意义z8253内部包含内部包含3个完全相同的计数器定个完全相同的计数器定时器通道,对时器通道,对3个通道的操作完全是独立的。个通道的操作完全是独立的。z每个通道都包含一个每个通道都包含一个8位的控制字寄存器、位的控制字寄存器、一个一个16位的计数初值寄存器、一个计数器位的计数初值寄存器、一个计数器执行部件执行部件(实际的计数器实际的计数器)和一个和一个16位的输位的输出锁存器。出锁存器。z执行部件实际上是一个执行部件实际上是一个16位的减法计数器,位的

6、减法计数器,不能直接对其进行读写操作。不能直接对其进行读写操作。z对计数器对计数器02的写入操作实际是写各自的的写入操作实际是写各自的计数初值寄存器。计数初值寄存器。z对计数器对计数器02的读出操作实际是读各自的的读出操作实际是读各自的计数输出锁存器,计数输出锁存器的值常计数输出锁存器,计数输出锁存器的值常跟随计数执行部件变化。跟随计数执行部件变化。z计数初值寄存器和输出锁存器都是计数初值寄存器和输出锁存器都是16位寄位寄存器,它们均可被分成高存器,它们均可被分成高8位和低位和低8位两个位两个部分来读写。部分来读写。z执行部件自身能够从初值寄存器获得计数执行部件自身能够从初值寄存器获得计数初始

7、值,并能把当前的计数值锁存到输出初始值,并能把当前的计数值锁存到输出锁存器中,必要时锁存器中,必要时CPU可对它执行读操作,可对它执行读操作,以了解某个时刻计数器的瞬时值。以了解某个时刻计数器的瞬时值。z每个通道工作时,都是对输入到每个通道工作时,都是对输入到CLK引脚上引脚上的脉冲按二进制或十进制的脉冲按二进制或十进制(BCD码码)格式进行格式进行计数。计数。z计数采用倒计数法,先对计数器预置一个计数采用倒计数法,先对计数器预置一个初值,再把初值装入实际的计数器。初值,再把初值装入实际的计数器。z装入初始值的方法有两种:在门控信号装入初始值的方法有两种:在门控信号GATE从低电平变为高电平的

8、上升沿时刻,从低电平变为高电平的上升沿时刻,会把初值寄存器的内容送到执行部件;会把初值寄存器的内容送到执行部件;z而当而当GATE保持不变时,在对初值寄存器进保持不变时,在对初值寄存器进行写入操作后,在下一个行写入操作后,在下一个CLK的下降沿把初的下降沿把初值寄存器的内容送到执行部件。值寄存器的内容送到执行部件。z然后,开始递减计数。即每输入一个时钟然后,开始递减计数。即每输入一个时钟脉冲,计数器的值减脉冲,计数器的值减1,当计数器的值减为,当计数器的值减为预定的数值时,便从预定的数值时,便从OUT引脚输出一个脉引脚输出一个脉冲信号。冲信号。z输出信号的波形主要由工作模式决定,同输出信号的波

9、形主要由工作模式决定,同时还受到从外部加到时还受到从外部加到GATE引脚上的门控信引脚上的门控信号控制,它决定是否允许计数。号控制,它决定是否允许计数。z当用当用8253作外部事件计数器时,在作外部事件计数器时,在CLK脚脚上所加的计数脉冲是由外部事件产生的,这上所加的计数脉冲是由外部事件产生的,这些脉冲的间隔可以是不相等的。些脉冲的间隔可以是不相等的。z如果要用它作定时器,则如果要用它作定时器,则CLK引脚上应输入引脚上应输入精确的时钟脉冲。这时,精确的时钟脉冲。这时,8253所能实现的所能实现的定时时间,决定于计数脉冲的频率和计数器定时时间,决定于计数脉冲的频率和计数器的初值,即:的初值,

10、即:定时时间定时时间t 时钟脉冲周期时钟脉冲周期T 所计时钟脉冲个数所计时钟脉冲个数 时钟脉冲周期时钟脉冲周期T 预置的计数初值预置的计数初值nz例如:在某系统中,例如:在某系统中,8253所使用的计数脉所使用的计数脉冲频率为冲频率为0.5MHz,即脉冲周期,即脉冲周期T2s,如,如果给果给8253的计数器预置的初值的计数器预置的初值n500,则,则当计数器计到数值为当计数器计到数值为0时,定时时间时,定时时间t2s5001ms。二、二、 初始化编程步骤和门控信号的功能初始化编程步骤和门控信号的功能1、8253的初始化编程步骤的初始化编程步骤(1)写入控制字写入控制字1.用输出指令向控制字寄存

11、器写入一个控制字,以选用输出指令向控制字寄存器写入一个控制字,以选定计数器通道,规定该计数器的工作模式和计数格定计数器通道,规定该计数器的工作模式和计数格式。式。2.写入控制字还起到复位作用,使输出端写入控制字还起到复位作用,使输出端OUT变为初变为初始状态,并使计数器清始状态,并使计数器清0。 3.三个计数通道共用同一个控制字端口地址:三个计数通道共用同一个控制字端口地址:A1 A0=1 1,用控制字的标志位,用控制字的标志位SC1 SC0 区别不同通道。区别不同通道。对对3个计数器通道的编程没有先后顺序的规定。个计数器通道的编程没有先后顺序的规定。对每个计数器的编程先写入控制字,后写入计数

12、初值。对每个计数器的编程先写入控制字,后写入计数初值。(2)写入计数初值写入计数初值1.用输出指令向选中的计数器端口地址中写入一个计数初值,用输出指令向选中的计数器端口地址中写入一个计数初值,初值设置时要符合控制字中有关格式的规定。初值设置时要符合控制字中有关格式的规定。2.初值可以写入初值可以写入8位数据,也可以写入位数据,也可以写入16位数据。若是位数据。若是8位数,位数,只要用一条输出指令就可完成初值的设置。只要用一条输出指令就可完成初值的设置。3.如果是如果是16位数,则必须用两条输出指令来完成,规定先送位数,则必须用两条输出指令来完成,规定先送低低8位数据,后送高位数据,后送高8位数

13、据。位数据。4.由于计数器是先减由于计数器是先减1,再判断计数值是否为零,所以写入计,再判断计数值是否为零,所以写入计数初值为数初值为0,实际就等于,实际就等于10000H,在二进制计数时,它表,在二进制计数时,它表示示65536,BCD计数时,它表示计数时,它表示10000。 例:在某微机系统中,例:在某微机系统中,8253的的3个计数器的端口地址个计数器的端口地址分别为分别为3F0H、3F2H和和3F4H,控制字寄存器的端口地,控制字寄存器的端口地址为址为3F6H,要求,要求8253的通道的通道0工作于模式工作于模式3,并已知对,并已知对它写入的计数初值它写入的计数初值n1234H,则初始

14、化程序为:,则初始化程序为:MOV AL, 00110111B;控制字;选择通道;控制字;选择通道0, 先读写低字节,后高字先读写低字节,后高字节节MOV DX, 3F6H ;指向控制口;指向控制口OUT DX, AL ;送控制字;送控制字MOV AL, 34H ;计数值低字节;计数值低字节MOV DX, 3FDH ;指向计数器;指向计数器0端口端口0UT DX, AL ;先写入低字节;先写入低字节MOV AL, 12H ;计数值高字节;计数值高字节OUT DX, AL ;后写入高字节;后写入高字节三、三、 8253 8253的工作模式的工作模式 (1)方式)方式0计数结束产生中断计数结束产生

15、中断 一次定时或计数一次定时或计数,重写初值重写初值,启动新一轮的计数启动新一轮的计数 (2)方式)方式1可编程的单脉冲可编程的单脉冲(单稳单稳)触发器触发器 GATE边沿触发边沿触发,启动新一轮计数启动新一轮计数 (3)方式)方式2分频器分频器(速度波发生器速度波发生器) 具有计数具有计数初值重装初值重装能力能力 (4)方式)方式3方波发生器方波发生器 具有计数具有计数初值重装初值重装能力能力 (5)方式)方式4软件触发的选通信号发生器软件触发的选通信号发生器 一次定时一次定时,重写初值重写初值,启动新一轮的计数启动新一轮的计数 (6)方式)方式5硬件触发的选通信号发生器硬件触发的选通信号发

16、生器 GATE边沿触发新一轮计数边沿触发新一轮计数方式方式0计数结束产生中断计数结束产生中断模式模式0 注:注:计数结束产生中断计数结束产生中断在在GATE=1时,执行部件获得初值之后便开始计数。时,执行部件获得初值之后便开始计数。在计数过程中,如果在计数过程中,如果GATE=0,则暂停计数,但不,则暂停计数,但不影响影响OUT的状态;的状态;当当GATE=01,执行部件从刚才暂停的计数值继,执行部件从刚才暂停的计数值继续计数,直到计数结束,续计数,直到计数结束,OUT=1;在计数过程中,如果写入新的计数初值,则停止在计数过程中,如果写入新的计数初值,则停止计数,在下一个计数,在下一个CLK脉

17、冲下降沿后,新的初值送脉冲下降沿后,新的初值送到计数执行部件,此后,计数器按新的初值重新到计数执行部件,此后,计数器按新的初值重新计数。计数。按模式按模式0进行计数时,计数器只计一遍。当计数器进行计数时,计数器只计一遍。当计数器计到计到0时,不会自动再装入初值重新开始计数,其时,不会自动再装入初值重新开始计数,其输出将保持高电平。输出将保持高电平。方式方式1单稳态输出单稳态输出高高在计数过程中,若在计数过程中,若GATE产生负跳变或等于低电平,产生负跳变或等于低电平,不会影响计数过程的进行。但若在计数器回零前,不会影响计数过程的进行。但若在计数器回零前,GATE又产生从低到高的正跳变,则又产生

18、从低到高的正跳变,则8253又将初值又将初值N装入计数器执行部件,重新开始计数,其结果会装入计数器执行部件,重新开始计数,其结果会使输出的单脉冲宽度加宽。使输出的单脉冲宽度加宽。 在计数过程中,写入新的计数初值,不影响当前计在计数过程中,写入新的计数初值,不影响当前计数过程,除非再来一个数过程,除非再来一个GATE上升沿,则就会装入上升沿,则就会装入新的初值,重新开始计数。新的初值,重新开始计数。 可以通过可以通过GATE上升沿多次触发计数过程。上升沿多次触发计数过程。 模式模式1 注:注:单脉冲单脉冲(单稳单稳)触发器触发器 方式方式2分频器分频器模式模式2 注:注:分频器分频器在在计计数数

19、过过程程中中,当当GATE变变为为低低电电平平时时,将将迫迫使使OUT变变为为高高电电平平,并并禁禁止止计计数数;GATE从从低低电电平平变变为为高高电电平平,也也就就是是GATE端端产产生生上上升升沿沿时时,则则在在下下一一个个时时钟钟脉脉冲冲时时,把把预预置置的的计计数数初初值值装装入入计计数数器器,从从初初值值开开始始递递减减计计数数。门门控控信信号号GATE可可用用来来使多个计数器同步。使多个计数器同步。 在在操操作作过过程程中中,任任何何时时候候都都可可由由CPU重重新新写写入入新新的计数值,它不会影响当前计数过程的进行。的计数值,它不会影响当前计数过程的进行。 模模式式2具具有有自

20、自动动重重装装初初值值功功能能,当当计计数数器器计计数数到到0的的同同时时把把初初值值寄寄存存器器的的内内容容重重新新装装入入计计数数执执行行部部件件,自自动动重重新新计计数数。该该过过程程自自动动循循环环,直直到到GATE=0或改变计数器的模式。或改变计数器的模式。 方式方式3方波发生器方波发生器模式模式3 注:方波发生器注:方波发生器在在计计数数过过程程中中,当当GATE变变为为低低电电平平时时,将将迫迫使使OUT变变为为高高电电平平,并并禁禁止止计计数数;GATE从从低低电电平平变变为为高高电电平平,也也就就是是GATE端端产产生生上上升升沿沿时时,则则在在下下一一个个时时钟钟脉脉冲冲时

21、时,把把预预置置的的计计数数初初值值装装入入计计数数器器,从从初初值值开开始始递递减减计计数数。门门控控信信号号GATE可可用用来来使多个计数器同步。使多个计数器同步。 在在操操作作过过程程中中,任任何何时时候候都都可可由由CPU重重新新写写入入新新的的计计数数值值,它它不不会会影影响响当当前前计计数数过过程程的的进进行行。只只有下一个计数周期才会按新写入的初值计数。有下一个计数周期才会按新写入的初值计数。模模式式3具具有有自自动动重重装装初初值值功功能能,当当计计数数器器计计数数到到0的的同同时时把把初初值值寄寄存存器器的的内内容容重重新新装装入入计计数数执执行行部部件件,自自动动重重新新计

22、计数数。该该过过程程自自动动循循环环,直直到到GATE=0或改变计数器的模式。或改变计数器的模式。 方式方式4软件触发的选通信号发生器软件触发的选通信号发生器模式模式4 注:注:软件触发选通模式软件触发选通模式在在计计数数的的过过程程中中GATE变变为为低低电电平平,则则停停止止计计数数,当当GATE变变为为高高电电平平后后,又又重重新新将将初初值值装装入入计计数数器器,从从初初值值开开始始计计数数,直直至至计计数数器器的的值值减减为为0时时,从从OUT端输出一个负脉冲。端输出一个负脉冲。 在在操操作作过过程程中中,重重新新写写入入新新的的计计数数初初值值,在在下下一一个个时时钟钟脉脉冲冲时时

23、,将将新新的的计计数数初初值值装装入入执执行行部部件件,并从新的计数值开始计数。并从新的计数值开始计数。 模模式式4不不具具有有自自动动重重装装初初值值功功能能,当当计计数数器器计计数数到到0输输出出负负脉脉冲冲以以后后,该该过过程程结结束束。要要重重新新开开始始计计数数,必必须须再再次次写写入入初初值值。由由于于计计数数过过程程是是由由软软件件把把计计数数初初值值装装入入计计数数寄寄存存器器来来触触发发的的,所所以以模模式式4称称为为软件触发选通模式。软件触发选通模式。 方式方式5硬件触发的选通信号发生器硬件触发的选通信号发生器模式模式5 注:注:硬件触发选通模式硬件触发选通模式在在计计数数

24、过过程程中中,GATE又又产产生生从从低低到到高高的的正正跳跳变变,经经过过一一个个CLK周周期期,初初值值送送入入执执行行部部件件,然然后后再再进行减进行减1计数直到为计数直到为0,输出负脉冲。,输出负脉冲。 在在计计数数过过程程中中,写写入入新新的的计计数数初初值值,没没有有GATE触发信号,不影响当前计数过程。触发信号,不影响当前计数过程。 模模式式5不不具具有有自自动动重重装装初初值值功功能能,当当计计数数器器计计数数到到0输输出出负负脉脉冲冲以以后后,该该过过程程结结束束。要要重重新新开开始始计计数数,必必须须再再次次给给出出门门控控信信号号上上升升沿沿。由由于于计计数数过过程程是是

25、由由GATE上上升升沿沿来来触触发发的的,所所以以模模式式5称称为为硬硬件件触触发选通模式。发选通模式。 z例如,设定计数器为先读低字节、后读高字节方例如,设定计数器为先读低字节、后读高字节方式,当前计数值为式,当前计数值为0300H,则读到的低字节为,则读到的低字节为00H,在读低字节的过程中,又来一个脉冲,使得当,在读低字节的过程中,又来一个脉冲,使得当前计数值变为前计数值变为02FFH,这时读取高字节便得到,这时读取高字节便得到02H,结果便得到当前值为,结果便得到当前值为0200H,出现错误。为,出现错误。为了防止这种情况发生,可以采用两种方法:暂停了防止这种情况发生,可以采用两种方法

26、:暂停计数或者锁存计数器的当前值。计数或者锁存计数器的当前值。z暂停计数可以用外部硬件切断计数脉冲信号,或暂停计数可以用外部硬件切断计数脉冲信号,或者使门控信号变为低电平,迫使者使门控信号变为低电平,迫使8253停止计数。停止计数。这种方法的缺点是需要硬件电路配合。此外,由这种方法的缺点是需要硬件电路配合。此外,由于外部事件源被切断或正常的计数过程被禁止,于外部事件源被切断或正常的计数过程被禁止,干扰了实际的计数过程,可能出现漏计情况。因干扰了实际的计数过程,可能出现漏计情况。因此,这不是一种好的方法。但这种方法可以实现此,这不是一种好的方法。但这种方法可以实现多个计数器的同步比较。多个计数器

27、的同步比较。8253计数值的读取计数值的读取z在许多用到在许多用到8253的计数功能的场合,常常的计数功能的场合,常常需要读取计数器的当前计数值。需要读取计数器的当前计数值。 z在计数初值设为在计数初值设为N的情况下,如果当前计数的情况下,如果当前计数器的计数值为器的计数值为M,则在计数模式下(模式,则在计数模式下(模式0),已经完成的个数等于),已经完成的个数等于N+1-M。 z在读计数器当前值时,计数过程仍在进行,在读计数器当前值时,计数过程仍在进行,而且不受而且不受CPU的控制。因此,在的控制。因此,在CPU读取读取计数器的输出值时,可能计数器的输出正计数器的输出值时,可能计数器的输出正

28、在发生改变,可能导致错误的读数。在发生改变,可能导致错误的读数。z另一方法是在读出数据之前,先锁存当前计数值。另一方法是在读出数据之前,先锁存当前计数值。当需要读取计数器的现行值时,先向当需要读取计数器的现行值时,先向8253送一个送一个锁存命令,即把锁存命令,即把RL1RL0=00的控制字写入的控制字写入8253的的控制字端口,锁存命令字中的控制字端口,锁存命令字中的SC1SC0用来确定要用来确定要锁存的是哪一个计数器,锁存命令字的低锁存的是哪一个计数器,锁存命令字的低4位对锁位对锁存命令无影响,可以将它们置为存命令无影响,可以将它们置为0。 8253立即把立即把指定计数器的当前计数值锁存到

29、输出锁存器中。指定计数器的当前计数值锁存到输出锁存器中。z然后就可从相应的计数器的输出所存器中读取当然后就可从相应的计数器的输出所存器中读取当前计数值。读取计数值的方法由对前计数值。读取计数值的方法由对8253进行初始进行初始化编程时所写入的控制字中的化编程时所写入的控制字中的RL1RL0位来确定,位来确定,当当RL1RL001时,只读取计数器的低字节,时,只读取计数器的低字节,RL1RL010时,只读取计数器的高字节,时,只读取计数器的高字节,RL1RL011时,先读写计数器低字节,后读写时,先读写计数器低字节,后读写高字节。高字节。 8253初始化方法初始化方法:z控制字控制字z计数初值计

30、数初值: 已知已知:CLK 的频率的频率fc与定时的时间与定时的时间t. 计数初值计数初值: n= fc t 例例1: fc=1MHZ,最大计数初值:最大计数初值: 65536 一个定时器最大定时时间:一个定时器最大定时时间: N/fc=65536/ 106 =0.065536s8-2 8253应用举例例例2:设定时器设定时器0、定时器、定时器1工作于方式工作于方式2,外部提供,外部提供一个时钟一个时钟,频率频率f=2MHZ。要求定时器。要求定时器1每每5ms产生产生一个脉冲,定时器一个脉冲,定时器0每每5s产生一个脉冲。产生一个脉冲。1). 一个定时器的最大定时时间:一个定时器的最大定时时间

31、: 65536 /(2*106)=0.032768 s=32.768ms2). 将定时器将定时器1的的CLK1接接2MHZ时钟,计数初值:时钟,计数初值:3).将定时器将定时器1的的OUT1端接到定时器端接到定时器0的的CLK0端端,定定时器时器0的计数初值的计数初值:1用用8253产生各种定时波形产生各种定时波形在某个以在某个以8086为为CPU的系统中使用了一块的系统中使用了一块8253芯片,芯片,通道的基地址为通道的基地址为310H,所用的时钟脉冲频率为,所用的时钟脉冲频率为1MHz。要求要求3个计数通道分别完成以下功能:个计数通道分别完成以下功能:(1)通道通道0工作于方式工作于方式3

32、,输出频率为,输出频率为2kHz的方波;的方波;(2)通道通道l产生宽度为产生宽度为480s的单脉冲;的单脉冲;(3)通道通道2用硬件方式触发,输出单脉冲,时间常数用硬件方式触发,输出单脉冲,时间常数为为26。通道通道0工作于方式工作于方式3,即构成一个方波发生器,它,即构成一个方波发生器,它的控制端的控制端GATE0须接须接+5V,为了输出,为了输出2kHz的连续方的连续方波,应使时间常数波,应使时间常数N0lMHz2kHz=500。通道通道1工作于方式工作于方式l,即构成一个单稳态电路,由,即构成一个单稳态电路,由GATE1的正跳变触发,输出一个宽度由时间常数决的正跳变触发,输出一个宽度由

33、时间常数决定的负脉冲。此功能一次有效,需要再形成一个脉定的负脉冲。此功能一次有效,需要再形成一个脉冲时,不但冲时,不但GATE1脚上要有触发,通道也需重新初脚上要有触发,通道也需重新初始化。需输出宽度为始化。需输出宽度为480s的单脉冲时,应取时间常的单脉冲时,应取时间常数数N1480sls =480。通道通道2工作于方式工作于方式5,即由,即由GATE2的正跳变触发减的正跳变触发减1计数,在计到计数,在计到0时形成一个宽度与时钟周期相同的负时形成一个宽度与时钟周期相同的负脉冲。此后,若脉冲。此后,若GATE2脚上再次出现正跳变,又能脚上再次出现正跳变,又能产生一个负脉冲。产生一个负脉冲。;通

34、道;通道0初始化程序初始化程序 MOV DX,316H ;控制口地址控制口地址 MOV AL, 00110111B ;通道;通道0控制宇,先控制宇,先读写低字节,后高字节,方式读写低字节,后高字节,方式3,BCD计数计数 OUT DX, AL ;写人方式字;写人方式字 MOV DX,310H ;通道;通道0口地址口地址 MOV AL,00H ;低字节;低字节 OUT DX,AL ;先写入低字节;先写入低字节 MOV AL,05H ;高字节;高字节 OUT DX,AL ;后写入高字节;后写入高字节;通道通道1初始化程序初始化程序 MOV DX,316H MOV AL,01110011B 通道通道

35、1方式字,先方式字,先读写低字节,后高字节,方式读写低字节,后高字节,方式1,BCD计数计数 OUT DX,AL MOV DX,312H ;通道;通道1口地址口地址 MOV AL,80H ;低字节;低字节 OUT DX,AL MOV AL,04H ;高字节;高字节 OUT DX,AL;通道通道2初始化程序初始化程序 MOV DX, 316H MOV AL, 10011011B ;通道;通道2控制字,只读控制字,只读写低字节,方式写低字节,方式5,BCD计数计数 OUT DX, AL MOV DX, 3l4H ;通道;通道2口地址口地址 MOV AL, 26H ;低字节;低字节 OUT DX,A

36、L ;只写入低字节;只写入低字节 8253计数功能的应用例子计数功能的应用例子 8253计数功能的应用例子计数功能的应用例子 选择计数器选择计数器1工作于方式工作于方式0,按,按BCD码计数,先读码计数,先读写低字节,后读写高字节,则控制字为写低字节,后读写高字节,则控制字为?如要求每如要求每500个脉冲,通过通过个脉冲,通过通过8259A向向CPU发出发出一次中断请求,则选取计数韧值一次中断请求,则选取计数韧值n?每次中断表示计满了每次中断表示计满了500个数,在中断服务程序中个数,在中断服务程序中使工件总数加上使工件总数加上500。中断服务程序执行完后,返回主程序,这时需要由中断服务程序执

37、行完后,返回主程序,这时需要由程序把计数韧值程序把计数韧值499再次装入计数器再次装入计数器1,才能继续进行,才能继续进行计数。计数。 8253计数功能的应用例子计数功能的应用例子 设设8253的的4个端口地址分别为个端口地址分别为F0H,F2H,F4H和和F6H,则初始化程序为,则初始化程序为MOV AL, 01110001B ;控制字;控制字OUT0F6H,ALMOVAL,()()OUT0F2H,ALMOVAL, 04HOUT0F2H,AL8253在在PC/XT机中的应用机中的应用 1计数器计数器0实时时钟实时时钟计数器计数器0用作定时器,为系统提供时间基准。用作定时器,为系统提供时间基准

38、。 选用选用方式方式3(方波发生器方波发生器),二进制计数。计数器初值,二进制计数。计数器初值n0,相当于,相当于65536,这样在输出端,这样在输出端OUT可以得到序列方可以得到序列方波,其频率为波,其频率为fn1.19318MH26553618.2 Hz。它经系统板上的总线它经系统板上的总线IRQ0被直接送到被直接送到8259A中断请中断请求输入端,使计算机每秒钟产生求输入端,使计算机每秒钟产生18.2次中断,也就是次中断,也就是每隔每隔55毫秒请求一次中断。毫秒请求一次中断。2计数器计数器1动态动态RW刷新定时器刷新定时器计数器计数器1它定时向它定时向DMA控制器提供动态控制器提供动态R

39、AM刷新刷新请求信号。初始化设置成方式请求信号。初始化设置成方式2(比率发生器比率发生器),计数,计数器预置的初值为器预置的初值为18。这样,从。这样,从OUT1端可输出负脉冲端可输出负脉冲序列,其频率为序列,其频率为1.19318MHz1866.2878kHz,周,周期为期为15.09s,OUT1输出的负脉冲的上升沿使输出的负脉冲的上升沿使D触发触发器器U73置置l,从,从Q端输出端输出DRQ0信号,它被送到信号,它被送到DMA控制器控制器8237A-5的的DREQ0端,作为通道端,作为通道0的的DMA请请求信号。在通道求信号。在通道0执行执行DMA操作时对动态操作时对动态RAM进行进行刷新

40、,刷新,8237A-5的回答信号使的回答信号使D触发器触发器U73清清0,这样,这样每隔每隔15.09s向向8237A-5DMA控制器提出一次控制器提出一次DMA请请求由求由DMA控制器实施对动态控制器实施对动态RAM的刷新操作。的刷新操作。3.计数器计数器2扬声器音调控制扬声器音调控制计数器计数器2工作于方式工作于方式3,对计数器预置的初值为,对计数器预置的初值为n533H1331,OUT2输出方波频率为输出方波频率为1.19318MHz1331896Hz。该计数器的该计数器的GATE2不是接不是接+5V而是受并行接口而是受并行接口8255A-5的的PB0端控制。当端控制。当PB0送来高电平时,允许计送来高电平时,允许计数器数器2计数,使计数,使OUT2输出方波。该方波与输出方波。该方波与8255A-5的的PB1信号相与后,送到扬声器驱动电路,驱动扬声器信号相与后,送到扬声器驱动电路,驱动扬声器发声。发声。发声的频率由预置的初值发声的频率由预置的初值n决定,发声时间的长决定,发声时间的长短受短受PB1控制,当控制,当PB1=1时,允许发声,当时,允许发声,当PB1=0时,时,禁止发声。通过控制禁止发声。通过控制PB1与与PB0的电平,就可以发出的电平,就可以发出各种不同音调的声音。各种不同音调的声音。作业zp.324:1,3

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号