传感器毕业论文 联系客服

发布时间 : 星期一 文章传感器毕业论文更新完毕开始阅读

I051K16: CALL D10MS ;延时10秒

LCALL KEYIN ;调健输入检查子程序 JNZ LKOUT ;有健输入,转查健号 RETI ;无健输入,中断返回 LKOUT: MOV R2,#OEFH ;首列扫描字写如R2 MOV R4,#00H ;首列偏移值如R4 CONU: MOV P1,R2 ;列扫描字写如R2 MOV A, P1 ;读入P1口状态到A中

JB ACC.0,LONE ;检查第0行是否为0状态,不为0表示按

下健不在此行,转下行

MOV A, #00H ;第0 行为0状态,表明按下健在此行,

首列号如A

AJMP LKP ;转求健号

LONE: JB ACC1.1,LTWO ;检查第1行有无健按下 MOV A,#04H ;有健按下,该行首列号入A AJMP LKP ;转求健号 LTWO: JB ACC.2,LTHP MOV A,#08H AJMP LKP

LTHR: JB ACC.3,NEXT ;该列所有行都无健按下,转NEXT MOV A,#0CH ;有健按下,改行首列号入A中

25

LKP: ADD A,R4 ;求健号,健号位首列号加列偏移值 PUSH A ;健号入栈保护 WKFE: LACLL KEYIN ;等待健释放

JNZ WKFE ;健未释放转WKFE等待 POP A LJMP KJMP NEXT: INC R4 MOV A,R2

JNB ACC.7 RL A MOV R2 LJMP CONU KND: RETI

KEYIN: MOV P1 MOV A,P1 CPL A ANL A,#0FH RET KJMP: SUB A,#0FH JC WriteTemp

,KND ,A ,#OFH ;健释放,健号如A ;转健操作转处理

;转查下一列,列偏移值加1 ;最后一列查完?查完中断返回 ;未查完,列扫描字左移1位 ;扫描字如R2继续查找 ;查完有无健按下,A不为0,有健按下26

ADD A,#0FH CLR C SUB A,#0EH JC StoreTemporTime ADD A,#0EH CLR C SUB A,#0DH JC Waterpoistion ADD A,#0DH CLR C SUB A,#0CH JC Vtemp ADD A,OCH CLR C SUB A,#0BH

JC StoreTime RETI ORG 0003H JMP Heat RET

27