SETB EA ;开中断
AJMP BEGIN ;转向继续工作
NOP
NOP
LJMP ERR ;软件陷阱
SETUP: SETB EA ;开中断
;
MAIN1: ACALL DISPLY ;调用显示
JB FKEY, JUDGE ;按键扫描
ACALL KEYDLY ;延时消抖动
JB FKEY, JUDGE ;无键按下转向判断是否到点
CLR ET0 ;功能键被按下,则
CLR TR0 ;暂停计时
ACALL MENU ; 调用菜单设置程序
BEGIN: SETB WORKIN ;置工作标志位,开始工作
SETB ET0 ;开中断
SETB TR0 ;开始计时
MOV A, R4 ;移入工作模式选择
RL A ;指针放大
MOV DPTR, #M_TAB
JMP @A+DPTR ;根据工作模式跳转到相应程序段
M_TAB: AJMP WORK1
AJMP WORK2
AJMP WORK3
AJMP WORK4
NOP
NOP
LJMP ERR ;软件陷阱
WORK1: ;
WORK2: CLR SWITCH ;工作方式1和2:开继电器
AJMP MAIN2
NOP
NOP
LJMP ERR ;软件陷阱
WORK3: ;
WORK4: SETB SWITCH ;工作方式3和4:不开继电器
MAIN2: CLR BELL ;蜂鸣器短鸣一声,以示开始工作
ACALL DL05S
SETB BELL
JUDGE: JNB WORKIN, MAIN1 ;判断是否在定时之中
MOV A, SL ;判断秒是否为零
JNZ MAIN1
MOV A, SH ;判断秒是否为零
JNZ MAIN1
MOV A, ML ;判断分是否为零
JNZ MAIN1
MOV A, MH ;判断分是否为零
JNZ MAIN1
MOV A, HL ;判断时是否为零
JNZ MAIN1
MOV A, HH ;判断时是否为零
JNZ MAIN1 ;若时分秒全为零则
CLR ET0 ; 停止计时
CLR TR0 ;
ACALL ACTION ; 调用到点工作子程序
AJMP MAIN ; 返回
NOP
NOP
LJMP ERR ;软件陷阱
上一页 [1] [2] [3] [4] [5] [6] [7] 下一页
本文关键字:单片机 程序 定时器 51单片机,单片机-工控设备 - 51单片机