实验报告五 定时器计数器实验 下载本文

内容发布更新时间 : 2024/4/27 1:08:33星期一 下面是文章的全部内容请认真阅读。

图5-8(a) 8254 定时应用实验接线图

图5-8(b) 8254定时应用实验实物接线图

(2) 运行 Tdpit 集成操作软件,根据实验内容,编写实验程序,编译、链接。

第 6 页 共 12 页

图 5-9 8254定时应用实验程序编辑界面

图 5-10编译连接输出信息

(3) 单元中 GATE0 已经连接了一个上拉电阻,所以 GATE0 不用连接。 (4) 运行实验程序,OUT0输出接D0 观察 LED灯的闪烁频率是否为1HZ。 (5) 用软件所带示波器进行观测,观测方法:点击快捷工具栏上“即可观察波形显示。 五、实 验 结 果 及 分 析:

1. 计数应用实验

(1) 编译连接成功后,使用运行命令运行程序,按动 KK1+产生单次脉冲,查看结果。

”按钮,启动示波器显示窗口,

图5-12 结果显示窗口

分析:每当 KK1+按动 5 次后产生中断请求,则在屏幕上显示字符“5”。

第 7 页 共 12 页

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

图5-13 改变计数值实验结果

分析:将实验程序中的计数初值改为6,并将屏幕显示字符改为“7”。实验结果为:每当 KK1+按动7次后产生中断请求,则在屏幕上显示字符“7”。

2. 定时应用实验

(1) 运行实验程序,用软件所带示波器进行观测,观测方法:点击快捷工具栏上“波器显示窗口,即可观察波形显示。示波器显示界面如图5-11所示。

”按钮,启动示

图 5-11 示波器显示界面

分析:直接将OUT0 输出接D0,则观察到LED灯每秒亮一次,即输出是 1HZ的脉冲。也可用软件所带示波器进行观测,观测的波形如图5-11所示。

六、实 验 总 结:

通过本实验,我了解了8254 的工作方式及应用编程,以掌握了 8254 典型应用电路的接法。通过本次实验加深了对理论编程的知识的理解,巩固了我的理论知识。

第 8 页 共 12 页

附 录:

;T8254-1.asm

;查看端口资源分配情况,记录实验系统I/O端口始地址

INTR_IVADD EQU 003CH ;INTR对应的中断矢量地址

IOY0 EQU 0D000H ;片选IOY0对应的端口始地址 MY8254_COUNT0 EQU IOY0+00H*4 ;8254计数器0端口地址 MY8254_COUNT1 EQU IOY0+01H*4 ;8254计数器1端口地址 MY8254_COUNT2 EQU IOY0+02H*4 ;8254计数器2端口地址 MY8254_MODE EQU IOY0+03H*4 ;8254控制寄存器端口地址 STACK1 SEGMENT STACK DW 256 DUP(?) STACK1 ENDS

DATA SEGMENT

CS_BAK DW ? ;保存INTR原中断处理程序入口段地址的变量 IP_BAK DW ? ;保存INTR原中断处理程序入口偏移地址的变量 IM_BAK DB ? ;保存INTR原中断屏蔽字的变量 STR1 DB 'COUNT: $' ;显示的字符串

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START: MOV AX,DATA MOV DS,AX CLI

MOV AX,0000H ;替换INTR的中断矢量

MOV ES,AX

MOV DI,INTR_IVADD MOV AX,ES:[DI]

MOV IP_BAK,AX ;保存INTR原中断处理程序入口偏移地址 MOV AX,OFFSET MYISR

MOV ES:[DI],AX ;设置当前中断处理程序入口偏移地址

ADD DI,2

MOV AX,ES:[DI]

MOV CS_BAK,AX ;保存INTR原中断处理程序入口段地址 MOV AX,SEG MYISR

第 9 页 共 12 页

MOV ES:[DI],AX ;设置当前中断处理程序入口段地址

IN AL,21H

MOV IM_BAK,AL ;保存INTR原中断屏蔽字 AND AL,7FH OUT 21H,AL

STI

MOV DX,OFFSET STR1 ;显示字符串 MOV AH,9 INT 21H

MOV DX,MY8254_MODE MOV AL,10H OUT DX,AL

MOV DX,MY8254_COUNT0 MOV AL,4 OUT DX,AL

WAIT1: MOV AH,1 INT 16H

JZ WAIT1

QUIT: CLI

MOV AX,0000H MOV ES,AX

MOV DI,INTR_IVADD

MOV AX,IP_BAK MOV ES:[DI],AX ADD DI,2

MOV AX,CS_BAK MOV ES:[DI],AX

MOV AL,IM_BAK OUT 21H,AL STI

MOV AX,4C00H INT 21H

MYISR PROC NEAR PUSH AX MOV AL,35H MOV AH,0EH

;初始化8254工作方式 ;计数器0,方式0

;装入计数初值 ;判断是否有按键按下 ;无按键则跳回继续等待,有则退出 ;恢复INTR原中断矢量

;恢复INTR原中断处理程序入口偏移地址 ;恢复INTR原中断处理程序入口段地址 ;恢复INTR原中断屏蔽寄存器的屏蔽字 ;返回到DOS ;中断处理程序MYISR 第 10 页 共 12 页