我是靠谱客的博主 含蓄蜡烛,最近开发中收集的这篇文章主要介绍8255芯片+8254芯片实现硬延时跑马灯8255芯片+8254芯片实现硬延时跑马灯,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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芯片实现硬延时跑马灯所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(76)

评论列表共有 0 条评论

立即
投稿
返回
顶部