完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
各位大虾,这样做按键扫描行不行的通;后面我还要显示按键值0-9和实现“确认”与“取消”功能按键界面,我还不确信这样行不行,是不是最好的
#define cancel 0x01 #define comfirm 0x02 #define function_array 0x03 #define null 0 #define uchar unsigned char #define uint unsigned int //uint8 disp_code[4],key_buf[4],room_buf[4]; //uint8 idata data_buff[16],idata call_number_buf[12]; /******************************************************************************************** * 函数名称:Key_Idle() * 功 能:键盘松开 * 入口参数:无 * 出口参数:无 *********************************************************************************************/ void Key_idle() { while( ( P1 & 0x0f ) != 0x0f ); } //***************************************************************************************** //函数名称:Key_scan()按键输入扫描 //入口参数:无 //出口参数:无 //******************************************************************************************/ uchar Key_scan() { uchar line,lie,value; int key; P1=0x0f; line=P1&&0x0f; if(line!=0x0f) { delay(50); if(line!=0x0f) line=P1&&0x0f; 1=line|0xf0; lie=P1&&0xf0; if(lie!=0xf0) { delay(50); if(lie!=0xf0) lie=P1&&0xf0; value=line+lie; } } Key_idle(); switch(value) { case 0xd7: key=0;break; case 0xee: key=1;break; case 0xce: key=2;break; case 0xbe: key=3;break; case 0xed: key=4;break; case 0xdd: key=5;break; case 0xbd: key=6;break; case 0xeb: key=7;break; case 0xdb: key=8;break; case 0xbb: key=9;break; //0-9 case 0xe7: return comfirm;break; //确认键 case 0xd7: return cancel;break; //取消健 default : return null; } } |
|
相关推荐
2个回答
|
|
|
|
|
|
我的按键扫描从来都不会用延时防抖,都是定时扫描,你这个明显实时性不行
|
|
|
|
只有小组成员才能发言,加入小组>>
3280 浏览 9 评论
2958 浏览 16 评论
3460 浏览 1 评论
9005 浏览 16 评论
4052 浏览 18 评论
1117浏览 3评论
574浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
571浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2304浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1860浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-26 13:11 , Processed in 1.342391 second(s), Total 82, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号