打印

求助:大家看看这段动态扫描的程序哪里出错啦!

[复制链接]
1475|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhshling|  楼主 | 2010-5-9 10:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
想动态扫描显示87654321,但是运行后,在学习板上却显示87654329,大家瞧瞧是怎么回事。
/*数码管动态扫描显示87654321*/
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
uchar n1,n2,t;
uchar code tabledu[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
uchar code tablewe[]={
0,0x01,0x02,0x03,0x04,
0x05,0x06,0x07};
void init();
void main()
{
    init();         //初始化
    while(1)
        {
          
          if(t==1)
          {
            t=0;
                n1--;
                if(n1==1)
                n1=9;
                P2=tabledu[n1];           //送段选
                P1=tablewe[n2];           //送位选
                n2++;
                if(n2==8)
                n2=0;
          }
        }
}
/*初始化子程序*/
void init()
{
    n1=9;
    TMOD=0x01;
        TH0=(65536-1000)/256;
        TL0=(65536-1000)%256;
        EA=1;
        ET0=1;
        TR0=1;
}
/* 定时器中断子程序 */
void timer0() interrupt 1
{
           TH0=(65536-1000)/256;
        TL0=(65536-1000)%256;
        t++;
}
}

相关帖子

沙发
chfirst| | 2010-5-9 11:03 | 只看该作者
n1--;  
if(n1==1)
      n1=9;
       P2=tabledu[n1];   
所以显示完2就n--
n为1后变为9了,就显示9了
改成
if(n1==0)
      n1=8;
       P2=tabledu[n1];   
试试

使用特权

评论回复
板凳
zhshling|  楼主 | 2010-5-9 16:47 | 只看该作者
改了,但不行,显示的全是8。

使用特权

评论回复
地板
lovewwy| | 2010-5-9 20:54 | 只看该作者
中间那个if条件后最后加上{} ,看着有点别扭

使用特权

评论回复
5
原野之狼| | 2010-5-9 23:40 | 只看该作者
if(t==1)
          {
            t=0;

                P2=tabledu[n1-1];           //送段选
                P1=tablewe[n2];           //送位选
                n2++;
                if(n2==8)
                n2=0;
                n1--;
                if(n1==0)
                n1=9;
          }


你的循环方式还是得修改一下 有些麻烦

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
zhshling + 1 谢谢
6
ayb_ice| | 2010-5-10 08:57 | 只看该作者
这是简单的边界问题
还是自己解决吧
不能什么问题都问

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
zhshling + 1 谢谢 !
7
zhshling|  楼主 | 2010-5-10 21:05 | 只看该作者
O(∩_∩)O谢谢各位大虾指导!

使用特权

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

本版积分规则

0

主题

43

帖子

1

粉丝