51单片机4×4矩阵按键扫描方法

51单片机4×4矩阵按键扫描方法

ID:38977397

大小:96.07 KB

页数:5页

时间:2019-06-22

51单片机4×4矩阵按键扫描方法_第1页
51单片机4×4矩阵按键扫描方法_第2页
51单片机4×4矩阵按键扫描方法_第3页
51单片机4×4矩阵按键扫描方法_第4页
51单片机4×4矩阵按键扫描方法_第5页
资源描述:

《51单片机4×4矩阵按键扫描方法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、/*****4×4按键扫描******//***编程要点1.首先检测是否有按键按下2.若有按键按下,即进行行检测,列检测3.行检测:高4位设为0,低4位为1,进行检测0x0f4.列检测:低4位设为0,高4位为1,进行检测0xf05.检测按键是否松开6.送至LED显示,前四个代表第几行后四个代表第几列P0为led灯口P2为按键接口****///#include#defineucharunsignedchar#definekeyP2//P2口定义,便于调用#defineledP0//P0口定义,便于调用unsignedcharline_num,row_num;//行列定义le

2、d_arry[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//数组定义,便于显示//******检测是否有按键按下*****//ucharCheck_Button(){key=0x0f;//高四位为0if(key==0x0f)//若无变化,证明无按键按下return0;//返回0else//否则return1;//返回1}//********行检测********//ucharLine[]={0x0e,0x0d,0x0b,0x07};//那个按键按下,检测出的状态则对应数组中的第几个数voidCheck_Line(){uchari;key=0x0

3、f;//高四位为0for(i=0;i<4;i++){if(key==Line[i]){line_num=i;//取出检测值break;//结束行检测}}}//********列检测*********//ucharRow[]={0xe0,0xd0,0xb0,0x70};//那个按键按下,检测出的状态则对应数组中的第几个数voidCheck_Row(){ucharj;key=0xf0;//低4位置0for(j=0;j<4;j++){if(key==Row[j]){row_num=j;//取出检测值break;//结束行检测}}}/*******按键松开检测*********/ucharChec

4、k_Release(){key=0xf0;//低四位为0if(key==0xf0)//若无变化,证明按键松开return0;//返回0else//否则,按键未松开return1;//返回1}//*********主函数*********//intmain(){key=0xff;//按键初始化led=0xff;//关闭LED灯while(1){while(!Check_Button());//若无按键按下,则等待,若有继续下一步Check_Line();//行检测Check_Row();//列检测while(Check_Release());//检测按键是否松开led=led_arry[li

5、ne_num]&led_arry[row_num+4];//送至led显示/*eg:如果是第三行第二列按键按下则第3个、第6(2列+4)个LED灯亮如下图所示(Proteus仿真电路图)*/}}

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。