单片机红绿灯的汇编语言程序设计 a> 程序源代码 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, A AGAIN: 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 AGAIN RED: MOV A,P1 ANL A,#7FH 1
7 置0 MOV R7,#00H ;R7 清零 MOV R7,A ;存入东西方向红灯初始时间 MOV R3,A LCALL DISP1 LCALL DELAY AJMP AGAIN ;------------------------------------------- N0: