单片机红绿灯的汇编语言程序设计.doc

上传人:李医生 文档编号:6059452 上传时间:2020-09-02 格式:DOC 页数:7 大小:25.50KB
返回 下载 相关 举报
单片机红绿灯的汇编语言程序设计.doc_第1页
第1页 / 共7页
单片机红绿灯的汇编语言程序设计.doc_第2页
第2页 / 共7页
单片机红绿灯的汇编语言程序设计.doc_第3页
第3页 / 共7页
单片机红绿灯的汇编语言程序设计.doc_第4页
第4页 / 共7页
单片机红绿灯的汇编语言程序设计.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《单片机红绿灯的汇编语言程序设计.doc》由会员分享,可在线阅读,更多相关《单片机红绿灯的汇编语言程序设计.doc(7页珍藏版)》请在三一文库上搜索。

1、单片机红绿灯的汇编语言程序设计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,#00

2、H 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 A

3、JMP 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: SETB TR0 ;启动T0计时器 MOV 76H,R7 ;红灯时间存入76H N00: MOV A,76H ;东西方向禁止,南北方向通行 MOV R3,A MOV DPTR,#0000H ;置8255A口,东西方向红灯亮,南北方向绿灯亮 MOV A,#0DDH MOVX DPTR, A N01: JB P2.0,B0 N02: S

4、ETB P3.0 CJNE R3,#00H,N01 ;比较R3中的值是否为0,不为0转到当前指令处执行 ;-黄灯闪烁5秒程序- N1: SETB P3.0 MOV R3,#05H MOV DPTR,#0000H ;置8255A口,东西,南北方向黄灯亮 MOV A,#0D4H MOVX DPTR,A N11: MOV R4,#00H N12: CJNE R4,#7DH,$ ;黄灯持续亮0.5秒 N13: MOV DPTR,#0000H ; 置8255A口,南北方向黄灯灭 MOV A,#0DDH MOVX DPTR,A N14: MOV R4,#00H CJNE R4,#7DH,$ ;黄灯持续灭0

5、.5秒 CJNE R3,#00H,N1 ;闪烁时间达5秒则退出 ;- N2: MOV R7,#00H MOV A,R0 ;东西通行,南北禁止 MOV R3,A MOV DPTR,#0000H ; 置8255A口,东西方向绿灯亮,南北方向红灯亮 MOV A,#0EBH MOVX DPTR,A N21: JB P2.0,T03 N22: CJNE R3,#00H,N21 ;-黄灯闪烁5秒程序- N3: MOV R3,#05H MOV DPTR,#0000H ;置8255A口,东西,南北方向黄灯亮 MOV A,#0E2H MOVX DPTR,A N31: MOV R4,#00H CJNE R4,#7

6、DH,$ ;黄灯持续亮0.5秒 N32: MOV DPTR,#0000H ; 置8255A口,南北方向黄灯灭 MOV A,#0EBH MOVX DPTR,A N33: MOV R4,#00H CJNE R4,#7DH,$ ;黄灯持续灭0.5秒 CJNE R3,#00H,N3 ;闪烁时间达5秒则退出 SJMP N00 ;-闯红灯报警程序- B0: MOV R2,#03H ;报警持续时间3秒 B01: MOV A,R3 JZ N1 ;若倒计时完毕,不再报警 CLR P3.0 ;报警 CJNE R2,#00H,B01 ;判断3秒是否结束 SJMP N02 ;-1秒延时子程序- N7: RETI T0

7、_INT:MOV TL0,#9AH ;给定时器T0送定时10ms的初值 MOV TH0,#0F1H INC R4 INC R5 CJNE R5,#0FAH,T01 ;判断延时是否够一秒,不够则调用显示子程序 MOV R5,#00H ;R5清零 DEC R3 ;倒计时初值减一 DEC R2 ;报警初值减一 T01: ACALL DISP ;调用显示子程序 RETI ;中断返回 ;-显示子程序- DISP: JNB P2.4,T02 DISP1: MOV B,#0AH MOV A,R3 ;R3中值二转十显示转换 DIV AB MOV 79H,A MOV 7AH,B DIS: MOV A,79H ;

8、显示十位 MOV DPTR,#TAB MOVC A,A+DPTR MOV DPTR,#0002H MOVX DPTR,A MOV DPTR,#0001H MOV A,#0F7H MOVX DPTR,A LCALL DELAY DS2: MOV A,7AH ;显示个位 MOV DPTR,#TAB MOVC A,A+DPTR MOV DPTR,#0002H MOVX DPTR,A MOV DPTR,#0001H MOV A,#0FBH MOVX DPTR,A RET ;-东西方向车流量检测程序- T03: MOV A,R3 SUBB A,#00H ;若绿灯倒计时完毕,不再检测车流量 JZ N3 J

9、B P2.0,T03 INC R7 CJNE R7,#64H,E1 MOV R7,#00H ;中断到100次则清零 E1: SJMP N22 ;-东西方向车流量显示程序- T02: MOV B,#0AH MOV A,R7 ;R7中值二转十显示转换 DIV AB MOV 79H,A MOV 7AH,B DIS3: MOV A,79H ;显示十位 MOV DPTR,#TAB MOVC A,A+DPTR MOV DPTR,#0002H MOVX DPTR,A MOV DPTR,#0001H MOV A,#0F7H MOVX DPTR,A LCALL DELAY DS4: MOV A,7AH ;显示个

10、位 MOV DPTR,#TAB MOVC A,A+DPTR MOV DPTR,#0002H MOVX DPTR,A MOV DPTR,#0001H MOV A,#0FBH MOVX DPTR,A LJMP N7 ;-延时4MS子程序- DELAY: MOV R1,#0AH LOOP: MOV R6,#64H NOP LOOP1: DJNZ R6,LOOP1 DJNZ R1,LOOP RET ;-字符表- TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH END ORG 0000H AJMP MAIN ORG 000BH LJMP INT ORG 0

11、030H MAIN:MOV R2,#20H MOV TMOD,#01H MOV TL0,#0B0H MOV TH0,#80H SETB EA SETB ET0 SETB TR0 LOOP:MOV A,#01H MOV P1,A LCALL DEL MOV R0,#02H LCALL FP LOOP1:MOV A,#02H MOV P1,A LCALL DEL MOV R0,#02H LCALL FP LOOP2:MOV A, #04H MOV P1,A LCALL DEL MOV R0,#05H LCALL FP MOV P1,#00H LCALL DEL CJNE R0,#00H ,AA S

12、JMP LOOP FP:MOV R1,#80H MOV A,R1 MOV DPTR,#3FFFH MOVX DPTR,A RR A MOV R1,A MOV A,R0 ANL A,#0FH MOV DPTR,#TAB MOVC A,A+DPTR MOV DPTR,#5FFFH MOVX DPTR,A LCALL DEL MOV A,#0FFH MOV DPTR,#5FFFH MOVX DPTR,A MOV A,R1 MOV DPTR,#3FFFH MOVX DPTR,A MOV A,R0 ANL A,#0F0H SWAP A MOV DPTR,#TAB MOVC A,A+DPTR MOV DP

13、TR,#5FFFH MOVX DPTR,A LCALL DEL MOV A,#0FFH MOV DPTR,#5FFFH MOVX DPTR,A CJNE R0,#99H,FP RET DEL:MOV R5,#100H DEL0:MOV R6,#250H DEL1JNZ R6,DEL1 DJNZ R5,DEL0 RET INT: CLR ET0 DJNZ R2,GOON MOV A,R0 ADD A,#99H DA A MOV R0,A MOV R2,#20H GOON:MOV TMOD,#01H MOV TL0,#0B0H MOV TH0,#80H SETB EA SETB ET0 SETB TR0 RETI TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H END

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1