c51倒计时程序汇编语言,51单片机汇编程序:倒计时交通灯
一個51單片機匯編語言的程序,要求就是紅燈25秒,綠燈20秒,黃燈閃爍5秒。
很簡單的要求,用下圖電路即可實現:
全部程序如下:
;倒計時交通燈
;四位共陽數碼管
;P0?接段碼
;P2.0123?接位碼
;P3?接紅綠黃燈
NB_R???EQU??P3.0
NB_Y???EQU??P3.1
NB_G???EQU??P3.2
DX_R???EQU??P3.3
DX_Y???EQU??P3.4
DX_G???EQU??P3.5
;-------------------------------------------
ORG???0000H
JMP???MAIN
ORG???000BH?????????;T0中斷的入口地址
MOV???TL0,?#0B0H
MOV???TH0,?#3CH?????;50ms中斷一次
DJNZ??R2,?EXIT_T0
MOV???R2,?#20???????;定時1s
DEC???R3????????????;倒計時
DEC???R4????????????;倒計時
EXIT_T0:
RETI
;***************************************
MAIN:
MOV???TMOD,?#01H
MOV???TH0,?#3CH?????;定時50ms
MOV???TL0,?#0B0H
MOV???R2,?#20???????;定時1s
SETB??TR0
SETB??ET0
SETB??EA
MOV???SP,?#60H
;***************************************
N_B:????????????????????;南北
MOV???P3,?#0????????;關閉全部紅綠燈
SETB??NB_G
SETB??DX_R
MOV???R3,?#20???????;南北通行時間
MOV???R4,?#25
NB_W1:
CJNE??R3,?#0,?NB_DISP
MOV???R3,?#5????????;南北黃燈時間
SJMP??N_B_Y
NB_DISP:
CALL??DISPLAY
SJMP??NB_W1
;-----------------------
N_B_Y:
CLR???NB_G
NB_W2:
CJNE??R4,?#0,?NB_DISP2
JMP???D_X
NB_DISP2:
MOV???A,?R2
MOV???C,?ACC.3
MOV???NB_Y,?C
CALL??DISPLAY
SJMP??NB_W2
;***************************************
D_X:
MOV???P3,?#0????????;關閉全部紅綠燈
SETB??DX_G
SETB??NB_R
MOV???R3,?#25
MOV???R4,?#20???????;東西通行時間
DX_W1:
CJNE??R4,?#0,?DX_DISP
MOV???R4,?#5????????;東西黃燈時間
SJMP??D_X_Y
DX_DISP:
CALL??DISPLAY
SJMP??DX_W1
;-----------------------
D_X_Y:
CLR???DX_G
DX_W2:
CJNE??R3,?#255,?DX_DISP2
JMP???N_B
DX_DISP2:
MOV???A,?R2
MOV???C,?ACC.3
MOV???DX_Y,?C
CALL??DISPLAY
SJMP??DX_W2
;***************************************
DISPLAY:
MOV???DPTR,?#TAB1
MOV???A,?R3
MOV???B,?#10
DIV???AB
MOVC??A,?@A?+?DPTR
MOV???P0,?A
MOV???P2,?#1
DJNZ??R7,?$
DJNZ??R7,?$
MOV???P2,?#0
;----------------------
MOV???A,?B
MOVC??A,?@A?+?DPTR
MOV???P0,?A
MOV???P2,?#2
DJNZ??R7,?$
DJNZ??R7,?$
MOV???P2,?#0
;----------------------
MOV???A,?R4
MOV???B,?#10
DIV???AB
MOVC??A,?@A?+?DPTR
MOV???P0,?A
MOV???P2,?#4
DJNZ??R7,?$
DJNZ??R7,?$
MOV???P2,?#0
;----------------------
MOV???A,?B
MOVC??A,?@A?+?DPTR
MOV???P0,?A
MOV???P2,?#8
DJNZ??R7,?$
DJNZ??R7,?$
MOV???P2,?#0
RET
TAB1:
DB??0C0H,?0F9H,?0A4H,?0B0H,?99H
DB???92H,??82H,?0F8H,??80H,?90H
;***************************************
END
;-------------------------------------------
總結
以上是生活随笔為你收集整理的c51倒计时程序汇编语言,51单片机汇编程序:倒计时交通灯的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 王者荣耀录像不支持怎么办(如何玩好《王者
- 下一篇: 网上学c语言推荐课程网站,C语言教学网络