您的位置 首页 解答

HOLTEK单片机-4X4键盘运用软件扫描

功能说明:4X4键盘对应着0-F共16个数字,按其中任一键即可在共阳极七段显示器上显示所对应的数字。电路说明:电路HT46F49E的端口B接一

功用阐明:

4X4键盘对应着0-F共16个数字,按其间任一键即可在共阳极七段显现器上显现所对应的数字。

电路阐明:

电路

HT46F49E的端口B接一个共阳极七段显现器。

由于运用共阳极七段数码器,所以在端口B的每一只引脚都串上一个电阻以作为分压之用。由于七段显现器的每一段都可视为一个发光二极管,VCC足以将该段焚毁,所以在每一段应串接一个电阻与发光二极管分压,以维护七段显现器。

HT46F49E的端口A接一组4X4键盘。PA7-PA0送出行扫描码,其间一只引脚送出0,其他送出1,PA7-PA4轮番送出0.如果有一个按键被按下,则PA3-PA0会收到那一个按键被按下的信息。归纳PA7-PA4的行扫描码与PA3-PA0键被按下的信息即可知道是哪一个键被按下。

完好程序代码下载地址:http://www.51hei.com/f/htjp.rar

程序:

#include "HT46F49E.H"const unsigned char number[]={0x81,0xcf,0x92,0x86,0xcc,0xa4,0xa0,0x8f,0x80,0x84,0x88,0xe0,0xb1,0xc2,0xb0,0xb8};unsigned int key_code;void scan_keypressed(){unsigned int i,scan_code;scan_code=0xef;key_code=0;for(i=0;i<4;i++){_pa=scan_code;if(_pa0==0)key_code=i*4+1;if(_pa1==0)key_code=i*4+2;if(_pa2==0)key_code=i*4+3;if(_pa3==0)key_code=i*4+4;_rl(&scan_code);}  }void scan_keyeleased(){switch(key_code%4){case 1:while(!_pa0);break;case 2:while(!_pa1);break;case 3:while(!_pa2);break;case 0:while(!_pa3);break;  }  }void main(){unsigned int key_old,led;_pcc=0x00;_pbc=0x00;_pac=0x0f;led=0;_pb=number[0];while(1){scan_keypressed();if(key_code>0){key_old=key_code;_delay(20000);scan_keypressed();if(key_old==key_code){scan_keyeleased();led=key_code-1;_pb=number[led]; }}}}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/changshang/jieda/255265.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部