林立强 1000850116
一、实验目的
1、了解MCS-51单片机的组成、中断原理,中断处理过程、外部中断的中断方式。 2、掌握中断响应及处理的编程方法。
二、实验原理
MCS-51的中断系统中有5个中断源:外部中断INTO,INT1,定时器/计数器TO、T1中断和串口UART中断,它们对应不同的中断矢量。 如表:
IE是中断允许寄存器,其中EXO,ETO,EX1,ET1,ES分别是上述5个中断的允许控制位,EA位是中断总允许位,每个中断只有在相应中断允许且总中断也允许的情况下,才能得到中断响应。80XX51的5个中断都可以设为高低2个优先级,IP是中断优先级寄存器,其中PXO,PTO,PX1,PT1,PS位分别对应5个中断的优先级设置,置“1”时设为高优先级中断,为“0”时是低优先级中断。在有中断嵌套要求时,低优先级中断可被高优先级所中断。当同一级的中断同时到来时,先响应中断矢量排在前面的中断。
三、实验电路
电路原理图如下,所需元件为:AT89C51、SW-SPDT、LED-RED、LED-GREEN、 LED-YELLOW、RES、TRAFFICLIGHTS
四、实验内容
参照实验电路,设计交通灯控制系统。模拟交通信号灯控制:一般情况下正常显示,东西-南北交替放行,各方向通行时间为30秒。有救护车或警车到达时,两个方向交通信号灯全为红色,以便让急救车或警车通过,设通行时间为10秒,之后交通恢复正常。用单次脉冲模拟急救车或警车申请外部中断。
1、在生成HEX文件后,用Proteus软件对电路图进行计算机仿真; 2、程序下载到单片机实验板上验证; (实验板数码管的驱动程序见附件)。 五、程序流程图
仿真图:
紧急情况:
源程序:
ORG 0000H AJMP START ORG 0023H //串口中断地址 AJMP SBR1
START:MOV TMOD,#00100000B //定时器方式2 MOV TL1,#0FDH //9600bps/11.0592MHz MOV TH1,#0FDH SETB TR1 MOV SCON,#01100000B //方式1 MOV R0,#20H MOV R1,#40H ACALL SOUT SJMP $
SBR1: JNB RI,SEND ACALL SIN SJMP NEXT SEND: ACALL SOUT NEXT: RETI
SOUT: MOV A,@R0 MOV C,P CPL C MOV ACC.7,C
INC R0 MOV SBUF,A CLR TI RET
SIN: MOV A,SBUF MOV C,P CPL C ANL A,#7FH MOV @R1,A INC R1 CLR RI RET
PLAY: MOV A,R7 MOV B,#10 RET
TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H // 0 1 2 3 4 5 6 7 8 9 A B C D E F
END
因篇幅问题不能全部显示,请点此查看更多更全内容