电工文库|单片机键盘接口技术

   更新日期:2017-04-05     来源:建材之家    作者:水电之家    浏览:24    评论:0    
核心提示:1.键盘接口电路<?XML:NAMESPACE PREFIX = O /> 单片机的键盘接口电路有多种形式,最常用的是键盘扫描电路,如图8-17所示。图8-17中的键盘扫描电路是由3根行线与8根列线组成。3根行线的左边接8155的PC口的3个引脚PC.0、PC.1、PC.2,右边通过5K电阻接5V电源。8根列线通过反相器接8155B口(即位选口,地址为FF22H)。在行线与列线的交叉处设置一个按

显微镜下的黄龙玉

推荐简介:近些年黄龙玉的价格逐渐攀升,有越来越多的人都开始纷纷收藏黄龙玉,随着求购者需求的增多,市面上也出现了不少假的黄龙玉,那有什么仪器可以对黄龙玉的玉色是自然色,还是增强色进行鉴别呢?严格上来说,颜色没有真假,但是玉皮却有真假,用辅助仪器来判断玉色的手段常见的有三种:1.查尔斯滤色镜,又称祖母绿滤色镜,其分辨颜色有专门的颜色对照表可供参考。2.显微镜,一般用于观察玉石的表面特征,玉石内部接近表面的结构......
水电之家讯:1.键盘接口电路<?XML:NAMESPACE PREFIX = O />

单片机的键盘接口电路有多种形式,最常用的是键盘扫描电路,如图8-17所示。图8-17中的键盘扫描电路是由3根行线与8根列线组成。3根行线的左边接8155的PC口的3个引脚PC.0、PC.1、PC.2,右边通过5K电阻接5V电源。8根列线通过反相器接8155B口(即位选口,地址为FF22H)。在行线与列线的交叉处设置一个按键,因此该单片机的键盘由3×8=24个按键组成。倒数第一、二行共16个数字键(0~F),第三行为8个功能键。从8155B口输出8位低电平给8根列线d0~d7,若某行有键按下,则该行与列线接通为低电平。若某行无键按下,则该行保持高电平。由此可见,测试PC.0、PC.1、PC.2的状态就可以知道有无键按下,此外通过扫描方式可取出按键的键值。按键键值:0~F为数字键键值,10H~17H为功能键键值。

2.键盘扫描程序

(1)入口地址:KEY-SCAN,

(2)作用:判有无键按下

(3)出口状态:(A)=0 表示无键按下,

(A)≠0 表示有键按下。

(4)源程序

3.取键值程序

(1)名称与入口地址:KEY-GET 。

(2)作用:取按键键值。

(3)使用寄存器:A、R2、R4。

(4)出口状态:(A)=按键键值,0~F为数字键,10H~17H为功能键。

(5)程序设计基本思想

①调用键盘扫描程序判有无键按下,若无键按下则继续判断,若有键按下则取按键键值。在介绍取按键键值的方法之前先介绍列扫描码的概念。

②列扫描码

列扫描码共8位,其中有1位为0 ,其它各位为1,初始值为11111110,该初始值存放在R2中,如图8-27所示,0所在列的列号j存放在R4中,当第j 列有键按下时,按键所在行为低电平0,通过查行值是否为0,可确定按键的行号与列号,并据此算出按键键值。因此列扫描码的作用是确定第几列有键按下。

③送列扫描码

列扫描码由R2通过累加器A传送给8155B口,并由8155B口输出给键盘电路的8根列线。8根列线中,第j列为0,其余各列为1。

④取行值

从PC口的PC.0~PC.2读行信号,若读出的行值均为1,说明第j列无键按下,将R2中的扫描码左移1位,并将列号j存储寄存器R4加1,转③重新送扫描码,查下一列有无键按下。若读出第i行的行值中为0,说明在第i行与第j列处有键按下,应计算键值。

⑤计算键值

若读出第i行为0 ,则说明第i行与第j列处有键按下,由扫描码中0所在列号j与行值为0的行号i可计算出按键键值:

键值= i×8+j。 (式中i=0~2,j=0~7)

例如:第0列与第0行处的按键按下,键值=0×8+0=0 ,即数字0键。

第0列与第1行处的按键按下,键值=1×8+0=8 ,即数字8键。

第0列与第2行处的按键按下,键值=2×8+0=10H。

由图8-27可看出,上述计算公式是完全正确的。

<?XML:NAMESPACE PREFIX = V />nnecttype="custom" arrowok="t" o:connectlocs="21600,0;0,10800;21600,21600" textboxrect="13963,@4,21600,@5">因为所取键值存放在累加器A中,列号j存放R4中,第i行为0可通过PC.i=0进行判断,所以按键键值计算公式可改为

(6)流程图:如图8-29所示。

(7)源程序

注意:在调用键盘程序的主程序中,必须将8155初始化为A、B口基本I/O输出方式,C口为基本输入方式。然后才能调用上面取键值程序。

思考题:如何使0~7键与8~F键的键值互换,即按0键时显示8,按8键时显示0等?提示:将取键程序KEY_GET中的指令①与②互换即可。

水电之家为您提供最全面的管材,管件,水电,电线,电工,管材水电品牌的装修知识点和各种管材水电的导购与在线购买服务,拥有最便宜的管材水电价格和最优质的售后服务,每天都有秒杀的抢购活动哦!敬请登陆水电之家:http://shuidian.jc68.com/
小程序码
 
打赏
 
更多>文章标签:电工
更多>同类水电电工资讯
0相关评论