微机原理与接口实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微机接口实验报告
(2011-2012年第1学期考核要求)
实验一交通灯控制实验
【实验目的】
通过并行接口8255实现十字路口交通灯的模拟控制,进一步掌握对并行口的使用。【实验仪器】
1.PC微机系统一套
2.TPC-USB通用微机接口实验系统一套
【实验内容】
如下图所示,L7、L6、L5作为南北路口的交通灯与PC7、PC6、PC5相连,L2、L1、L0、作为东西路口的交通灯与PC2、PC1、PC0相连。编程使六个灯按交通灯变化规律燃灭。
图1-1
【实验要求】
1.8255控制寄存器端口地址0EC0BH
8255C口地址0EC0AH
2.十字路口交通灯的变化规律要求:
(1)南北路口的绿灯、东西路口的红灯同时亮3s左右;
(2)南北路口的黄灯闪烁若干次,同时东西路口的红灯继续亮;
(3)南北路口的红灯、东西路口的绿灯同时亮3s左右;
(4)南北路口的红灯继续亮,同时东西路口的黄灯闪烁若干次;
(5)转(1)重复。
实验流程图如下:
【实验程序和调试】
1.源程序
;************************************************************;
C口连接灯:南北红灯东西黄灯—10000010B=82H;
南北红灯东西绿灯—10000001B=81H;
南北黄灯东西红灯—01000100B=44H;
南北绿灯东西红灯—00100100B=24H;
;************************************************************;
MY8255_C EQU 0EC0AH ;8255的C口地址
MY8255_MODE EQU 0EC0BH ;8255的控制寄存器地址
STACK1 SEGMENT STACK
DW 256 DUP(?)
STACK1 ENDS
DA TA SEGMENT
LA DB ? ;定义数据变量
LB DB ?
DA TA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV DX,MY8255_MODE ;定义8255工作方式
MOV AL,80H ;工作方式0,A口和C口为输出
OUT DX,AL
LOOP1: MOV DX,MY8255_C ;写C口发出的数据,南北路口绿灯,东西路口红灯亮MOV AL,24H ;00100100B,PC5=PC2=1
OUT DX,AL
CALL DALL Y1
MOV CX,08H
L1: MOV DX,MY8255_C ;写C口发出的数据,南北方向黄灯亮,东西方向红灯亮MOV AL,44H ;01000100B,P6=P2=1
OUT DX,AL
CALL DALL Y2
MOV DX,MY8255_C ;写C口发出的数据,南北方向黄灯灭,东西方向红灯亮MOV AL,04H
OUT DX,AL
CALL DALL Y2
LOOP L1
MOV DX,MY8255_C ;写C口发出的数据,南北方向红灯亮,东西方向绿灯亮MOV AL,081H
OUT DX,AL
CALL DALL Y1
MOV CX,08H
L2: MOV DX,MY8255_C ;写C口发出的数据,南北方向红灯亮,东西方向黄灯亮
MOV AL,082H
OUT DX,AL
CALL DALL Y2
MOV DX,MY8255_C ;写C口发出的数据,南北方向红灯亮,东西方向黄灯灭MOV AL,080H
OUT DX,AL
CALL DALL Y2
LOOP L2
MOV AH,1 ;判断是否有按键按下,调用功能号1
INT 16H ;ROM BIOS 功能调用
JZ LOOP1 ;无按键则跳回继续循环,有则退出
QUIT: MOV AX,4C00H ;结束程序退出
INT 21H ;DOS 系统功能调用
DALL Y PROC NEAR ;软件延时子程序
PUSH CX
PUSH AX
MOV CX,0FFFH
D1: MOV AX,0FFFFH
D2: DEC AX
JNZ D2
LOOP D1
POP AX
POP CX
RET
DALL Y ENDP
DALL Y1 PROC NEAR ;软件延时子程序,东西方向红灯亮,南北方向绿灯亮PUSH CX
PUSH AX
MOV CX,1EH
D3: CALL DALL Y
LOOP D3
POP AX
POP CX
RET
DALL Y1 ENDP
DALL Y2 PROC NEAR ;软件延时子程序,黄灯闪烁(即亮与灭)的时间间隔PUSH CX
PUSH AX
MOV CX,02H
D4: CALL DALL Y
LOOP D4
POP AX
POP CX
RET