于州 冒8255控制异82H,使日口数据保存在L中 读取吧口数据保存在L中 置8255控制字30H1,使各端口均为出口,且均工作于方式可 使四个路口的红灯全亮 延时一段时间 点亮1、3路口绿灯 时 隐灭1路口绿灯 、3路口黄打内烁8闪 四个红灯全习 点亮2、4路口球灯 延时 熄灭2、4搭口球灯 4路口绿灯闪烁8次 画个红订全亮 六、实验步骤 L.在系统显示监控提示符“P.”时,按SCAL键。 2.按图6-4连好实验线路 8255A:PC0-L3,PC1->L6,PC2-L9,PC3->L12,PC4->L2,PC5-L5 PC6->L8,PC7->L11:
PB4-L1,PB5-L4,PB6->L7,PB7->L10 3.在“P.”态时,输入11E0后,按EXEC键:系统显示执行符“下”,同 时L1-L15发光二极管模拟交通灯显示。 七、实验程序清单 CODE SEGMENT :H8255-2.ASM ASSUME CS:CODE IOCONPT EQU OFF2BH :8255控制口 I0APT EQU OFF28H :PA口 IOBPT EQU OFF29H :PB口 IOCPT EQU OFF2AH :P℃口 ORG 11eOH START: MOV AL,82H :PB输入,PA,PC输出 MOV DX,IOCONPT OUT DX,AL :写命令字 MOV DX,IOBPT :读PB口 IN AL,DX MOV BYTE PTR DS:[O6OIHD,AL:保存PB口数据 MOV DX,IOCONPT :8255控制口 MOV AL,80H OUT DX,AL :写命令字,PA,PB,PC输出 MOV DX,IOBPT MOV AL,DS:[0601H] OR AL,OFOH OUT DX,AL MOV DX,IOCPT MOV AL,OFOH OUT DX,AL ;四路口红灯全亮 CALL DELAY1 :延时
M0VAL,10100101B MOV DX,IOCPT OUT DX,AL :南北绿灯亮,东西红灯亮 CALL DELAY1 :延时 CALL DELAY1 :延时 OR AL,OFOH OUT DX,AL :南北绿灯灭 MOV CX,8H IOLED1:MOV DX,IOBPT MOV AL,DS:[0601H] AND AL,10101111B OUT DX,AL :南北黄灯亮 CALL DELAY2 :延时 0RAL,01010000B OUT DX,AL 南北黄灯灭 CALL DELAY2 :延时 LOOP IOLED1 :南北黄灯闪烁8次 MOV DX,IOCPT MOV AL,OFOH OUT DX,AL :四路口红灯全亮 CALL DELAY2 :延时 MOV AL,01011010B OUT DX,AL :东西绿灯亮 CALL DELAY1 :延时 CALL DELAY1 OR AL,OFOH OUT DX,AL ;东西绿灯灭 MOV CX,8H IOLED2: MOV DX,IOBPT
MOV AL,DS:[0601H] AND AL,01011111B OUT DX,AL :东西黄灯亮 CALL DELAY2 :延时 0RAL,10100000B OUT DX,AL :东西黄灯灭 CALL DELAY2 :延时 LOOP IOLED2 :东西黄灯闪烁8次 MOV DX,IOCPT MOV AL,OFOH OUT DX,AL 四路口红灯全亮 CALL DELAY2 JMP IOLEDO :循环继续 DELAY1:PUSH AX PUSH CX MOV CX,0030H DELY2:CALL DELAY2 LOOP DELY2 POP CX POP AX RET DELAY2: PUSH CX MOV CX,8000H DELA1:LOOP DELA1 POP CX RET CODE ENDS END START