8086 8088 8255交通灯实验(源码+超详细注释)

更新时间:2023-04-24 13:43:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

8086 8088 8255交通灯实验(源码)8255控制交通灯实验,汇编语言STAR星研模拟环境

.MODEL TINY ;存储格式伪指令,按.COM文件格式编写

.DATA ;8088片选CS1连8255CS,起始地址0F000H IOCONPT EQU 0F003H ;控制寄存器端口地址

IOAPT EQU 0F000H ;A口地址

.STACK 100 ;开辟堆栈

.CODE

ORG 2000H ;定义起始地址

START:

MOV AX,@DATA

MOV DS,AX

MOV AL,80H ;1 00 0 0 0 0 0B方式0,输出

MOV DX,IOCONPT ;写控制字

OUT DX,AL

MOV AL,10111011B ;东西、南北全红,准备就绪

MOV DX,IOAPT ;DX保存A口地址

OUT DX,AL

CALL DELAY1 ;延时

S: MOV AL,11101011B ;东西方向 绿灯亮,起始状态

OUT DX,AL

CALL DELAY2 ;长延时

MOV CX,0005H ;黄灯闪5次

Y1: MOV AL,11011011B

OUT DX,AL ;黄灯亮

CALL DELAY1 ;短延时

MOV AL,11111011B

OUT DX,AL ;黄灯灭

CALL DELAY1 ;短延时

LOOP Y1

MOV AL,10111110B ;南北红灯,东西绿灯

OUT DX,AL

CALL DELAY2 ;长延时

MOV CX,0005H ;黄灯闪5次

Y2: MOV AL,10111101B

OUT DX,AL

CALL DELAY1

8086 8088 8255交通灯实验(源码)8255控制交通灯实验,汇编语言STAR星研模拟环境

MOV AL,10111111B

OUT DX,AL

CALL DELAY1

LOOP Y2

JMP S ;回到起始状态,不断循环

DELAY1 PROC NEAR ;短延时子过程

PUSH CX ;CX入栈保护(保护外循环次数) MOV CX,08000H ;置LOOP次数

XX:LOOP XX ;跳转至本身,延时作用 POP CX ;CX出栈

RET ;返回

DELAY1 ENDP

DELAY2 PROC NEAR ;长延时子过程

PUSH AX ;AX(AL)入栈保护

PUSH CX ;CX入栈保护

MOV CX,0010H ;置LOOP次数

XXX:CALL DELAY1 ;调用短延时

LOOP XXX ;循环一次,CX减1

POP CX ;数据出栈,先进后出 POP AX

RET ;返回

DELAY2 ENDP

END START

本文来源:https://www.bwwdw.com/article/n8xq.html

Top