CLOSEDIS: SETB ET0 ;省电(LED不显示)状态。开T0中断
SETB TR0 ;开启T0定时器(开时钟)
CLOSE: JB P1.0,CLOSE ;无按键按下,等待。
LCALL DS20MS ;消抖
JB P1.0,CLOSE ;是干扰返回CLOSE等待
WAITH: JNB P1.0,WAITH ;等待键释放
LJMP START1 ;返回主程序(LED数据显示亮)
SETHH: CLR 00H ;分闪烁标志清除(进入调小时状态)
SETB 01H ;小时调整标志置1
SETHH1: JNB P1.0,SET5 ;等待键释放
SET6: JB P1.0,SET7 ;等待按键按下
LCALL DL05S ;有键按下延时0.5秒
LCALL DS20MS ;消抖
JNB P1.0,SETOUT ;按下时间大于0.5秒退出时间调整
MOV R0,#79H ;按下时间小于0.5秒加1小时操作
LCALL ADD1 ;调加1子程序
MOV A,R3 ;
CLR C ;
CJNE A,#24H,HOUU ;计时单元数据与24比较
HOUU: JC SET6 ;小于24转SET6循环
LCALL CLR0 ;大于或等于24时清0操作
AJMP SET6 ;跳转到SET6循环
SETOUT: JNB P1.0,SETOUT1 ;调时退出程序。等待键释放
LCALL DS20MS ;消抖
JNB P1.0,SETOUT ;是抖动,返回SETOUT再等待
CLR 01H ;清调小时标志
CLR 00H ;清调分标志
CLR 02H ;清闪烁标志
CLR TR1 ;关闭定时器T1
CLR ET1 ;关定时器T1中断
SETB TR0 ;开启定时器T0
SETB ET0 ;开定时器T0中断(计时开始)
LJMP START1 ;跳回主程序
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] 下一页
本文关键字:程序 51单片机,单片机-工控设备 - 51单片机