8254计数时,外部进来的第一个脉冲怎么处理

拜托我问的是8254

第1个回答  2007-07-18
8253具有3个独立的16位计数器,6种不同的工作方式。计数寄存器用来寄存计数初值,计数工作单元为16位减1计数器,它的初值便是计数寄存器内容,计数单元对CLK脉冲计数,每出现一个CLK脉冲,计数器减1,当减为零时,通过OUT输出指示信号表明计数单元已为零。当作为定时器工作时,每当计数单元为零时,计数寄存器内容会自动重新装入 计数单元,而且CLK输入是均匀的脉冲序列,于是OUT输出频率是降低了的(相对于CLK信号频率)脉冲序列。
当作为计数器工作时,表明只关心在CLK端出现(代表事件)的脉冲个数,当CLK端出现了规定个数的脉冲时,OUT输出一个脉冲信号。
8253在PC系列微机系统中,在如下三个方面得到了应用:
(1)计数器0作为系统计时器
用计数器0产生时钟信号的系统计时器。系统主要利用它完成日时钟计数。
计数器0的CLKo输人为1.1931816MHz方波,工作于方式3,计数初值为0(即65536),输出信号OUTo接到中断控制器8259A的IRQo作为中断请求输入线,OUT0输出的方波脉冲序列频率为Fout0=1.1931816MHz/65536=18.2Hz
即计数器0中断频率为每秒18.2次,计满1h需要中断65520次(18.2*60*60=65520)。24h需中断1573040次(001800BOH)。每次中断总是对低位字加1,当低位字计满为0时高位字加1。当高位字计到0018H,低位字计到00BOH时,表示计满24h,双字复位清0。
(2)计数器1作为动态存储器定时刷新控制
计数器1的CLK1接1.1931816MHz的方波脉冲,工作于方式2,计数初值为18(0012H),OUTl输出的负脉冲脉宽为1÷1.1931816MHz=838ns,其周期为18÷1.1931816MHz= 15.08 us,即每隔15.08us产生一个正脉冲,作为DMAC8237A的0通道的请求信号DREQ0,定时地对系统的动态存储器芯片进行一次刷新操作。
(3)计数器2作为扬声器音频发生器
计数器2用于为系统机箱内的扬声器发声提供音频信号。系统利用扬声器发声进行提示和故障报警。另外,还可对计数器2重新进行初始化,用于乐曲演奏等。
8255方式0是基本输入/输出方式,A、B、C三个口中任何一个口都可提供简单的输入和输出操作,不需要应答联络信号,即可用于无条件传送的场合,也可以用作查询方式传送。当采用查询方式传送时,原则上可用A、B和C三个口的任一位充当查询信号,但通常都是选用C口充当查询信号,这和C口的编程有关。通常把C口的4位(高4位或低4位)规定为输出口,用以输出一些控制信号,把C口的另4位规定为输人口,用以输入外设的状态。
方式1是一种选通输人偷出方式,A口和B口均可工作在这种方式。方式1可作为查询式传送方式,此时握手联络信号,C口要用6位(分成两个3位)分别作为A口和B口的应答联络信号。方式1也可用作中断方式,此时要写对应的C口的按位置位字,打开中断。
方式2是A口独有的双向传送方式,一般使用中断传送方式。
还有8254的.本人还没有学到,请不要见怪,我就尽我所能帮你,还有不足的,小弟在这里说对不起了,