锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

矩阵键盘实验程序

时间:2024-05-02 19:07:10

试验效果如下:


#include
#define duan P0//段选 #define wei P2//位选 unsigned char code wei1[8] = { 0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//位选控制 查表的方法控制 unsigned char code duan1[17] = { 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//0、1、2、3、4、5、6、7、8、9、A、b、C、d、E、F的显示码 unsigned char ge; unsigned int temp; void keys(); // 扫描函数 void s(unsigned char xms); //延时函数 void DigDisplay(); //动态显示函数 void main(void) { while(1) { DigDisplay(); keys(); } }
void DigDisplay() { unsigned char i; unsigned int j;
wei = wei1[i]; //发送位选 duan = duan1[ge]; //发送段码 j = 10; //扫描间隔时间设定 while(j--); duan = 0x00; //消隐 }
void s(unsigned char xms) { unsigned char x,y; for(x=xms;x>0;x--) for(y=110;y>0;y--); }
void keys() { P1=0x7f; temp=P1; if(temp!=0x7f) { s(5); temp=P1; if(temp!=0x7f) { temp=temp&0x0f; switch(temp) { case 0x07:ge=0;break; case 0x0b:ge=1;break; case 0x0d:ge=2;break; case 0x0e:ge=3;break; } while(temp!=0x0f) { temp=P1; temp=temp&0x0f; DigDisplay(); } } }
P1=0xbf; temp=P1; if(temp!=0xbf) { s(5); temp=P1; if(temp!=0xbf) { temp=temp&0x0f; switch(temp) { case 0x07:ge=4;break; case 0x0b:ge=5;break; case 0x0d:ge=6;break; case 0x0e:ge=7;break; } while(temp!=0x0f) { temp=P1; temp=temp&0x0f; DigDisplay(); } } }
P1=0xdf; temp=P1; if(temp!=0xdf) { s(5); temp=P1; if(temp!=0xdf) { temp=temp&0x0f; switch(temp) { case 0x07:ge=8;break; case 0x0b:ge=9;break; case 0x0d:ge=10;break; case 0x0e:ge=11;break; } while(temp!=0x0f) { temp=P1; temp=temp&0x0f; DigDisplay(); } } }
P1=0xef; temp=P1; if(temp!=0xef) { s(5); temp=P1; if(temp!=0xef) { temp=temp&0x0f; switch(temp) { case 0x07:ge=12;break; case 0x0b:ge=13;break; case 0x0d:ge=14;break; case 0x0e:ge=15;break; } while(temp!=0x0f) { temp=P1; temp=temp&0x0f; DigDisplay(); } } } }
-电子元器件采购网(www.ruidan.com)是本土元器件目录分销商,采用“小批量、现货、样品”销售模式,致力于满足客户多型号、高质量、快速交付的采购需求。 自建高效智能仓储,拥有自营库存超过50,000种,提供一站式正品现货采购、个性化解决方案、选型替代等多元化服务。
锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章