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

8254定时与计数器实验

XX学院实验报告实验名称姓名学号班级教师日期一、实验内容与要求1.1 实验内容本次实验分为如下2个子实验:(1)计数应用实验:编写程序,应用8254的计数功能,使用单次脉冲模拟计数,使每当按下‘KK1+’5次后,产生一次计数中断,并在屏幕上显示一个字符‘M’;(2)定时应用实验:编写程序,应用8254的定时功能,产生一个1s的方波,并用本装置的示波器功能来观察。

1.2 实验要求本次实验中2个子实验的实验要求如下:(1)计数应用实验:将8254的计数器0设置为方式3,计数值为十进制数4,用单次脉冲KK1+作为CLK0时钟,OUT0连接MIR7,每当KK1+按动5次后产生中断请求,在屏幕上显示字符“M”;(2)定时应用实验:将8254的计数器0和计数器1都设置为方式3,用信号源1MHz作为CLK0时钟,OUT0为波形输出1ms方波,再通过CLK1输入,OUT1输出1s方波。

二、实验原理与硬件连线2.1 实验原理8254是Intel公司生产的可编程间隔定时器。

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

8254具有以下基本功能:(1)有三个地理的16位计数器。

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

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

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

(5)8254有读回命令(8253,没有),除了可以读出当前计数单元的内容外,还可以读出状态寄存器的内容(6)计数脉冲可以是有规律的时钟信号,也可以是随机信号。

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

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

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

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

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

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

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

(6)方式5:硬件触发选通方式D:[7:RDA0A1CSCLK0GATE0OUT0CLK1GATE1OUT1CLK2GATE2OUT2图2-1 8254内部结构图8254的控制字有两个:一个用来设置计数器的工作方式,成为方式控制字;另一个用来设置读回命令,称为读回控制字。

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

控制字格式如表4.5.1-4.5.3所示。

表2-1 8254的方式控制字格式表2-2 8254读出控制字格式表2-3 8254状态字格式8254实验单元电路图如下图所示:VCCCLK1.8432MHZ8251-TRCLK图2-2 8254实验电路原理图2.2 硬件连线(1)计数应用实验:系统总线XD0~XD7分别与8254单元D0~D7相连,系统总线XA1~XA2分别与8254单元A0~A1相连,系统总线的IOW#、IOR#、IOY0(0600H)、MIR7分别于8254单元的WR、RD、CS、OUT0相连,8254单元的CLK0与单次脉冲单元的KK1+相连,如图2-3;图2-3 计数应用实验连线图(2)定时应用实验:系统总线与8254单元类似于(1)中进行连线,然后将8254单元中的OUT0连接到CLK1,GA TE1连接VCC,OUT1连接到A/D转换单元的IN0。

AD转换单元A、B、C接地,并将D0~D7接到系统总线XD0~XD7上,并将WR、RD、CS、CLK分别连接到系统总线的IOW#、IOR#、IOY3(0680H)、CLK上。

如图2-4所示。

VCC图2-4 8254定时应用实验接线图三、设计思路、步骤和程序流程图3.1 设计思路(1)计数应用实验:将8254的计数器0设置为方式0,计数值为十进制数4,用单次脉冲KK1+作为CLK0时钟,OUT0连接MIR7,首先让程序进入死循环等待中断,每当KK1+按动5次后产生中断请求,调用中断程序,在屏幕上显示字符“M”。

(2)定时应用实验:利用8254的两个计数装载过大的初始值,其中计数器0的OUT作为计数器1的CLK的输入,当两个计数器的初值满足一定条件时,计数器1的OUT即为1s方波,并可通过软件的示波器直接观察。

3.2 实验步骤(1)计数应用实验:1.按图2-3连接电路;2.编写实验程序,经编译、链接无误后装入系统;3.单击RUN按钮,运行实验程序,每连续按动5次KK1+,在界面的输出区会显示字符‘M’;4.改变计数值,验证8254的计数功能。

(2)定时应用实验1.按图2-4连接实验线路;2.编写实验程序,经编译、链接无误后装入系统;3.运行程序,8254的OUT1会输出1s的方波,用软件自带的示波器功能进行观察。

3.3 程序流程图(1)计数应用实验:主程序流程图如图2-5图2-5 计数应用实验主程序流程图中断程序流程图如图2-6图2-6 计数应用实验中断程序流程图(2)定时应用实验:程序流程图如图2-7图2-7 定时应用程序流程图四、程序清单与执行结果4.1 程序清单(1)计数应用实验代码IOYO EQU 0600HA8254 EQU IOYO+00H*2B8254 EQU IOYO+01H*2C8254 EQU IOYO+02H*2CON8254 EQU IOYO+03H*2SSTACK SEGMENT STACKDW 32 DUP(?)SSTACK ENDSCODE SEGMENTASSUME CS:CODE, SS:SSTACKSTART: PUSH DSMOV AX,0000HMOV DS,AXMOV AX,OFFSET IRQ7MOV SI,003CHMOV [SI],AXMOV AX,CSMOV SI,003EHMOV [SI],AXCLIPOP DS;初始化主片8259MOV AL,11H ;初始化ICW1OUT 20H,ALMOV AL,08H ;初始化ICW2OUT 21H,ALMOV AL,04H ;初始化ICW3OUT 21H,ALMOV AL,01H ;初始化ICW4OUT 21H,ALMOV AL,6FH ;OCW1OUT 21H,AL;8254MOV DX,CON8254MOV AL,10HOUT DX,ALMOV DX,A8254MOV AL,04HOUT DX,ALSTIAA1: JMP AA1IRQ7: MOV DX,A8254MOV AL,04HOUT DX,ALMOV AX,014DHINT 10HMOV AX,0120HINT 10HMOV AL,20HOUT 20H,ALIRETCODE ENDSEND START(2)定时应用实验代码A8254 EQU 0600HB8254 EQU 0602HC8254 EQU 0604HCON8254 EQU 0606HCODE SEGMENTASSUME CS:CODESTART:MOV DX,CON8254MOV AL,27HOUT DX,ALMOV DX,A8254MOV AL,10HOUT DX,ALMOV DX,CON8254MOV AL,67HOUT DX,ALMOV DX,B8254MOV AL,10HOUT DX,ALAA1:JMP AA1CODE ENDSEND START4.2 执行结果(1)计数应用实验的实验结果如图2-8,每按5次KK1+,就会打印一个‘M’,并且输出一个空格。

图2-8 计数应用实验(2)定时应用实验的实验结果如图2-9和图2-10,示波器会显示如下波形。

图2-9 定时应用实验(方波)图2-10 定时应用实验五、程序调试说明和实验感想5.1调试说明在实验中,需要将8254计数器0和计数器1都设置为方式3,用信号源1MHz作为CLK0,OUT0为波形输出1ms方波,再通过CLK1输入,这样OUT1才会输出1s方波。

5.2 实验感想与收获通过本次实验,对8254的计数器有了深入的了解;对8254的内部接口和引脚有了充分的认识;对8254的工作方式、应用编程及其典型电路的接法有了全新的掌握。

纸上得来终觉浅,在对实验的实践中,实验前事先预习,实验中不断尝试,实验后总结复习,收获良多。

5.3 实验特色在计数应用实验中,通过改变计数输出字符‘M’,具有创新精神。

在定时应用实验中,通过输出不同方式的波形,融课内所学于实验中,具有个人特色。

5.4 展望如果有充裕的时间,还可以实现输出类似莫尔斯电码的效果,如按1次KK1+输出长信号,按1次KK2+输出短信号,长短信号组成莫尔斯电码。

相关主题