单片机的定时闹钟
LJMP LOOP
M2:JB P1.4,M4
LCALL LOOKATIME ;调用设定闹钟时间程序
M4:LJMP LOOP
DELAY:MOV R4,#030H ;延时时间 DL00:MOV R5,#0FFH DL11:MOV R6,#9H DL12:DJNZ R6,DL12 DJNZ R5,DL11
DJNZ R4,DL00
RET
;×××××设定时间程序:××××× SETTIME:
L0:LCALL DISPLAY1 MM1: JB P1.2,L1 MOV C,P1.2 JC MM1
LCALL DELAY1 JC MM1
MSTOP1: MOV C,P1.2
JNC MSTOP1 LCALL DELAY1 MOV C,P1.2 JNC MSTOP1
INC 22H MOV A,22H
CJNE A,#18H,GO12 MOV 22H,#00H MOV 34H,#00H MOV 35H,#00H LJMP L0
L1:JB P1.3,L2 MOV C,P1.3 JC L1
LCALL DELAY1 JC L1
MSTOP2: MOV C,P1.3
;调用时间允许程序 ;调用延时 ;判断P1.2是否释放?释放则继续 ;调用延时 ;小时增加1 ;判断小时是否到24时?未到继续循环 ;小时复位 ;延时 27
单片机的定时闹钟
JNC MSTOP2 ;判断P1.3是否释放?释放则继续 LCALL DELAY1 ;调用延时 MOV C,P1.3 JNC MSTOP2
INC 21H ;分钟增加一 MOV A,21H
CJNE A,#3CH,GO11
MOV 21H,#00H ;分钟复位 MOV 32H,#00H MOV 33H,#00H LJMP L0
GO11:MOV B,#0AH DIV AB MOV 32H,B MOV 33H,A LJMP L0
GO12: MOV B,#0AH DIV AB MOV 34H,B MOV 35H,A LJMP L0
L2:JB P1.4,L0 MOV C,P1.4 JC L2
LCALL DELAY1 MOV C,P1.4 JC L2
STOP1: MOV C,P1.4 JNC STOP1
LCALL DELAY1 MOV C,P1.4 JNC STOP1 LJMP LOOP
;×××××设置闹钟时间×××××
;将A中的内容分成高低两部分 调用延时 ;判断按键P1.4是否释放? ;调用延时 28
; 单片机的定时闹钟
MOV C,P1.3 JC MM2
LCALL DELAY1 SETATIME:LCALL DISPLAY2 ;调用时间运行 N0:LCALL DISPLAY2
MM2: JB P1.3,N1 ;判断P1.3是否按下?
JC MM2
MSTOP3: MOV C,P1.3 JNC MSTOP3
LCALL DELAY1 MOV C,P1.3 JNC MSTOP3
INC 24H MOV A,24H
CJNE A,#24,GO22 MOV 24H,#00H MOV 38H,#00H MOV 39H,#00H LJMP N0
N1:JB P1.1,N2 MOV C,P1.1 JC N1
LCALL DELAY1 JC N1
MSTOP4: MOV C,P1.1 JNC MSTOP4
LCALL DELAY1 MOV C,P1.1 JNC MSTOP4
INC 23H MOV A,23H
CJNE A,#60,GO21 MOV 23H,#00H MOV 36H,#00H MOV 37H,#00H
LJMP N0 ;判断P1.3是否释放? ;设定小时增加1 ;时钟复位 ;判断P1.1是否按下? ;判断P1.1是否释放? ;设定闹钟分钟增加1 ;判断A是否到60分? ;分钟复位 29
单片机的定时闹钟
GO22: MOV B,#0AH GO21:MOV B,#0AH ;将A中的内容分成高低两部分 DIV AB MOV 36H,B MOV 37H,A LJMP N0
DIV AB MOV 38H,B MOV 39H,A LJMP N0
N2:JB P1.4 ,N0 MOV C,P1.4 JC N2
LCALL DELAY1 MOV C,P1.4 JC N2
STOP2: MOV C,P1.4 JNC STOP2
LCALL DELAY1 MOV C,P1.4 JNC STOP2 LJMP LOOP
TIMEPRO:MOV A,21H MOV B,23H
CJNE A,B,BK MOV A,22H MOV B,24H
CJNE A,B,BK SETB 25H.0 MOV C,25H.0 JC XX
XX: LCALL TIMEOUT BK:RET TIMEOUT:
X1:LCALL BZ ;判断P1.4是否按下? ;判断P1.4是否释放? ;判断分钟是否运行到设定的闹钟的分钟? ;判断时钟是否运行到设定的闹钟的时钟? ;调用时间闹钟响应程序 ;调用喇叭响应程序 30
单片机的定时闹钟
LCALL DISPLAY2 CLR 25H.0
JB P1.4, X1 ;判断P1.4是否按下? LCALL DELAY CLR 25H.0
LJMP DISPLAY1
BZ: CLR P3.7 ;喇叭响应程序 MOV R7,#250 ;响应延时时间 T2: MOV R6,#124 T3: DJNZ R6,T3
DJNZ R7,T2 SETB P3.7 RET
LOOKATIME:LCALL DISPLAY2 MM: JB P1.4,LOOKATIME MOV C,P1.4 JC MM
LCALL DELAY1 MOV C,P1.4 JC MM STOP3: MOV C,P1.4 JNC STOP3 LCALL DELAY1 MOV C,P1.4 JNC STOP3 LJMP LOOP DELAY1: MOV R4,#14H DL001: MOV R5,#0FFH DL111: DJNZ R5,DL111 DJNZ R4,DL001 RET
;×××××时间运行程序×××××
TIME: PUSH ACC PUSH PSW MOV TH0,#03CH MOV TL0,#0B0H
DJNZ
R2,RET0
;调用时间运行程序 ;判断按键P1.4是否按下 ;时间延时
;现场保护 ;赋初值 31