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

求教这个问题怎么解决

[复制链接]
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管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版