打印

昨天晚上调试啦很久没出结果帮帮忙看一下

[复制链接]
2350|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yaoyao1314|  楼主 | 2013-4-3 09:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<reg52.h>
sbit DU = P2^6;
sbit WE = P2^7;
unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
                        0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00};
void main(void)
{
unsigned int i,j,k;
while(1)
{
DU = 0;
DU = 1;
P0 =  0x06;
DU = 0;
P0 = 0xff;
WE = 1;
P0=0xfe;
     WE=0;
for(i=0;i<10000;i++);
DU=1;
    P0=table[0];
    DU=0;
    P0=0xff;
    WE=1;
    P0=0xfd;
    WE=0;
for(i=0;i<50000;i++);
  
for(K= 9;K>=0;K--)
{
DU = 0;
  DU = 1;
P0 = table[i];
DU = 0;
P0 = 0xff;
WE = 1;
P0=0xfe;
     WE=0;
for(j=0;j<50000;j++);
}  
}
}
代码如上 为什么while只循环一次呢 也就是说数码管只是从10显示到0 然后就不在重复啦?为什么啊  为什么

相关帖子

沙发
joyme| | 2013-4-3 09:53 | 只看该作者
代码是拷贝的还是敲上去的?
P0 = table[i]越界了,不知道是不是笔误
检查开门狗的配置,如果使能了就要喂狗

使用特权

评论回复
板凳
ytfdhb| | 2013-4-3 10:37 | 只看该作者
#include<reg52.h>
sbit DU = P2^6;
sbit WE = P2^7;
unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
                        0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00};
void main(void)
{
    unsigned int i,j,k;
    while(1)
    {
        DU = 0;
        DU = 1;
        P0 = 0x06;    // 显示 “1”
        DU = 0;
        P0 = 0xff;
        WE = 1;
        P0=0xfe;
        WE=0;
        for(i=0;i<10000;i++);
  
        DU=1;
        P0=table[0];
        DU=0;
        P0=0xff;
        WE=1;
        P0=0xfd;
        WE=0;
  
        for(i=0;i<50000;i++); // 延时???延时多长时间
  
        for(K= 9;K>=0;K--)
        {
           DU = 0;
           DU = 1;
           P0 = table;    // 第一次执行 i == 50000 ,p0值是多少?
           DU = 0;
           P0 = 0xff;        
           WE = 1;
           P0=0xfe;
           WE=0;
           for(j=0;j<50000;j++);   // 延时???多长时间??
        }  
    }
}






一、代码缩进不规范,变量命名不规范
二、没注释
三、写代码思路比较混乱
四、写代码不细心
五、慢慢来,沉住气,先理清思路,最好先看一下例程,理解了例程以后再自己慢慢写
六、祝楼主学业进步,事事顺心^_^

使用特权

评论回复
地板
yaoyao1314|  楼主 | 2013-4-3 11:57 | 只看该作者
谢谢楼上两位的帮助 确实有点乱 昨天也很晚啦我想把这个功能的跑出来可是就是不成功
#include<reg52.h>
sbit DU = P2^6;
sbit WE = P2^7;
unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
                        0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00};
void main(void)
{
        unsigned int i,j,k;
        while(1)
        {
          
                //初始化锁存
                DU = 1;
                //段选显示1
                P0 =  table[1];
                DU = 0;
                //清空段选
                P0 = 0xff;
                //初始化位选
                WE = 1;
                //位选显示第一位
                P0=0xfe;
            WE=0;
                //延时
                 for(i=0;i<30000;i++);
                DU=1;
                //显示0        段选
            P0=table[0];
            DU=0;
            P0=0xff;
            WE=1;
                //位选显示第二个
            P0=0xfd;
            WE=0;
                 for(i=0;i<30000;i++);
                 /*以上显示10 一下显示9到0*/
                 for(k= 9;k>=0;k--)
                 {
                         DU = 0;
                         DU = 1;
                        P0 = table[k];
                        DU = 0;
                        P0 = 0xff;
                        WE = 1;
                        P0=0xfe;
                    WE=0;
                        for(j=0;j<30000;j++);
                 }        
        }       
}

使用特权

评论回复
5
yaoyao1314|  楼主 | 2013-4-3 16:47 | 只看该作者
大家都没遇到这情况吗?高人帮忙看看

使用特权

评论回复
6
xiaoqigai2| | 2013-4-3 17:21 | 只看该作者
k>=0;改成k>=1;就好了!

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
wu_npu + 1 很给力!
7
yiucing| | 2013-4-3 17:37 | 只看该作者
for(k= 9;k>=0;k--)
{
    ......
    //或者在这个循环最后加
    if(k == 0)
    {
        break;
    }
}

使用特权

评论回复
8
菜鸟同学| | 2013-4-3 17:47 | 只看该作者
for(K= 9;K>=0;K--)  // 一直死循环!K你定义的是unsigned int  0-65535
K>= 0 永远都成立! 你可以看看汇编是如何执行的就完全明白了!

使用特权

评论回复
9
yaoyao1314|  楼主 | 2013-4-3 18:14 | 只看该作者
感谢大家的帮助啊,成功啦!!谢谢今天长见识啦

使用特权

评论回复
10
ivan.21| | 2013-4-4 22:57 | 只看该作者
for循环里头为什么不用++呢,这样不容易出类似的错误啊。我就喜欢用++

使用特权

评论回复
评论
xiaoyuan_ly 2013-4-4 23:20 回复TA
用--指令有,指令效率高,代码少; 51没有++的指令支持。 
11
平时在跑程序的时候多多动脑,一点一点的修正,结合演示的结果,来调整,这样进步很快的

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
yaoyao1314 + 1
12
moebius.ever| | 2013-4-6 17:48 | 只看该作者
学习了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

52

帖子

0

粉丝