是不是很简洁,完全可以直接调用!
单片机源程序如下:
- #include "STC15Fxxxx.H"
- #include "juzhen_key.h"
- #include "delay.h"
- /*******************************************************************************
- * 函数: u8 key_scan()
- * 功能: 矩阵按键扫描
- * 输入: 无
- * 返回: 按下的按键值
- * 说明:首先行输出低电平、列输出高电平,判断哪列按下
- * 再让行输出高电平、列输出低电平,判断哪行按下
- *******************************************************************************/
- u8 key_scan()
- {
- u8 value=20;
- key=0x0f;
- if(key!=0x0f)
- {
- delay_ms(50);
- if(key!=0x0f)
- {
- key=0x0f; //测试哪列按下
- switch(key)
- {
- case 0x07:value=0;break; //0列按下
- case 0x0b:value=1;break; //1列按下
- case 0x0d:value=2;break; //2列按下
- case 0x0e:value=3;break; //3列按下
- }
- key=0xf0; //测试哪行按下
- switch(key)
- {
- case 0x70:value=value;break; //0行按下
- case 0xb0:value=value+4;break; //1行按下
- case 0xd0:value=value+8;break; //2行按下
- case 0xe0:value=value+12;break; //3行按下
- }
- }
- }
- return value;//返回按下的按键值
- }
复制代码
所有程序51hei提供下载:
矩阵键盘.zip
(51.85 KB, 下载次数: 79)
|