在线时间74 小时
UID3089579
ST金币0
蝴蝶豆0
注册时间2015-1-5
高级会员
- 最后登录
- 2018-8-20
|
楼主 |
发表于 2015-3-10 18:44:54
|
显示全部楼层
a0a.1 32b0c
#include<reg51.h>
#define GPIO_DIG P0
#define GPIO_DIG2 P2
#define GPIO_KEY P1
unsigned char code DIG_CODE[17]={
0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01,//È·¶¨ÐÐ
0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe}; //È·¶¨ÁÐ
unsigned char KeyValue;//ÓÃÀ´´æ·Å¶ÁÈ¡µ½µÄ¼ü
unsigned char KeyValue1; //ÓÃÀ´¶ÁÈ¡°´¼üµÄÖµ
void Delay10ms(); //ÑÓʱ10ms
void KeyDown(); //¼ì²â°´¼üº¯Êý
void KeyDown1();
/*******************************************************************************
* º¯ Êý Ãû : main
* º¯Êý¹¦ÄÜ : Ö÷º¯Êý
* Êä Èë : ÎÞ
* Êä ³ö : ÎÞ
*******************************************************************************/
void main(void)
{
int i=1;
while(1)
{
if(i==1)
{
KeyDown();
// if(KeyValuv<9)
GPIO_DIG=DIG_CODE[KeyValue];
Delay10ms();
}
else
{
KeyDown();
GPIO_DIG2=DIG_CODE[KeyValue];
Delay10ms();
}
i=i+1;
}
}
/*******************************************************************************
* º¯ Êý Ãû : KeyDown
* º¯Êý¹¦ÄÜ : ¼ì²âÓа´¼ü°´Ï²¢¶ÁÈ¡¼üÖµ
* Êä Èë : ÎÞ
* Êä ³ö : ÎÞ
*******************************************************************************/
void KeyDown(void)
{
char a=0;
GPIO_KEY=0x0f;
if(GPIO_KEY!=0x0f)//¶ÁÈ¡°´¼üÊÇ·ñ°´ÏÂ
{
Delay10ms();//ÑÓʱ10ms½øÐÐÏû¶¶
if(GPIO_KEY!=0x0f)//Ôٴμì²â¼üÅÌÊÇ·ñ°´ÏÂ
{
//²âÊÔÁÐ
GPIO_KEY=0X0F;
switch(GPIO_KEY)
{
case(0X07): KeyValue=0;break;
case(0X0b): KeyValue=1;break;
case(0X0d): KeyValue=2;break;
case(0X0e): KeyValue=3;break;
}
//²âÊÔÐÐ
GPIO_KEY=0XF0;
switch(GPIO_KEY)
{
case(0X70): KeyValue=KeyValue;break;
case(0Xb0): KeyValue=KeyValue+4;break;
case(0Xd0): KeyValue=KeyValue+8;break;
case(0Xe0): KeyValue=KeyValue+12;break;
}
while((a<50)&&(GPIO_KEY!=0xf0)) //¼ì²â°´¼üËÉÊÖ¼ì²â
{
Delay10ms();
a++;
}
}
}
}
/*******************************************************************************
* º¯ Êý Ãû : Delay10ms
* º¯Êý¹¦ÄÜ : ÑÓʱº¯Êý£¬ÑÓʱ10ms
* Êä Èë : ÎÞ
* Êä ³ö : ÎÞ
*******************************************************************************/
void Delay10ms(void) //Îó²î 0us
{
unsigned char a,b,c;
for(c=10;c>0;c--)
for(b=380;b>0;b--)
for(a=1300;a>0;a--);
}
|
|