這是一個51單片機24秒倒計時的程序,但是其中有一個錯誤,哪位大神能夠幫忙找到
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,$ ;判斷啟動鍵是否按下
ACALL DELAY30MS
JNB P3.0,$
ACALL START
SJMP KEY ;
START: MOV TMOD,#01H ;啟動程序
MOV TH0,#0D8H
MOV TL0,#0EFH
SETB ET0
SETB EA
SETB TR0
STOP: JB P3.2,ZTJX ;判斷復位鍵是否程序
ACALL DELAY30MS
JNB P3.2,$
SJMP MAIN ;復位程序
ZTJX : JB P3.1,XS ;判斷暫停鍵是否按下
ACALL DELAY30MS
JNB P3.1,$
ZT: CLR TR0 ;K2按下后暫停計數,并關中斷
CLR ET0
CLR EA
JB P3.1,$ ;K2再次按下繼續計數
ACALL DELAY30MS
JNB P3.1,$
JX: SETB ET0 ;第二次按下暫停鍵后繼續倒計時(繼續啟動)
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 ;顯示秒個位
CJNE R0,#100,STOP ;1S時間到否,未到直接轉數碼管顯示
MOV R0,#00H ;1S時間到,R0重賦初值
MOV A,R1 ;R1減1,不為0轉數碼管顯示,為0則重新開始
CLR C
SUBB A,#1
MOV R1,A
JNC STOP ;計數未到0繼續判斷暫停鍵和停止鍵
MOV R1,#24 ;計數到0停止計數并關中斷,
CLR ET0
CLR EA
CLR TR0
SJMP SND ;跳到報警程序
SJMP KEY ; 跳回開始檢測啟動鍵
RET
DELAY30MS: MOV R6,#150 ;延時程序子程序
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 ;報警程序子程序(紅色發光二極管亮一下就滅)
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).
這是一個51單片機24秒倒計時的程序,但是其中有一個錯誤,哪位大神能夠幫忙找到
|