1、1、 中断服务程序的主要功能是交替点亮和熄灭 LED 指示灯(即第 1 次进中断点亮LED,第 2 次进中断则熄灭 LED)。当然 8255A 能使用前需要在主程序中初始化。2、 主程序可以采样死等待的方式,如果要结束程序,可以按动实验平台的 Reset 键。也可以采用计数的方法,即进中断 5 次后结束程序。3、 8255 的 PC6 作为中断源,应采用上升沿触发方式(由低到高的变化),为了能够进行下次中断,PC6 必须变为低点平。4、 为了能使 LED 的闪烁可见,在中断各申请之间加入延迟程序。五、流程图- 6 -六、程序清单.MODEL SMALL.386CODE SEGMENTASSUM
2、E CS:CODE START:MOV DX,203HMOV AL,10000000B;设置 8255 控制字OUT DX,AL MOV CL,0 CLI;写入中断屏蔽字 OCW1 时,采用读取-修改-写入的顺序IN AL,21HAND AL,11011111B OUT 21H,AL将中断入口地址写入中断向量表PUSH DS MOV BX,0 MOV DS,BXLEA AX,CS:INT_PROC MOV BX,5MOV SI,30H ADD SI,BX SAL SI,2MOV DS:SI,AX PUSH CSPOP AXMOV DS;SI+2,AX POP DSSTI;开 386CPU 中断
3、L1:MOV AL,00001100B OUT DX,ALCALL DELAY MOV DX,203HMOV AL,00001101B OUT DX,ALCALL DELAY JMP L1INT_PROC PROC FARPUSH AX CMP BL,0 JZ L2MOV DX,201H;PC0=1 MOV AL,01OUT DX,AL MOV BL,0 JMP EXITL2:MOV DX,201H;PC0=0 MOV AL,00OUT DX,AL MOV BL,1EXIT:MOV AL,20HOUT 20H,AL POP AXSTI IRETINT_PROC ENDPDELAY:MOV CX
4、,0FFFFH L3:LOOP L3RET CODE ENDS END START8259-2:利用 8259A 中断次数不同使得8253 产生不同波形通过按键 PLUS 的按下,统计 8259 中断次数,比如按 5 次 8253 产生方波,按 10 次8253 产生窄脉冲周期波形。三、接线图四、流程图连线图五、程序清单CODE SEGMENT START: MOV DX,203HMOV AL,36H;8253 初始化,计数器 0,方式 3,00110110B OUT DX,ALMOV CX,0;CX 初始计 0 MOV BX,0CLIIN AL,21H;设置屏蔽字,IR5 开放INTR MO
5、V BX,05H MOV SI,30H ADD SI,BXSAL SI,2开程序中断WAITING:JMP WAITINGINTR:;中断服务程序PUSH AXPUSH DX CLICMP CX,5JGE L1;CX 大于等于 5 跳转 L1 INC CXJMP L3CMP CX,10;CX 大于等于 10 则跳转 L2 JGE L2MOV DX,200H;输出方波MOV AL,00000100BOUT DX,AL INC CX JMP L3MOV DX,203H;输出窄脉冲周期波形MOV AL, 01111000BOUT DX,AL MOV DX,201HMOV AL, 00000100B OUT DX,ALINC CXL3: MOV AL,20H OUT 20H,AL STIPOP DX POP AX IRETCODE ENDS END START
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1