当前位置:文档之家› 8254定时计数器实验报告

8254定时计数器实验报告

8254定时/计数器应用实验一、实验目的1.掌握 8254 的工作方式及其应用编程。

2.掌握 8254 典型应用电路的接法。

二、实验设备PC机一台,TD—PITE实验装置或TD-PITC实验装置一套,示波器一台。

三、实验内容1.计数应用实验。

编写程序,应用8254的计数功能,使用单次脉冲模拟计数,使每当按动‘KK+’5次后,产生一次计数中断,并在屏幕上显示一个字符‘M’。

2.定时应用实验。

编写程序,应用8254的定时功能,产生一个1ms的方波。

四、实验原理8254是Intel公司生产的可编程间隔定时器。

是8253的改进型,比8253具有更优良的性能。

8254具有以下基本功能:(1)有3个独立的16位计数器。

(2)每个计数器可按二进制或十进制(BCD)计数。

(3)每个计数器可编程工作于6种不同工作方式。

(4)8254每个计数器允许的最高计数频率为10MHz(8253为2MHz)。

(5)8254有读回命令(8253没有),除了可以读出当前计数单元的内容外,还可以读出状态寄存器的内容。

(6)计数脉冲可以是有规律的时钟信号,也可以是随机信号。

计数初值公式为:n=f CLKi/f OUTi,其中f CLKi是输入时钟脉冲的频率,f OUTi是输出波形的频率。

图4.27是8254的内部结构框图和引脚图,它是由于CPU的接口、内部控制电路和三个计数器组成。

8254的工作方式如下述:(1)方式0:计数到0结束输出正跃变信号方式。

(2)方式1:硬件可重触发单稳方式。

(3)方式2:频率发生器方式。

(4)方式3:方波发生器。

(5)方式4:软件触发选通方式。

(6)方式5:硬件触发选通方式。

GATE0 A0OUT2图4.27 8254的内部接口和引脚8254的控制字有两个:一个用来设置计数器的工作方式,称为方式控制字;另一个用来设置读回命令,称为读回控制器。

这两个控制字共用一个地址,由标志位来区分。

控制字格式如表4.3-4.5所示。

D7 D6 D5 D4 D3 D2 D1 D0计数器选择读写格式选择 工作方式选择计数码制选择00 -计数器001 -计数器110 -计数器211 -读出控制字标志00锁存计数值01读/写低8位10读/写高8位11先读/写低8位,再读写高8位000 方式0001 方式1010 方式2011 方式3100 方式4101 方式50-二进制数1-十进制数表4.3 8254的方式控制字格式表4.4 8254读出控制字格式D7 D6 D5 D4 D3 D2 D1 D01 1 0-锁存计数值 0-锁存状态信息 计数器选择 0表4.5 8254状态字格式D7 D6 D5 D4 D3 D2 D1 D0计数器方式(同方式控制字)OUT 引脚现行状态1高电平 0低电平计数初值是否装入1无效计数 0计数有效8254实验单元电路图如下所示:D0 OUT0D1 GATE0D2 CLK0D3D4D5D6 OUT1D7 GATE1CLK1CS RD WROUT2A0 GATE2A1 8254 CLK2VCC CLK1GATE1OUT1CLK2GATE2OUT2CLK0OUT0CS RD WR D0D1D3D2D4D5D7D6A0A1五、实验步骤 1.计数器应用实验编写程序,将8254的计数器0设置为方式0,计数值为十进制数4,单次脉冲KK1+作为CLK0时钟,OUT0连接MIR7,每当KK1+按动5次后产生中断请求,在屏幕上显示字符“M ”。

实验步骤:(1)实验连接如图4.29所示。

(2)编写实验程序,经编译、链接无误后装入系统。

(3)运行程序,按动KK1+产生单次脉冲,观察实验现象。

(4)改变计数值,验证8254的计数功能。

XD0...XD7XA1XA2IOW#IOR#IOY3系统总线D0.. GATE0.D7CLK0A0A1OUT0WR RDCS 8254单元VCC 图4.29 8254计数应用实验接线图CLK系统总线波形输出示波器测量实验程序清单(A82541.ASM);========================================================= ; 文件名: A82541.ASM; 功能描述: 通过对计数器0进行计数,计数初值为4, ; 当计数满后,产生正跳变触发中断,中断 ; 程序显示M(每按5次输出一个M);=========================================================A8254 EQU 06C0H B8254 EQU 06C2H C8254 EQU 06C4H CON8254 EQU 06C6HSSTACK SEGMENT STACK DW 32 DUP(?) SSTACK ENDSCODE SEGMENTASSUME CS:CODE, SS:SSTACK START: PUSH DSMOV AX, 0000HMOV DS, AXMOV AX, OFFSET IRQ7 ;取中断入口地址MOV SI, 003CH ;中断矢量地址MOV [SI], AX ;填IRQ7的偏移矢量MOV AX, CS ;段地址MOV SI, 003EHMOV [SI], AX ;填IRQ7的段地址矢量CLIPOP DS;初始化主片8259MOV AL, 11HOUT 20H, AL ;ICW1MOV AL, 08HOUT 21H, AL ;ICW2MOV AL, 04HOUT 21H, AL ;ICW3MOV AL, 01HOUT 21H, AL ;ICW4MOV AL, 6FH ;OCW1OUT 21H, AL;8254MOV DX, CON8254MOV AL, 10H ;计数器0,方式0OUT DX, ALMOV DX, A8254MOV AL, 04HOUT DX, ALSTIAA1: NOPJMP AA1IRQ7: MOV DX, A8254MOV AL, 04HOUT DX, ALMOV AX, 014DHINT 10H ;显示字符MMOV AX, 0120HINT 10HMOV AL, 20HOUT 20H, AL ;中断结束命令IRETCODE ENDSEND START2.定时应用实验编写实验,将8254的计数器0设置为方式3,用信号源1MHz 作为CLK0时钟,OUT0为波形输出1ms 方波。

实验步骤:(1)实验连接如图4.30所示。

(2)编写实验程序,经编译、链接无误后装入系统。

(3)运行实验程序,用示波器测试OUT0输出,验证程序功能。

XD0...XD7XA1XA2IOW#IOR#IOY3系统总线D0.. GATE0.D7CLK0A0A1OUT0WR RDCS 8254单元VCC 图4.30 8254定时应用实验接线图CLK系统总线波形输出示波器测量实验程序清单(A82542.ASM);========================================================= ; 文件名: A82542.ASM; 功能描述: 产生1ms 方波,输入时钟为1MHz ,使用计数器0 ; 计数初值为03E8H;=========================================================A8254 EQU 06C0H B8254 EQU 06C2H C8254 EQU 06C4H CON8254 EQU 06C6HSSTACK SEGMENT STACK DW 32 DUP(?) SSTACK ENDSCODE SEGMENTASSUME CS:CODE, SS:SSTACK START: MOV DX, CON8254 ;8254MOV AL, 36H ;计数器0,方式3OUT DX, ALMOV DX, A8254MOV AL, 0E8HOUT DX, ALMOV AL, 03HOUT DX, ALAA1: NOPJMP AA1CODE ENDSEND START六、实验结果实验一的结果:按动4次按钮,屏幕输出“M7”字符。

实验2的结果:计数值为2000,十六进制为07D0H,示波器产生2ms的方波。

七.实验心得通过本次实验,掌握了8254芯片的基本功能和工作方式,学到典型电路的接法和学会定时应用实验产生方波的方法。

8254同8253一样,方式2和3是周期的,可以自动循环的工作方式;方式0,1,4,5则是单稳态的,非周期的工作方式。

在周期形式下可根据输出波形不同选择方式2(负脉冲)和方式3(方波);在非周期中根据输出波形不同选择方式0,1(计数期间为低,计数到0时上升)和方式4,5(负脉冲);方式0,1可继续通过触发方式不同选择方式0(软触发)和方式1(硬触发);方式4,5可继续通过触发方式不同选择方式4(软触发)和方式5(硬触发)。

有动手,有思考,就会有收获!。

相关主题