......
4.2.3 自检子程序
在设计中,自检程序不是随启动而进行自检的。而是用74HC165通过需求时而进行自检。自检主要是在软件自身出现问题时,进行检测。如果程序自身都出现了异常时,检查仪仍在继续工作,那么这个检查仪的检测结果必然是不对的。所以,自检也是必不可少的一部分。
in_165_2: ; clr ea
clr CH_165;p1.4;
nop
nop
setb CLK_165;p1.5;clk
nop
setb DA1_165;p1.6
nop
setb CH_165; p1.4;
nop
clr a
4.2.4 按键子程序
在本次设计中,按键主要有四个,分别是两个菜单选择按键,一个菜单确认按键,还有一个菜单返回按键。其中较为复杂的是菜单选择按键,它根据每层菜单的不同,选择不同项目的菜单进入,进行选择不同的检测。在菜单选择时,它必须得一层一层的往下。从主菜单开始,它有七种不同的检测,通过按键选择其中一种检测。之后,通过确认键,进入下一层子菜单,选择这种检测的哪个项目检测。返回键也是层层向上返回,并不能够一下子回到主菜单。
在按键中,确认菜单键较为复杂,它通过现在菜单显示位置的不同,来进行不同的操作。
key: ANL A,#0F0H
CJNE A,#0F0H,IN_12
CLR H_KEY
MOV KEYRAM,A
MOV A,#0FFH
RET
IN_12: JB H_KEY,IN_13
MOV R0,A
XRL A,KEYRAM
JZ IN_14
MOV KEYRAM,R0
SJMP IN_13
IN_14:
SETB H_KEY
clr bell
mov keyjs,#30
RET
IN_13: MOV A,#0FFH
ret
;K1=UP,K2=DOUN,K3=确认,K4=返回
KEY_PR: CJNE A,#0FFH,KEY_P1
RET
KEY_P1:
clr bell
mov keyjs,#30
MOV A,KEYRAM
CJNE A,#0E0H,KEY_2
LCALL K1
RET
KEY_2:
CJNE A,#0D0H,KEY_3
LCALL K2
RET
KEY_3: STC89S58单片机+JH7A检查仪微机接口软件设计(11):http://www.youerw.com/jisuanji/lunwen_9640.html