单片机4x4按键键盘编码用到74HC21的源程序还有没有?请加一下我的qq1416150021,

提问:单片机4x4按键键盘编码用到74HC21的源程序还有没有?请加一下我的qq1416150021,

网友回答:

 嗯,想法很不错.. 我试着帮你解释下第一个吧.. 这应该是选用的线扫法(好像这么说的吧). 比如说,键盘口为,P1 在一开始输出,01111111B,再判断P1口值是否变化.. 若没变化再换成,10111111B,再判断P1口值是否变化.. 这样依次到,11101111B, 在有变化时就可以得到把描码了..就像是你那个表中所示.的数值就经过这四次都可以得出其中一种.... #include #define uchar unsigned char #define KeyPad P0 code uchar key_tab[17]= {0xed,0x7e,0x7d,0x7b, 0xbe,0xbd,0xbb,0xde, 0xdd,0xdb,0x77,0xb7, 0xee,0xd7,0xeb,0xe7,0XFF}; code uchar key_show[]= {1,2,3,0x0a, 4,5,6,0x0b, 7,8,9,0x0e, 0x0c,0,0x0d,0x0f,0xff}; uchar Keyscan() { uchar i=0x01,j,k; KeyPad=~i; j=~i; for (k=0;k<4;k++) { if(KeyPad==j) { i*=2; KeyPad=~i; j=~i; } else k=KeyPad;//取出扫描码. } i=0; if(k!=4) { while(key_tab[i++]!=0xff) { if(k==key_tab[i]) k=i; else k=16; } } return key_show[k]; } 以上是整个扫描键盘子程序.. 程序编译通过,不知道实际怎么样.. 其中未用中断.. 不过,方法是一样的... 明白思想才是最重要的.. 祝你好运! ^_^

相关推荐

求一个51单片机16x16点阵程序4个74hc595的,显示一个字就行谢谢各位了

求一个51单片机16x16点阵程序4个74hc595的,显示一个字就行谢谢各位了

单片机按下K1实现D1→D4,D8→D5循环点亮 ,按下K2,实现D4→D1,D5→D8循环点亮

单片机按下K1实现D1→D4,D8→D5循环点亮 ,按下K2,实现D4→D1,D5→D8循环点亮

电子维修和单片机区别

电子维修和单片机区别

单片机跑马灯c程序

单片机跑马灯c程序

单片机电路信息采集的探索性分析方法

单片机电路信息采集的探索性分析方法

单片机C语言问题

单片机C语言问题

基于LM2596ADJ的单片机数字控制电源(降压源)

基于LM2596ADJ的单片机数字控制电源(降压源)

单片机的全双工串行通信的通信过程必须由主机发起和结束吗

单片机的全双工串行通信的通信过程必须由主机发起和结束吗

单片机编程设计要求

单片机编程设计要求

黄琦龙单片机教程怎么样

黄琦龙单片机教程怎么样

谁有普中科技单片机HC680 ES V2.0资料呀

谁有普中科技单片机HC680 ES V2.0资料呀

单片机程序中ET0=1;是什么意思?

单片机程序中ET0=1;是什么意思?

单片机在原理图中要想写出红色仿宋字体应该如何进行操作

单片机在原理图中要想写出红色仿宋字体应该如何进行操作

单片机中,数字、字母、符号用_______编码来表示,编码,是指垵一定规则城的若干为二进制代码

单片机中,数字、字母、符号用_______编码来表示,编码,是指垵一定规则城的若干为二进制代码

为什么安装keil5之后不能生成51单片机hex文件

为什么安装keil5之后不能生成51单片机hex文件

盒子游戏,游戏玩家专属个性阅读社区


©CopyRight 2010- 2020 BOXUU.COM Inc All Rights Reserved

鄂公网安备 35020302000061号- 鄂ICP备2020015574号-1