微机接口实验 报告 程序.doc
文本预览下载声明
题目一 实验二 交通灯控制实验
一、实验目的
通过并行接口8255实现十字路口交通灯的模拟控制,进一步掌握对并行口的使用。
二、实验内容
如图5-3,L7、L6、L5作为南北路口的交通灯与PC7、PC6、PC5相连,L2、L1、L0作为东西路口的交通灯与PC2、PC1、PC0相连。编程使六个灯按交通灯变化规律燃灭。
8255控制寄存器端口地址 28BH A口的地址 288H C口的地址 28AH
2、十字路口交通灯的变化规律要求:
(1) 南北路口的绿灯、东西路口的红灯同时亮3秒左右。
(2) 南北路口的黄灯闪烁若干次,同时东西路口的红灯继续亮。
(3) 南北路口的红灯、东西路口的绿灯同时亮3秒左右。
(4) 南北路口的红灯继续亮、同时东西路口的黄灯亮闪烁若干次。
(5) 转(1)重复。
三、参考流程图
设置8255A口输出C口输出开 始南北路口黄灯闪,东西路口红灯亮南北路口绿灯亮,东西路口红灯亮长延时南北路口红灯亮,东西路口绿灯亮长延时是否有键按下NY返回DOS南北路口红灯亮,东西路口黄灯闪
四、源程序及注释
;微机原理与接口技术实验,题目一,交通灯控制台
DATA SEGMENT ;数据段
IOPORT EQU 0C400H-0280H ;使用动态分配的io基地址代替0C400H
IO8255 EQU IOPORT+028BH ;寄存器
IO8255C EQU IOPORT+028AH ;8255的c口
DATA ENDS
EXTRA SEGMENT ;附加段
EXTRA ENDS
STACK1 SEGMENT PARA STACK ;堆栈段
STACK1 ENDS
CODE SEGMENT ;代码程序段
ASSUME CS:CODE,DS:DATA,SS:STACK1,ES:EXTRA
;设置为高电平LED亮灯
START: MOV AX,DATA
MOV DS,AX
MOV AL,80H
MOV DX,IO8255
OUT DX,AL ;设置8255
LOP:MOV DX,IO8255C
MOV AL
OUT DX,AL ;(1)南北路口的绿灯、东西路口的红灯同时亮3秒左右。
CALL LDELAY
MOV CX,4 ;(2)南北路口的黄灯闪烁若干次,同时东西路口的红灯继续亮。
E1: MOV AL
OUT DX,AL
CALL SDELAY
MOV AL
OUT DX,AL
CALL SDELAY
LOOP E1
MOV AL
OUT DX,AL ;(3)南北路口的红灯、东西路口的绿灯同时亮3秒左右。
CALL LDELAY
MOV CX,4;(4)闪烁可选,南北路口的红灯继续亮、同时东西路口的黄灯亮闪烁若干次。
E2: MOV AL
OUT DX,AL
CALL SDELAY
MOV AL
OUT DX,AL
CALL SDELAY
LOOP E2
JMP LOP
LDELAY PROC ;长延时子程序
PUSH CX
PUSH AX
PUSH BX
MOV BX,2
T0: MOV CX,0FFFFH ;外层循环
T1: MOV AX,0FFFFH
T2: DEC AX
JNZ T2
MOV AH,1
INT 16H
JNZ EXIT
LOOP T1
DEC BX
JNZ T0
POP BX
POP AX
POP CX
RET
LDELAY ENDP
SDELAY PROC ;短延时子程序
PUSH CX
PUSH AX
MOV CX,0FFFH
TH1: MOV AX,0FFFFH
TH2: DEC AX
JNZ TH2
MOV AH,1
INT 16H
JNZ EXIT
LOOP TH1
POP AX
POP CX
RET
SDELAY ENDP
EXIT:MOV AH,4CH
INT 21H
CODE ENDS
END START
五、总结
第一次实验,我们熟悉了TPC-2003A的系统环境和软件编译步骤。本实验通过8255进行并口扩展,实现了交通灯的模拟控制,通过延时实现了灯的闪烁和亮一段时间。
实验中需要用软件得到不同的被动分配的IO基地址:c400。
1
MOV AL,80H
MOV DX,IO8255
OUT DX,AL ;设置8255
设置8255A口输出C口输出。
2
在子程序中使用
MOV AH,1
INT 16H
JNZ EXIT
查询键盘状态是否退出,随时可以退出主程序。
题目二 实验一 可
显示全部