文档介绍:第八章可编程定时/计数器8253及其应用第一节Intel8253-,实现定时或延时有三种方法:软件定时、不可编程的硬件定时、可编程的硬件定时器。8253为可编程的硬件定时/计数器。*具有3个独立的16位计数器通道;*每个计数器均可按二进制或二—十进制计数;*每个计数器的计数速率高达2MHz;*每个通道有6种工作方式,可由程序设置和改变;*所有的输入输出都与TTL兼容。.*三个计数器(减法器)3个独立的16位减法器,可作定时/计数器使用;计数器按二/BCD方式减法计数,从预常减到零时,OUT端输出一信号。数据总线缓冲器计数器0读/写逻辑控制字寄存器计数器1计数器2CLK0CLK1CLK2GATE0GATE1GATE2OUT0OUT1OUT2D7~D0RDWRA0A1CS8253内部结构内部数据总线*数据总线缓冲器(传送信息)写控制字,写时常,读计数值*读写逻辑*控制字寄存器(存放控制字).数据总线缓冲器计数器0读/写逻辑控制字寄存器计数器1计数器2CLK0CLK1CLK2GATE0GATE1GATE2OUT0OUT1OUT2D7~*数据线(D7~D0)*地址线:选择内部寄存器;*控制线:完成片选和读写操作。CLK:输入脉冲线;GATE:门控信号输入线;GATE=0禁止计数,GATE=1允许工作;OUT:输出引脚;当计数到“0”时,OUT端输出一信号。.-PIT的控制字00选择计数器001选择计数器110选择计数器211非法选择0=二进制1=BCD计数器读/写格式工作方式数制D0D1D2D3D4D5D6D7在8253的初始化编程中,由CPU向8253的控制字寄存器写入一个控制字来规定8253的工作方式。00计数器锁存命令10只读/写最高有效字节(高八位)01只读/写最低有效字节(低八位)11先读写最低有效字节然后读写最高有效字节000方式0001方式1*10方式2*-PIT的工作方式*CW写入,OUT=0;*写入时常,通道开始计数;*计数到零,OUT=1;*计数器只计数一遍;*OUT是N+1个CLK后变高;*计数过程中,GATE=0,计数暂停;*计数过程中可改变计数值;*8253无中断控制,可用OUT信号作为中断请求。(可编程单稳)*写入控制字OUT=1,写入常数不计数;*GATE启动计数,OUT=0;*计数到,OUT=1。*单拍脉冲宽度为N;*由GATE重新启动;*计数中,可重新启动;*计数中,可改变计数值,再次启动有效。.方式2(速率发生器)*写入控制字OUT=1;*写入常数立即对CLK计数;*计数到1,OUT=0;*一个CLK周期后,OUT=1,重新计数。*通道连续工作不需重置时常;*计数过程中,GATE=0,计数暂停,GATE变高后重新计数;*计数过程中可改变计数值;新的计数值在下一次有效。.方式3(方波速率发生器)*与方式2的区别在于:输出为周期是N个CLK脉冲的方波。*若计数值为偶数,每个CLK使计数值减2,计到0,OUT改变状态,重装计数值开始新的计数。*若计数值为奇数,第一个脉冲先减1,以后,每个CLK使计数值减2,计到0时,OUT改变状态,重装计数值后,第一个脉冲减3,以后,每个CLK使计数值减2,计到0时,OUT改变状态。*GATE信号控制计数过程;*计数过程中写入新的计数值将在半周期结束时装入计数器。.例:要求计数器0工作于方式3,输出方波的频率为2KHz,,采用BCD计数,试写出初始化程序段。:TC==1250MOVAL,37HOUT83H,ALMOVAL,50HOUT80H,ALMOVAL,12HOUT80H,:80H,81H,82H,83H。::.