更多微机实验:https://blog.csdn.net/yxp189/column/info/39992
汇编语言-微机原理与接口技术-实验
注意:未经允许,请勿转载!
转载请标明出处~
适用课程:微机原理与接口技术(实验)
选用教材:微型计算机原理与接口技术-中国科学技术大学出版社
注意:8255芯片对应多个实验,请于???链接中查看~
一.实验目的
通过并行接口8255实现十字路口交通灯的模拟控制,进一步掌握对并行口的使用。
二.实验内容
如下图,L7、L6、L5作为南北路口的交通灯与PC7、PC6、PC5相连,L2、L1、L0作为东西路口的交通灯与PC2、PC1、PC0相连。编程使六个灯按交通灯变化规律亮灭。
三.编程提示:
十字路口交通灯的变化规律要求:
(1) 南北路口的绿灯、东西路口的红灯同时亮30秒左右。
(2) 南北路口的黄灯闪烁若干次,同时东西路口的红灯继续亮。
(3) 南北路口的红灯、东西路口的绿灯同时亮30秒左右。
(4) 南北路口的红灯继续亮、同时东西路口的黄灯亮闪烁若干次。
(5) 转(1)重复。
四、实验电路图
;Author:YXP
;CSDN:yxp189
;Email:[email protected]
;如有问题,欢迎和我联系~
;转载请标明出处~
DATA SEGMENT
IOPORT EQU 0D100H-0280H
IO8255A EQU IOPORT+28AH
IO8255B EQU IOPORT+28BH
PORTC1 DB 24H,44H,04H,44H,04H,44H,04H ;六个灯可能
DB 81H,82H,80H,82H,80H,82H,80H ;的状态数据
DB 0FFH ;结束标志
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV DX,IO8255B
MOV AL,90H
OUT DX,AL ;设置8255为C口输出
MOV DX,IO8255A
RE_ON: MOV BX,0
ON: MOV AL,PORTC1[BX]
CMP AL,0FFH
JZ RE_ON
OUT DX,AL ;点亮相应的灯
INC BX
MOV CX,20 ;参数赋初值
TEST AL,21H ;是否有绿灯亮
JZ DE1 ;没有,短延时
MOV CX,2000 ;有,长延时
DE1: MOV DI,9000 ;di赋初值5000
DE0: DEC DI ;减1计数
JNZ DE0 ;di不为0
LOOP DE1
PUSH DX
MOV AH,06H
MOV DL,0FFH
INT 21H
POP DX
JZ ON ;没有,转到on
EXIT: MOV AH,4CH ;返回
INT 21H
CODE ENDS
END START