四 8255A并行口实验-----交通灯控制(3页).doc
-四 8255A并行口实验-交通灯控制-第 3 页实验四 8255A并行口实验-交通灯控制一、8255A并行口实验(二)目的掌握通过8255A并行口传输数据的方法,以控制发光二极管的亮与灭。二、8255A并行口实验(二)内容1、实验原理实验原理图如图所示,PB4 PB7和PC0 PC7分别与发光二极管电路L1 L12 相连,本实验为模拟交通灯实验。交通灯的亮灭规律如下:设有一个十字路口,1、3为南北方向,2、4为东西方向,初始为四个路口的红灯全亮,之后,1、3路口的绿灯亮,2、4路口的红灯亮,1、3路口方向通车; 延时一段时间后,1、3路口的绿灯熄灭,而1、3路口的黄灯开始闪烁,闪烁若干次以后,1、3 路口红灯亮, 而同时2、4路口的绿灯亮,2、4路口方向通车;延时一段时间后,2、4 路口的绿灯熄灭,而黄灯开始闪烁,闪烁若干次以后,再切换到1、3路口方向,之后重复上述过程。8255A的PB4 PB7对应黄 灯,PC0 PC3对应红灯,PC4 PC7对应绿灯。8255A工作于模式0,并置为输出。由于各发光二极管为共阳极,使其点亮应使8255A相应端口清0。2、实验线路连接(1) 8255CS插孔连译码输出070H07FH插孔。(2) L1 - PC4 L4 - PC5 L7 - PC6 L10 - PC7L2 - PB4 L5 - PB5 L8 - PB6 L11 - PB7 L3 - PC0 L6 - PC1 L9 - PC2 L12 - PC33、实验步骤 (1) 按图59连好实验线路 (2) 运行实验程序 在系统显示"DVCC 86H"状态下,按任意键,系统显示命令提示符""。 按GO键, 显示 "1000 XX" 输入 F000 : B1B0 按EXEC键,在DVCC8086H上显示"82552"。同时L1L12 发光二极管模拟交通灯显示。三、实验程序CODE SEGMENTASSUME CS:CODEIOCONPT EQU 0073HIOAPTEQU 0070HIOBPTEQU 0071HIOCPTEQU 0072HIOBDATA EQU 0500HCONTPORT EQU 00DFHDATAPORT EQU 00DEHDATA1EQU 0640HSTART:JMP IOLEDIOLED:CALL FORMATCALL LEDDISPMOV AX,0HMOV DS,AXMOV AL,82HMOV DX,IOCONPTOUT DX,ALMOV DX,IOBPTIN AL,DXMOV BYTE PTR DS:0501H,ALMOV DX,IOCONPTMOV AL,80HOUT DX,ALMOV DX,IOBPTMOV AL,DS:0501HOR AL,0F0HOUT DX,ALMOV DX,IOCPTMOV AL,0F0HOUT DX,ALCALL DELAY1IOLED0: MOV AL,10100101BMOV DX,IOCPTOUT DX,ALCALL DELAY1CALL DELAY1OR AL,0F0HOUT DX,ALMOV CX,8HIOLED1: MOV DX,IOBPTMOV AL,DS:0501HAND AL,10101111BOUT DX,ALCALL DELAY2OR AL,01010000BOUT DX,ALCALL DELAY2LOOP IOLED1MOV DX,IOCPTMOV AL,0F0HOUT DX,ALCALL DELAY2MOV AL,01011010BOUT DX,ALCALL DELAY1CALL DELAY1OR AL,0F0HOUT DX,ALMOV CX,8HIOLED2: MOV DX,IOBPTMOV AL,DS:0501HAND AL,01011111BOUT DX,ALCALL DELAY2OR AL,10100000BOUT DX,ALCALL DELAY2LOOP IOLED2MOV DX,IOCPTMOV AL,0F0HOUT DX,ALCALL DELAY2JMP IOLED0DELAY1: PUSH AXPUSH CXMOV CX,0030HDELY2:CALL DELAY2LOOP DELY2POP CXPOP AXRETDELAY2: PUSH CXMOV CX,8000HDELA1:LOOP DELA1POP CXRETLEDDISP:MOV AL,90HMOV DX,CONTPORTOUT DX,ALMOV BYTE PTR DS:0600H,00LED1:CMP BYTE PTR DS:0600H,07HJA LED2MOV BL,DS:0600HMOV BH,0HMOV AL,CS:BX+DATA1MOV DX,DATAPORTOUT DX,ALADD BYTE PTR DS:0600H,01HJNZ LED1LED2:RETFORMAT: MOV BX,0MOV WORD PTR DS:BX+0640H,405BHADD BX,2MOV WORD PTR DS:BX+0640H,4040HADD BX,2MOV WORD PTR DS:BX+0640H,6D6DHADD BX,2MOV WORD PTR DS:BX+0640H,7F5BHRETCODE ENDSEND START