你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
举报
moyanming2013 发表于 2015-3-10 16:35 main.c第98行,贴下代码?
slotg 发表于 2015-3-10 16:14 应该将该程序段贴出来看看吧!
flyword 发表于 2015-3-10 16:27 贴出来程序看看
flyword 发表于 2015-3-10 14:29 没有标签的定义啊
flyword 发表于 2015-3-10 19:05 这个程序贴的看不出来,不如截个屏或者上传一下工程,呵呵,不过有延时处有错误,最下面延时的程序 无符号c ...
#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--);
}
#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--);
}
#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--);
}
没定义标签是什么意思啊?
#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--);
}
这是程序
呵呵,我已经把b,c改了,我传一个工程上去,大神帮我看看哈