图10-9用三态缓冲器扩展的l/0口的按键接口电 路 +5V P00 P0.1 P0.2 P0.3 P0.4 态缓 8031 冲器 RD CS P26 10-9
图10-9用三态缓冲器扩展的I/O口的按键接口电 路
对图10-9独立式键盘编程,软件消抖,查询方式检 测键的状态。仅有一键按下时才有效才处理。 KEY|N: MOV DPTR,# OBFFFH;键盘端口地址 BFFFH MOVX A. ODPTR 读键盘状态 ANL A#1FH ;屏蔽高三位 MOV R3, A ;保存键盘状态值 LCALL DELAY10;延时10ms去键盘抖动 M0VXA,@DPTR;再读键盘状态 ANL A#1FH ;屏蔽高三位 CUNE A,R3, RETURN;两次不同,抖动引起转 RETURN CUNE A,#1EH,KEY2;相等,有键按下,不等转KEY2
对图10-9独立式键盘编程,软件消抖,查询方式检 测键的状态。仅有一键按下时才有效才处理。 KEYIN:MOV DPTR,#0BFFFH;键盘端口地址BFFFH MOVX A,@DPTR ;读键盘状态 ANL A,#1FH ;屏蔽高三位 MOV R3,A ;保存键盘状态值 LCALL DELAY10 ;延时10ms去键盘抖动 MOVX A,@DPTR ;再读键盘状态 ANL A,#1FH ;屏蔽高三位 CJNE A,R3,RETURN ;两次不同,抖动引起转RETURN CJNE A,#1EH,KEY2 ;相等,有键按下,不等转KEY2
LUMP KEY1 ;是K1键按下,转K1键处理 ;子程序PKEY1 KEY2: CUNE A,#1DH,KEY3;S2键未按下,转KEY3 LUMP KEY2 ;S2键按下,转PKEY2处理 KEY3:0NEA,#1BH,KEY4;S3未按下,转KEY4 LUMP KEY3 ;S3按下,转PKEY3处理 KEY4: CUNE A,#17H,KEY5;S4键未按下,转KEY5 LUMP KEY4 ;S4按下,转PKEY4处理 KEY5:0NEA,#OFH,PASS;S5未按下,转 RETURN LUMP KEY5 S5按下,转PKEY5处理 RETURN, RET 重键或无键按下,从子程序返回 识别和编程简单,用在按键数较少的场合
LJMP KEY1 ;是K1键按下,转K1键处理 ;子程序PKEY1 KEY2: CJNE A,#1DH,KEY3 ;S2键未按下,转KEY3 LJMP KEY2 ;S2键按下,转PKEY2处理 KEY3: CJNE A,#1BH,KEY4 ;S3未按下,转KEY4 LJMP KEY3 ;S3按下,转PKEY3处理 KEY4: CJNE A,#17H,KEY5 ;S4键未按下,转KEY5 LJMP KEY4 ;S4按下,转PKEY4处理 KEY5: CJNE A,#0FH,PASS ;S5未按下,转RETURN LJMP KEY5 ;S5按下,转PKEY5处理 RETURN:RET ;重键或无键按下,从子程序返回 识别和编程简单,用在按键数较少的场合
2.行列式矩阵式)键盘接口 用于按键数目较多的场合,由行线和列线组成, 按键位于行、列的交叉点上。如图10-10所示。 5V 56A7 R12131415 2 (a)3×3键盘 (b)4×4键盘 10-10 按键数目较多的场合,行列式键盘与独立式键盘 相比,要节省很多的10口线
2. 行列式(矩阵式)键盘接口 用于按键数目较多的场合,由行线和列线组成, 按键位于行、列的交叉点上。如图10-10所示。 按键数目较多的场合,行列式键盘与独立式键盘 相比,要节省很多的I/O口线
(1)行列式键盘工作原理 无键按下,该行线为高电平,当有键按下时, 行线电平有列线的电平来决定。 由于行、列线为多键共用,各按键彼此将相互发 生影响,必须将行、列线信号配合起来并作适当的处 理,才能确定闭合键的位置。 (2)按键的识别方法 a.扫描法 图10-10(b)中3号键被按下为例,来说明此键 时如何被识别出来的
(1)行列式键盘工作原理 无键按下,该行线为高电平,当有键按下时, 行线电平有列线的电平来决定。 由于行、列线为多键共用,各按键彼此将相互发 生影响,必须将行、列线信号配合起来并作适当的处 理,才能确定闭合键的位置。 (2)按键的识别方法 a. 扫描法 图10-10(b)中3号键被按下为例,来说明此键 时如何被识别出来的