4乘4的矩阵按键

4乘4的矩阵按键

ID:37850777

大小:36.00 KB

页数:5页

时间:2019-06-01

4乘4的矩阵按键_第1页
4乘4的矩阵按键_第2页
4乘4的矩阵按键_第3页
4乘4的矩阵按键_第4页
4乘4的矩阵按键_第5页
资源描述:

《4乘4的矩阵按键》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、//////////////////////////////////////////////程序编写人:小艾QQ:873808971//程序编写时间:2012-4-23//程序实现的功能:矩阵的显示//////////////////////////////////////////////#include"reg52.h"#defineucharunsignedchar#defineuintunsignedintvoidtime(void);externvoiddisplay(unsignedchara,unsignedcharb

2、);externvoidchuli();//////////////主程序///////////////////////////////voidmain(){time();//定时器初始化子程序while(1){chuli();//处理子程序display(2,2);//显示子程序}}////////////定时器初始化///////////////////////////////////////voidtime(void){TMOD

3、=0X01;EA=1;ET0=1;TR0=1;}//////////////定时器处理/////

4、/////////////////////////////voidtimep0(void)interrupt1using1{TH0=(65536-20000)/256;TL0=(65536-20000)%256;}#include"reg52.h"#defineucharunsignedchar#defineuintunsignedint#definekeyP3externvoiddelay(unsignedintx);///////////按键处理子程序/////////////////////////////unsignedc

5、harkeyscan(void){charj,z;key=0x0f;//屏蔽高四位j=key&0x0f;//与if(j!=0x0f)//判断是否有按键按下{delay(400);//延时子程序if((key&0x0f)!=0x0f)//判断按键是否真正按下{j=key&0x0f;//把低四位的值给jkey=0xf0;//屏蔽低四位z=key&0xf0;//把高四位值给zif((key&0xf0)!=0xf0)//等待按键抬起switch(j

6、z)//散转查表{case0x7e:return0;break;case0x7d:retu

7、rn1;break;case0x7b:return2;break;case0x77:return3;break;case0xbe:return4;break;case0xbd:return5;break;case0xbb:return6;break;case0xb7:return7;break;case0xde:return8;break;case0xdd:return9;break;case0xdb:return10;break;case0xd7:return11;break;case0xee:return12;break;ca

8、se0xed:return13;break;case0xeb:return14;break;case0xe7:return15;break;default:return0xff;break;}}}return0xff;}#include"reg52.h"#defineucharunsignedchar#defineuintunsignedint#defineoutputP0unsignedcharcodewe[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};unsignedcharcode

9、du[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};sbitdu_la=P2^1;sbitwe_la=P2^0;unsignedchardu_l[8];//寄存器externvoiddelay(unsignedintx);///////////////显示子程序////////////////////////////////////voiddisplay(unsignedinta,unsignedb){uinti;//定义局部变量for(i=0;i

10、utput=we[i+a];//位送数据we_la=1;//开位选we_la=0;//锁位选output=du_l[i];//段选送数据du_la=1;//开段选du_la=0;//锁段选delay(200);//延时子程序output=0xff;

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

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

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