|
//****用p0口德八個(gè)引腳控制交通燈閃爍P2.5——p2.7分別代表東西路口的紅黃綠燈P2.0—-p2.2分別代表南北路口的紅黃綠燈
//****1.開(kāi)始時(shí)東西紅燈亮南北綠燈亮(延時(shí)10s) ****//
//****2.然后東西紅燈亮南北黃燈閃爍3次(亮一秒,滅一秒)****//
//****3.然后東西綠燈亮南北紅燈亮(延時(shí)10s)****//
//****4.然后東西黃燈閃爍3次(亮一秒,滅一秒)****//
//****5.返回的第一步繼續(xù)循環(huán)****//
ORG 0000H
AJMP MAIN
ORG 000BH
LJMP T1INT1
ORG 0030H
MAIN: MOV P2,#00100100B
MOV A,#06
DINGSHI:
AA3: MOV R1,#03
MOV R2,#03
MOV R7,#20
AA2: MOV TMOD,#10H
MOV TH1,#3CH
MOV TL1,#0BDH
SETB ET1
SETB EA
SETB TR1
T1INT1:DJNZ R7,ZD1 //***定時(shí)1S***//
DEC A
MOV R6,A
LCALL XIANSHI
MOV A,R6
CJNE A,#3,ZD4
JNB P2.0,ZD2
LJMP ZD3
ZD2: SETB P2.1 //***南北黃燈閃爍***//
DEC A
MOV R6,A
LCALL XIANSHI
MOV A,R6
CLR P2.1
DJNZ R1,ZD2
MOV P2,#10000001B //****東西綠燈亮南北紅燈亮****//
MOV A,#06
LJMP ZD4
ZD3:SETB P2.6 //***東西黃燈閃爍***//
DEC A
MOV R6,A
LCALL XIANSHI
MOV A,R6
CLR P2.6
DJNZ R2,ZD3
MOV P2,#00100100B //***東西紅燈亮南北綠燈亮***//
MOV A,#06
LJMP ZD4
ZD1: CLR TF0
LJMP AA2
ZD4:CLR TF0
LJMP AA3
RETI
DELAY1s:MOV R3,#10 //***延時(shí)函數(shù)(1s)***//
MOV TMOD,#01H
LOOP:MOV TH0,#1FH
MOV TL0,#0F6H
SETB TR0
LOOP1:JBC TF0,LOOP2
SJMP LOOP1
LOOP2:CLR TR0
DJNZ R3,LOOP
RET
XIANSHI:ANL A,#0FH
MOV R4,A
ANL A,#0F0H
SWAP A
MOV R5,A
MOV A,R4
MOV DPTR,#LEDMAP
MOVC A,@A+DPTR
CLR P2.3
MOV P0,A
SETB P2.3
MOV A,R5
MOVC A,@A+DPTR
CLR P2.4
MOV P0,A
SETB P2.4
RET
DELAY1ms:CLR TF0
MOV TMOD,#00H
MOV TH0,#1CH
MOV TL0,#18H
SETB TR0
RET
LEDMAP:db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h
db 7fh,6fh,77h,7ch,39h,5eh,79h,71h
RET
NOP
NOP
end
求大神查錯(cuò)
這個(gè)程序是自己寫(xiě)的,似乎問(wèn)題不小啊,中斷到底怎么用啊,但這個(gè)程序可以用keil4進(jìn)行軟件仿真,用protutes7,就沒(méi)有理想的結(jié)果。
我感覺(jué)顯示那塊有點(diǎn)問(wèn)題,還有就是定時(shí)器,延時(shí)程序都不太對(duì),現(xiàn)在想大神指點(diǎn)一下,或者費(fèi)神根據(jù)本帖用匯編寫(xiě)一下,萬(wàn)分感謝。
|
|