找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2161|回复: 0
打印 上一主题 下一主题
收起左侧

8255交通灯实验

[复制链接]
跳转到指定楼层
楼主
ID:458862 发表于 2018-12-31 10:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
掌握通过 8255A 并口传输数据的方法,以控制发光二极管的亮与灭。
利用 Proteus 仿真 8255A 控制交通灯,用 8255A 做输出口,控制十二个 LED 亮灭,模拟交通灯管理。
包含连线图,连线图文件,以及汇编源码。
源代码:
   CODE SEGMENT ;8255A 控制交通灯程序
ASSUME CS:CODE
IOCONPT EQU 86H;8255 控制口
IOAPT EQU 80H ;PA 口
IOBPT EQU 82H;PB 口
IOCPT EQU 84H;PC 口
START:MOV AL,10000010B ;PB 输入,PA,PC 输出
MOV DX,IOCONPT
OUT DX,AL ;写命令字
MOV DX,IOBPT ;读 PB 口
IN AL,DX
MOV BYTE PTRDS:[0601H],AL ;保存 PB 口数据
MOV DX,IOCONPT ;8255 控制口
MOV AL,10010010B
OUT DX,AL ;写命令字,PA,PB,PC 输出
MOV DX,IOBPT ;
MOV AL,DS:[0601H]
OR AL,0F0H
OUT DX,AL   
MOV DX,IOCPT
MOV AL,0F0H
OUT DX,AL ;四路口红灯全亮
CALL DELAY1 ;延时
IOLED0: MOV AL,01011010B
MOV DX,IOCPT
OUT DX,AL ;南北绿灯亮,东西红灯亮
CALL DELAY1 ;延时
CALL DELAY1 ;延时  
OR AL,0F0H
OUT DX,AL ;南北绿灯灭
MOV CX,8H ;闪烁8次?
IOLED1: MOV DX,IOBPT
MOV AL,DS:[0601H]
AND AL,10101111B
OUT DX,AL ;南北黄灯亮
CALL DELAY2 ;延时
OR AL,01010000B
OUT DX,AL ;南北黄灯灭
CALL DELAY2 ;延时
LOOP IOLED1 ;南北黄灯闪烁 8 次     
MOV DX,IOCPT
MOV AL,0F0H
OUT DX,AL ;四路口红灯全亮
CALL DELAY2 ;延时
MOV AL,10100000B
OUT DX,AL ;东西绿灯亮
CALL DELAY1 ;延时
CALL DELAY1
OR AL,0F0H
OUT DX,AL ;东西绿灯灭
MOV CX,8H
IOLED2: MOV DX,IOBPT
MOV AL,DS:[0601H]
AND AL,01011111B  ;因为是与,保留低四位
OUT DX,AL ;东西黄灯亮
CALL DELAY2 ;延时
OR AL,11110000B
OUT DX,AL ;东西黄灯灭
CALL DELAY2 ;延时
LOOP IOLED2 ;东西黄灯闪烁 8 次        
MOV DX,IOCPT
MOV AL,0F0H
OUT DX,AL ;四路口红灯全亮
CALL DELAY2
JMP IOLED0 ;循环继续
DELAY1: PUSH AX
PUSH CX
MOV CX,0030H
DELY2: CALL DELAY2
LOOP DELY2
POP CX
POP AX
RET  
DELAY2: PUSH CX
MOV CX,1500H
DELA1: LOOP DELA1
POP CX
RET
CODE ENDS
END START

实验4(8255).rar

15.88 KB, 下载次数: 47, 下载积分: 黑币 -5

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表