下载后可任意编辑程序源代码 ORG 0000H ;主程序的入口地址 LJMP MAIN ;跳转到主程序的开始处 ORG 0003H ;外部中断 0 的中断程序入口地址 ORG 000BH ;定时器 0 的中断程序入口地址 LJMP T0_INT ;跳转到中断服务程序处 ORG 0013H ;外部中断 1 的中断程序入口地址 MAIN : MOV SP,#50H MOV IE,#8EH ;CPU 开中断,允许 T0 中断,T1 中断和外部中断 1 中断 MOV TMOD,#51H ;设置 T1 为计数方式,T0 为定时方式,且都工作于模式 1 MOV TH1,#00H ;T1 计数器清零 MOV TL1,#00H SETB TR1 ;启动 T1 计时器 SETB EX1 ;允许 INT1 中断 SETB IT1 ;选择边沿触发方式 MOV DPTR ,#0003H MOV A, #80H ;给 8255 赋初值,8255 工作于方式 0 MOVX @DPTR, AAGAIN: JB P3
1,N0 ;推断是否要设定东西方向红绿灯时间的初值,若 P3
1 为 1 则跳转 MOV A,P1 JB P1
7,RED ;推断 P1
7 是否为 1,若为 1 则设定红灯时间,否则设定绿灯时间 MOV R0,#00H ;R0 清零 MOV R0,A ;存入东西方向绿灯初始时间 MOV R3,A LCALL DISP1 LCALL DELAY AJMP AGAINRED: MOV A,P1 ANL A,#7FH ;P1
7 置 0 MOV R7,#00H ;R7 清零 MOV R7,A ;存入东西方向红灯初始时间 MOV R3,A LCALL DISP1 LCALL DELAY AJMP AGAIN;-------------------------------------------N0