实验二 8255A并行接口实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验二 8255A并行接口实验(一)
一实验目的
1、掌握通过8255A并行口传输数据控制LED发光二极管的亮灭;进一
步熟悉软件编程环境。
二实验设备
1、微机系统一套;
2、TPC-3型微机接口实验系统一台;
3、导线若干。
三实验内容
1、基础部分:用8255A的A端口控制8个LED发光二极管的亮和灭(端口
输出为1则亮,输出为0则灭)。其中L0―L2为东西方向,L5―L7为南北
方向、L3-L4不用,PA口与相应的发光二极管驱动信号输入端相连,输入端
为1时发光二极管亮。接线如图4-5所示。
图4-5
编制程序,通过8255A控制发光二极管,以模拟交通灯的管理。
2.提高部分:利用开关K0,K1的控制,以模拟几种交通灯的管理,具体要求
为:
K0K1灯控制
00正常运行
01南北路口绿灯亮、东西路口红灯亮
10东西路口绿灯亮、南北路口红灯亮
3.如果模拟车流量大小来来决定红绿灯交通时间,请问你有什么解决办法。如果
能解决请加以解释并编程调试。
四、编程提示:
1.要完成本实验,首先必须了解交通灯的亮灭规律。设有一个十字路口,南北、东西方向初始态为四个路口的红灯全亮。之后,南北路口的绿灯亮,东西
路口的红灯亮,南北路口方向通车。延迟一段时间后,南北路口的绿灯熄灭,
而南北路口的黄灯开始闪烁。闪烁8次后,南北路口的红灯亮,同时东西路口
的绿灯亮,东西路口方向开始通车。延迟一段时间后,东西路口的绿灯熄灭,
而黄灯开始闪烁。闪烁苦干次后,再切换到南北路口方向。之后,重复上述过
程。
2.程序中应设定好8255A的工作模式,使三个端口均工作于方式0,并处于输出态
3.8255A的A端口地址为:288H
B端口地址为:289H
C端口地址为:28AH
控制口地址为:28BH
五、实验要求:
1.做好实验预习和准备工作,并写出预习报告(要求写出实验的流程图及程序),熟练掌握8255A编程原理及编程方法。
2.实验操作的最低要求是要做出实验内容的基础部分,然后根据实际操作能力争取做出实验内容的提高部分及回答实验内容的第三部分问题。
3.写出实验报告,内容为:
1)实验目的;
2)实验设备;
3)实验中遇到的问题及解决问题的分析思路与办法,问题定位及问题的性质;
4)对本实验的建议及有何创新。
;这是自动生成的代码模板
STACKS SEGMENT STACK ;堆栈段
DW 128 DUP(?) ;注意这里只有128个字节
STACKS ENDS
DATAS SEGMENT ;数据段
;请在这里定义您的数据
DATAS ENDS
CODES SEGMENT ;代码段
ASSUME CS:CODES,DS:DATAS
START: MOV AX,DATAS ;初始化
MOV DS,AX
MOV AL,80H
MOV DX,028BH
OUT DX,AL
MOV AL,84H ;初态红灯全亮
MOV DX,288H
OUT DX,AL
MOV CX,30
D1: MOV AL,24H ;南北绿灯亮,东西红灯亮MOV DX,288H
OUT DX,AL
CALL DELAY
LOOP D1
MOV CX,8
D2: MOV AL,44H ;南北黄灯亮,东西红灯亮MOV DX,288H
OUT DX,AL
CALL DELAY
MOV AL,04H
MOV DX,288H
OUT DX,AL
CALL DELAY
LOOP D2
MOV CX,30
D3: MOV AL,81H ;南北红灯亮,东西绿灯亮MOV DX,288H
OUT DX,AL
CALL DELAY
LOOP D3
MOV CX,8
D4: MOV AL,82H :南北红灯亮,东西黄灯亮MOV DX,288H
OUT DX,AL
CALL DELAY
MOV AL,80H
MOV DX,288H
OUT DX,AL
CALL DELAY
LOOP D4
MOV AH,01H
INT 16H
JZ D1
MOV AX,4C00H ;退出程序
INT 21H
DELAY PROC NEAR
PUSH CX
PUSH DI
MOV CX,9000H
Y1: MOV DI ,5000H
X1: DEC DX
JNZ X1
LOOP Y1
POP DI
POP CX
RET
DELAY ENDP
CODES ENDS
END START
MY8255_A EQU 288H
MY8255_B EQU 289H
MY8255_C EQU 28AH
MY8255_MODE EQU 28BH
STACKS SEGMENT STACK ;堆栈段
DW 128 DUP(?) ;注意这里只有128个字节STACKS ENDS
DATAS SEGMENT ;数据段
;请在这里定义您的数据
DATAS ENDS
CODES SEGMENT ;代码段
ASSUME CS:CODES,DS:DATAS