图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 页