当前位置:文档之家› 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:
RD
A0
A1
CS
CLK0
GATE0
OUT0
CLK1
GATE1
OUT1
CLK2
GATE2
OUT2图2-1 8254部结构图
8254的控制字有两个:一个用来设置计数器的工作方式,成为方式控制字;另一个用来设置读回命令,称为读回控制字。

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

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

表2-1 8254的方式控制字格式
表2-2 8254读出控制字格式
表2-3 8254状态字格式
8254实验单元电路图如下图所示:
VCC
CLK1.8432MHZ 8251-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 0600H
A8254 EQU IOYO+00H*2
B8254 EQU IOYO+01H*2
C8254 EQU IOYO+02H*2
CON8254 EQU IOYO+03H*2
SSTACK SEGMENT STACK
DW 32 DUP(?)
SSTACK ENDS
CODE SEGMENT
ASSUME CS:CODE, SS:SSTACK
START: PUSH DS
MOV AX,0000H
MOV DS,AX
MOV AX,OFFSET IRQ7
MOV [SI],AX
MOV AX,CS
MOV SI,003EH
MOV [SI],AX
CLI
POP DS
;初始化主片8259
MOV AL,11H ;初始化ICW1 OUT 20H,AL
MOV AL,08H ;初始化ICW2 OUT 21H,AL
MOV AL,04H ;初始化ICW3 OUT 21H,AL
MOV AL,01H ;初始化ICW4 OUT 21H,AL
MOV AL,6FH ;OCW1
OUT 21H,AL
;8254
MOV DX,CON8254
OUT DX,AL
MOV DX,A8254
MOV AL,04H
OUT DX,AL
STI
AA1: JMP AA1
IRQ7: MOV DX,A8254
MOV AL,04H
OUT DX,AL
MOV AX,014DH
INT 10H
MOV AX,0120H
INT 10H
MOV AL,20H
OUT 20H,AL
IRET
CODE ENDS
END START
(2)定时应用实验代码
A8254 EQU 0600H
B8254 EQU 0602H
C8254 EQU 0604H
CON8254 EQU 0606H
CODE SEGMENT
ASSUME CS:CODE
START:
MOV DX,CON8254
MOV AL,27H
OUT DX,AL
MOV DX,A8254
MOV AL,10H
OUT DX,AL
MOV DX,CON8254
MOV AL,67H
OUT DX,AL
MOV DX,B8254
MOV AL,10H
OUT DX,AL
AA1:
JMP AA1
CODE ENDS
END START
4.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+输出短信号,长短信号组成莫尔斯电码。

相关主题