你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

求教这个问题怎么解决

[复制链接]
w小菜才 提问时间:2015-3-10 13:37 /
求教这个问题怎么解决
QQ图片20150310133539.png
收藏 评论18 发布时间:2015-3-10 13:37

举报

18个回答
w小菜才 回答时间:2015-3-10 18:44:54
moyanming2013 发表于 2015-3-10 16:35
main.c第98行,贴下代码?

#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--);
}
w小菜才 回答时间:2015-3-10 18:45:32
slotg 发表于 2015-3-10 16:14
应该将该程序段贴出来看看吧!

#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--);
}
w小菜才 回答时间:2015-3-10 18:45:14
flyword 发表于 2015-3-10 16:27
贴出来程序看看

#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--);
}
flyword 回答时间:2015-3-10 14:29:07
没有标签的定义啊
kqh1120 回答时间:2015-3-10 15:13:59
没有遇到过 3.gif
wyxy163@126.com 回答时间:2015-3-10 15:41:31
提示: 作者被禁止或删除 内容自动屏蔽
w小菜才 回答时间:2015-3-10 16:08:58
flyword 发表于 2015-3-10 14:29
没有标签的定义啊

没定义标签是什么意思啊?
slotg 回答时间:2015-3-10 16:14:13
应该将该程序段贴出来看看吧!
flyword 回答时间:2015-3-10 16:27:35
贴出来程序看看
星辰一方 回答时间:2015-3-10 16:33:46
说的应该是未定义标号吧
moyanming2013 回答时间:2015-3-10 16:35:22
main.c第98行,贴下代码?
w小菜才 回答时间:2015-3-10 18:45:48
#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--);
}





这是程序
flyword 回答时间:2015-3-10 19:05:03
这个程序贴的看不出来,不如截个屏或者上传一下工程,呵呵,不过有延时处有错误,最下面延时的程序 无符号char a,b,c 那样 a,b,c 最大255(8位字符),你给b,c赋值有问题。
w小菜才 回答时间:2015-3-10 19:09:22
flyword 发表于 2015-3-10 19:05
这个程序贴的看不出来,不如截个屏或者上传一下工程,呵呵,不过有延时处有错误,最下面延时的程序 无符号c ...

呵呵,我已经把b,c改了,我传一个工程上去,大神帮我看看哈
12下一页

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版