一、实验目的及要求
1、通过对并行接口8255编程、调试,进一步熟悉仿真软件Proteus的使用方法,掌握8255的基本编程及调试方法,掌握编写程序控制硬件接口。
2、学生在实验课前必须认真预习教材与资料中的相关内容,绘制流程图,编写源程序,为实验做好充分准备,实验后撰写实验报告。
二、实验设备
Proteus 8 Professional、DOSBox 0.74、masm 5、EditPlus 5.2、PC机一台
三、实验内容
实现8255A口控制8个指示灯,循环点亮(瞬间只有一个灯亮)
- 实验原理图
图1.1 8086CPU最小模式
图1.2 地址总线
图1.3 译码电路
图1.4 8255接口流水灯实验原理图
四、实验步骤
1、建立实验工程文件,绘制实验的原理图方案;
2、编写程序源代码,实现8255A口控制8个指示灯,循环点亮(瞬间只有一个灯亮)。
2、观察验证实验结果。
五、程序参考流程图
图1.5 8255接口流水灯程序流程图
- 参考源程序
;FILE:8255.ASM ;This program is used for test output of 8255'S A port ;CHIP:8255 ;CS -->9000H ;PA0--PA7-->LED PORT_8255_A EQU 9000H PORT_8255_B EQU 9002H PORT_8255_C EQU 9004H CONTROL_PORT_8255 EQU 9006H DELAY_NUM EQU 0FFFFH STACK SEGMENT PARA STACK 'STACK' STA DB 1024 DUP(?) STACK ENDS CODE SEGMENT ASSUME CS:CODE,SS:STACK BEGIN:MOV DX,CONTROL_PORT_8255 MOV AL,00000001B ;A口,模式零,端口输出 OUT DX,AL MOV DX,PORT_8255_A MOV AL,0FFH OUT DX,AL ;关灯 MOV AL,0FEH ;11111110B 字模 NEXT:OUT DX,AL CALL DELAY ROR AL,1 ;11111101--11111011 JMP NEXT DELAY PROC NEAR PUSH CX MOV CX,DELAY_NUM ;Delay Times=DELAY_NUM AGAIN :NOP NOP LOOP AGAIN POP CX RET DELAY ENDP CODE ENDS END BEGIN
六、实验结果及思考问题
1.如何使LED闪亮的顺序反向?
答:将11111110,逻辑左移,如果CF=1,则将循环左移的数加1,再这基础上重复循环上一步骤。
2.如何调整LED闪亮的时间间隔?
答:改变NOP指令的个数;改变延时子程序中的CX值。