8255并行接口与交通灯控制

只为记录汇编实验(8255考试重点)

①了解8255A的CS端口

8255A的CS端口-----Y1(288H~28FH)

控制寄存器地址        28BH

A口的地址            288H

B口的地址            289H

C口的地址            28AH

②连接电路,此图用到的是PC端因此用C口,也就是MOV DX,28AH

如果是A口则使用的是MOV DX,288H

③看流程图直接按流程走

流程① 设置8255A口输出C口输出

MOV AL,80H
	MOV DX,28BH
	OUT DX,AL

 流程②南北路口绿灯亮,东西路口红灯亮

MOV AL,24H
	MOV DX,28AH
	OUT DX,AL

流程③长延时 引用子程序

CALL  DELAY 

长延时子程序代码如下

;长延迟
DELAY PROC NEAR
	PUSH CX
	PUSH DI
	MOV CX,2000H  ;设置外层循环次数
Y1:	
	MOV DI,2000H  ;设置内层循环次数
X1:	
	DEC DI       
	JNE X1
	LOOP Y1
	POP DI
	POP CX
	RET
DELAY ENDP

流程④南北口黄灯闪烁转红灯   东西口红灯转绿灯(黄灯闪烁四次)

MOV CX,4        ;黄灯闪烁次数
F1:
	MOV AL,44H  ;也就是0100 0100B L2和L6灯亮
	MOV DX,28AH ;C口地址给DX
	OUT DX,AL   ;AL中的值 在DX地址输出

	CALL S	    ;调用短延迟子程序

	MOV AL,04H  ;0000 0100B L2灯亮
	MOV DX,28AH ;C口地址给DX
	OUT DX,AL   
	
	CALL S      ;调用用短延迟子程序
	LOOP F1     ;循环F1也就是黄灯闪烁次数

短延迟  子程序 

;短延迟
S     PROC NEAR
	PUSH CX
	PUSH DI
	MOV CX,1500H  ;设置循环次数
YY:	MOV DI,1500H  ;设置循环次数
XX:	DEC DI        ;二重循环 内层
	JNE XX           
	LOOP YY       ;二重循环 外层
	POP DI
	POP CX
	RET
S ENDP

整体代码如下:

DATA SEGMENT
DATA ENDS
CODE SEGMENT
	ASSUME CS:CODE,DS:DATA
START:
	MOV AX,DATA
	MOV DX,AX

	MOV AL,80H
	MOV DX,28BH
	OUT DX,AL
F:
;状态1
	MOV AL,24H
	MOV DX,28AH
	OUT DX,AL
	
	CALL  DELAY
	
;状态2
	MOV CX,4
F1:
	MOV AL,44H
	MOV DX,28AH
	OUT DX,AL

	CALL S	

	MOV AL,04H
	MOV DX,28AH
	OUT DX,AL
	
	CALL S
	LOOP F1
;状态3
	MOV AL,81H
	MOV DX,28AH
	OUT DX,AL
	CALL DELAY

;状态4
	MOV CX,4
F2:
	MOV AL,82H
	MOV DX,28AH
	OUT DX,AL
	
	CALL S	

	MOV AL,80H
	MOV DX,28AH
	OUT DX,AL

	CALL S
	LOOP F2

	JMP F
;长延迟
DELAY PROC NEAR
	PUSH CX
	PUSH DI
	MOV CX,2000H
Y1:	
	MOV DI,2000H
X1:	
	DEC DI
	JNE X1
	LOOP Y1
	POP DI
	POP CX
	RET
DELAY ENDP	
;短延迟
S     PROC NEAR
	PUSH CX
	PUSH DI
	MOV CX,1500H
YY:	MOV DI,1500H
XX:	DEC DI
	JNE XX
	LOOP YY
	POP DI
	POP CX
	RET
S ENDP

	MOV AH,4CH
	INT 21H
CODE ENDS
END START

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值