4乘4矩阵键盘扫描加数码管显示代码

  • 格式:doc
  • 大小:98.25 KB
  • 文档页数:16

下载文档原格式

  / 16
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

4*4矩阵键盘扫描加数码管显示

遵义师范学院(工学院)

电气工程及其自动化

黎卫星

/***************************************************************/ //º¯ÊýÍ·Îļþ

/***************************************************************/ #include

#include

#include

#include

#include

/***************************************************************/ //Ö÷º¯Êý

/***************************************************************/ void main()

{

displaychushihua();

while(1)

{

num=keyjiance();

dula=1;

P0=~table[num-1];

dula=0;

}

}

/***************************************************/

//ÑÓʱº¯Êý

/***************************************************/

void delay(unsigned int z)

{

unsigned int x,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

/***************************************************************/ //Êý×Ö¿â

/***************************************************************/ sbit dula = P2^6;

sbit wela = P2^7;

/***************************************************************/ /***************************************************************/ unsigned char code table[]=

{

0x3f,0x06,0x5b,0x4f,

0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,

0x39,0x5e,0x79,0x71,

0x00//0x00Ϊ¹Ø±ÕËùÊýÂë¹ÜÏÔʾ

};

/***************************************************************/ //¼üÅÌɨÃè

/***************************************************************/ unsigned int temp,num;

/***************************************************************/ /***************************************************************/ unsigned int keyjiance()// unsigned int º¯Êý·µ»ØÖµÀàÐÍ Ê¹

ÓÃvoidΪÎÞ·µ»ØÖµ»á³ö´í

{

P3=0XFE; //µÚÒ»Ðмì²â

temp=P3;

temp=temp&0xf0;

while(temp!=0xf0)

{

delay(5);

temp=P3;

temp=temp&0xf0;

while(temp!=0xf0)

,.

{

temp=P3;

switch(temp)

{ case 0xee:num=1;

break;

case 0xde:num=2;

break;

case 0xbe:num=3;

break;

case 0x7e:num=4;

break;

} while(temp!=0xf0)//°´¼üËÉÊÖ¼ì²â

{

temp=P3;

temp=temp&0xf0;

}

//dula=1;

//P0=~table[num-1];

// dula=0;

}

}

P3=0XFD; //µÚ¶þÐмì²â

temp=P3;

temp=temp&0xf0;

while(temp!=0xf0)

{

delay(5);

temp=P3;

temp=temp&0xf0;

while(temp!=0xf0)

{

temp=P3;

switch(temp)

{ case 0xed:num=5;

break;

case 0xdd:num=6;

break;

case 0xbd:num=7;

break;