|
這是一個(gè)51單片機(jī)24秒倒計(jì)時(shí)的程序,但是其中有一個(gè)錯(cuò)誤,哪位大神能夠幫忙找到
ORG 0000H
SJMP MAIN
ORG 000BH
LJMP T0_ISR
ORG 0030H
MAIN: MOV P0,#3FH ;初始化賦值
MOV P1,#0FFH
MOV P2,#3FH
MOV R0,#00H
MOV R1,#24
MOV DPTR,#TAB
KEY: JB P3.0,$ ;判斷啟動(dòng)鍵是否按下
ACALL DELAY30MS
JNB P3.0,$
ACALL START
SJMP KEY ;
START: MOV TMOD,#01H ;啟動(dòng)程序
MOV TH0,#0D8H
MOV TL0,#0EFH
SETB ET0
SETB EA
SETB TR0
STOP: JB P3.2,ZTJX ;判斷復(fù)位鍵是否程序
ACALL DELAY30MS
JNB P3.2,$
SJMP MAIN ;復(fù)位程序
ZTJX : JB P3.1,XS ;判斷暫停鍵是否按下
ACALL DELAY30MS
JNB P3.1,$
ZT: CLR TR0 ;K2按下后暫停計(jì)數(shù),并關(guān)中斷
CLR ET0
CLR EA
JB P3.1,$ ;K2再次按下繼續(xù)計(jì)數(shù)
ACALL DELAY30MS
JNB P3.1,$
JX: SETB ET0 ;第二次按下暫停鍵后繼續(xù)倒計(jì)時(shí)(繼續(xù)啟動(dòng))
SETB EA
SETB TR0
XS: MOV A,R1 ;顯示子程序
MOV B,#10
DIV AB
MOVC A, @A+DPTR
MOV P0,A ; 顯示秒十位
MOV A,B
MOVC A, @A+DPTR
MOV P2,A ;顯示秒個(gè)位
CJNE R0,#100,STOP ;1S時(shí)間到否,未到直接轉(zhuǎn)數(shù)碼管顯示
MOV R0,#00H ;1S時(shí)間到,R0重賦初值
MOV A,R1 ;R1減1,不為0轉(zhuǎn)數(shù)碼管顯示,為0則重新開(kāi)始
CLR C
SUBB A,#1
MOV R1,A
JNC STOP ;計(jì)數(shù)未到0繼續(xù)判斷暫停鍵和停止鍵
MOV R1,#24 ;計(jì)數(shù)到0停止計(jì)數(shù)并關(guān)中斷,
CLR ET0
CLR EA
CLR TR0
SJMP SND ;跳到報(bào)警程序
SJMP KEY ; 跳回開(kāi)始檢測(cè)啟動(dòng)鍵
RET
DELAY30MS: MOV R6,#150 ;延時(shí)程序子程序
AAA: MOV R7,#100
DJNZ R7,$
DJNZ R6,AAA
RET
T0_ISR: CLR TR0 ;中斷程序子程序
MOV TH0,#0D8H
MOV TL0,#0EFH
INC R0
SETB TR0
RETI
SND: CLR P1.0 ;報(bào)警程序子程序(紅色發(fā)光二極管亮一下就滅)
MOV R7,#0FFH
DL: MOV R6,#0FFH
DL1: DJNZ R6,DL1
DJNZ R7,DL
SETB P1.0
RET
TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
END
compiling Text3.C...
TEXT3.C(1): error C129: missing ';' before '0000'
Text3.C - 1 Error(s), 0 Warning(s).
這是一個(gè)51單片機(jī)24秒倒計(jì)時(shí)的程序,但是其中有一個(gè)錯(cuò)誤,哪位大神能夠幫忙找到
|
|