矩阵式键盘程序设计.doc

矩阵式键盘程序设计.doc

ID:59143386

大小:18.00 KB

页数:3页

时间:2020-09-11

矩阵式键盘程序设计.doc_第1页
矩阵式键盘程序设计.doc_第2页
矩阵式键盘程序设计.doc_第3页
资源描述:

《矩阵式键盘程序设计.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、矩阵式键盘程序设计(1)定义字型码表和10ms延时程序设计。4X4矩阵键盘的16个键分别对应0~9、A~F十六个字符,由于数码管显示使用共阴极LED数码管,所以字型码采用共阴极字型码。定义字型码表和软件去抖的10ms延时程序如下:#include/*定义0~9,A~F十六个字符的字型码表*/unsignedchartable[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71};/*10ms延

2、时程序*/voiddelay10ms(void){unsignedchari,j;for(i=20;i>0;i--)for(j=248;j>0;j--);}(2)矩阵式键盘主程序设计。4X4矩阵键盘的各行接P0口的P0.0~P0.3,矩阵键盘的各列接P0口的P0.4~P0.7,P1口的P1.0~P1.7接数码管的各段。矩阵式键盘主程序如下:voidmain(){chark=0;unsignedchartmp,key;P1=0x00;P0=0x0f;//P0口低四位做输入口,先输出全1tmp=P0;while(1){while(

3、tmp==0x0f)//循环判断是否有键按下{P0=0x0f;//所有列输出低电平tmp=P0;//读行信号}delay10ms();//延时10ms去抖P0=0x0f;//所有列输出低电平tmp=P0;//再次读键盘状态if(tmp==0x0f)continue;//如果无键按下则认为是按键抖动,重新扫描键盘key=scan_key();//有键按下,调用键盘扫描程序,并把键值送keywhile(k!=-1){delay10ms();k=scan_key();}P1=table[key];//查表或字型编码送P1口,数码管显

4、示闭合按键的编码}(3)矩阵式键盘扫描程序设计unsignedcharscan_key(void)//键盘扫描子程序{unsignedcharn,scan,col,rol,tmp;bitflag=0;//设有键按下标志位scan=0xef;P0=0x0f;//P0口低四位做输入口,先输出全1for(n=0;n<4;n++)//循环扫描4列,从0列开始{P0=scan;//逐列送出低电平tmp=~P0;//读行值,并取反tmp=tmp&0x0f;col=n;//保存列号到colflag=1;/*判断哪一行有键按下,并保存行号到r

5、ol*/if(tmp==0x01){rol=0;break;}//第0行有键按下elseif(tmp==0x02){rol=1;break;}//第1行有键按下elseif(tmp==0x04){rol=2;break;}//第2行有键按下elseif(tmp==0x08){rol=3;break;}//第3行有键按下elseflag=0;scan=(scan<<1)+1;}if(flag==0)return-1;elsereturn(rol*4+col);}

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

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

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