独立式按键的软件结构独立式按键结构电路描述:8个按键,一端接地,另一端接P1.X,无需加上拉电阻。。以下是键盘扫描子程序,PPO~PP7分别为处理每个按键对应的功能程序。KEYSCAN:MOVP1,#OFFH:设置P1口为输入方式MOv A, P1:读键盘的状态MOV B,A:存键盘的状态到B;延时20MSLCALLDELAY2OMSMOV A, P1:再读键盘状态CJNEA,B,PASS:两次结果不同则视为抖动CJNEA,#OFFH,PASS1:所读数据不为FFH,说明有键按下SJMPPASSPASS1:JNBACC.OPPO:O号键按下,执行O号键对应的程序JNBACC.1PP1;1号键按下,执行1号键对应的程序ACC.2PP2:2号键按下,执行2号键对应的程序JNBACC.3PP3;3号键按下,执行3号键对应的程序JNBJNBACC.4PP4:4号键按下,执行4号键对应的程序JNBACC.5PP5:5号键按下,执行5号键对应的程序JNBACC.6PP6:6号键按下,执行6号键对应的程序SJMPPP7:7号键按下,执行7号键对应的程序
独立式按键的软件结构 独立式按键结构电路描述:8个按键,一端接地,另一端接P1.X,无需加上 拉电阻。 以下是键盘扫描子程序,PP0~PP7分别为处理每个按键对应的功能程序。 KEYSCAN:MOV P1,#0FFH ;设置P1口为输入方式 MOV A,P1 ;读键盘的状态 MOV B,A ;存键盘的状态到B LCALL DELAY20MS ;延时20MS MOV A,P1 ;再读键盘状态 CJNE A,B,PASS ;两次结果不同则视为抖动 CJNE A,#0FFH,PASS1;所读数据不为FFH,说明有键按下 SJMP PASS PASS1:JNB ACC.0 PP0 ;0号键按下,执行0号键对应的程序 JNB ACC.1 PP1 ;1号键按下,执行1号键对应的程序 JNB ACC.2 PP2 ;2号键按下,执行2号键对应的程序 JNB ACC.3 PP3 ;3号键按下,执行3号键对应的程序 JNB ACC.4 PP4 ;4号键按下,执行4号键对应的程序 JNB ACC.5 PP5 ;5号键按下,执行5号键对应的程序 JNB ACC.6 PP6 ;6号键按下,执行6号键对应的程序 SJMP PP7 ;7号键按下,执行7号键对应的程序
PASS:RETPPO:LCALLPKEYOSJMPPASSPPI:LCALLPKEYSJMPPASSPP2:LCALLPKEY2SJMPPASSPP3:LCALLPKEY3SJMPPASSPP4:LCALLPKEY4SJMPPASSPP5:LCALLPKEY5SJMP PASSPP6:LCALL PKEY6SJMPPASSPP7:LCALLPKEY7SJMPPASSDELAY1OMS:RET
PASS:RET PP0:LCALL PKEY0 SJMP PASS PP1:LCALL PKEY1 SJMP PASS PP2:LCALL PKEY2 SJMP PASS PP3:LCALL PKEY3 SJMP PASS PP4:LCALL PKEY4 SJMP PASS PP5:LCALL PKEY5 SJMP PASS PP6:LCALL PKEY6 SJMP PASS PP7:LCALL PKEY7 SJMP PASS DELAY10MS:. RET