概述
8255芯片+8254芯片实现硬延时跑马灯
仅供参考
;此案例中8255的四个端口地址依次为 280H 281H 282H 283H
; 8254的依次为 298H 299H 29AH 29BH
;8255接Y0 8254接Y3
;此程序实现目标,通过开关D0来启动或终止跑马灯,每个灯亮延时2s
;这里是用8255的A口来输入8254处理过的脉冲信号,B口输出,C口输入开关状态
CODE SEGMENT
ASSUME CS:CODE
START:
MOV DX,283H
MOV AL,10011001B
OUT DX,AL ;向8255写入控制字
-- 初始化8254 使其达到一个2s的延时效果---这里使用了一个级联的方式,使用了1号通道和2号通道级联;
MOV AL,01110101B ;写入8254 1号通道的控制字
MOV DX,29BH
OUT DX,AL
MOV AL,00H
MOV DX,299H
OUT DX,AL
MOV AL,10H
OUT DX,AL
MOV AL,10110111B ;写入8254 2号通道的控制字
MOV DX,29BH
OUT DX,AL
MOV AL,00H
MOV DX,29AH
OUT DX,AL
MOV AL,40H
OUT DX,AL ;初始化结束
MOV BL,04H ;设定初值,暂存于BL中
;读入开关状态,是否是D0接入
T1:
MOV DX,282H
IN AL,DX
TEST AL,01H ;00000001B
JZ T1
;读8254输出电平的状态,若为低电平则继续循环,等待高电平到来
T2:
MOV DX,280H
IN AL,DX
TEST AL,01H
JZ T2
;前面都准备就绪,开始让第三个灯亮
MOV DX,281H
MOV AL,BL
OUT DX,AL
T4:
;测试此时是否为高电平,
MOV DX,280H
IN AL,DX
TEST AL,01H
JNZ T4
;当此刻为高电平,则完成了延时过程,实现了延时2s
;循环左移一位
ROL BL,1
JMP T1
CODE ENDS
END START
课程实验总结,仅供参考。
最后
以上就是含蓄蜡烛为你收集整理的8255芯片+8254芯片实现硬延时跑马灯8255芯片+8254芯片实现硬延时跑马灯的全部内容,希望文章能够帮你解决8255芯片+8254芯片实现硬延时跑马灯8255芯片+8254芯片实现硬延时跑马灯所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复