求助,我设计的时钟出了什么问题

2019-07-16 05:20发布

  就是一个24小时的时钟,我编的代码
#include<reg52.h>
#include<intrins.h>
unsigned char code smg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
void delay();
//int zhongduan() interrupt 1;
int a=0,b=0,c=0,d=0,e=0,f=0,t=0        ;
void delay()
{
        int g,h;
        for(g=100;g>0;g--)
                for(h=110;h>0;h--);
}
void main()
{
       
        TMOD=0X01;
        TR0=1;
        TH0=0X3C;
        TL0=0XB0;
        EA=1;
        ET0=1;

   while(1)
   {P2=0x01;
        P1=smg[a];
        delay();
        P1=0;

        P2=0x02;
        P1=smg[b];
        delay();
        P1=0;

        P2=0x04;
        P1=smg[c];
        delay();
        P1=0;

        P2=0x08;
        P1=smg[d];
        delay();
        P1=0;

        P2=0x10;
        P1=smg[e];
        delay();
        P1=0;  

        P2=0x20;
        P1=smg[e];
        delay();
        P1=0;
        }
}
void zhongduan() interrupt 1
{
        TH0=0X3C;
        TL0=0XB0;
        t=t+1;
        if(t>21)
        {f=f+1;
        if(f>9)
          {f=0;
          e=e+1;
          {if(e>5)
                  e=0;
                d=d+1;
                {if(d>9)
                        d=0;
                        c=c+1;
                        {if(c>5)
                                c=0;
                                b=b+1;
                                {if(b>4)
                                        b=0;
                                        a=a+1;
                                        {if(a>2)
                                                a=0;}}}}}}}}

还有电路图,就是P1脚控制数字,P2脚控制用哪个数码管,P2引脚连着数码管的共阳,通过控制共阳达到目的,

不过用KEIL仿真的时候,数字钟的数字乱跳,加快数码管切换的速度就不亮了。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
随喜_寻满世界
1楼-- · 2019-07-16 09:19
数字乱跳的表现:
每个数码管的该显示的极限数字都很正常,比如24小时的就最高显示2和4,
随喜_寻满世界
2楼-- · 2019-07-16 14:53
错手发送了。但是数字跳得很快,时针的好像秒针一样
随喜_寻满世界
3楼-- · 2019-07-16 15:50
 精彩回答 2  元偷偷看……
随喜_寻满世界
4楼-- · 2019-07-16 16:35
大家都是看帖不回帖的啊{:4:},现在只有秒位正常,秒位进位其他全都进位了
lovezjf234
5楼-- · 2019-07-16 18:20
延时太长
随喜_寻满世界
6楼-- · 2019-07-16 21:17
lovezjf234 发表于 2012-7-3 22:05
延时太长

我可以调延时,但是显示效果还是不完整,再低,就直接不显示了。

我现在把后面的IF语句全部都拆开后,套上过括号就调试好计时部分了,不过动态扫描的显示还是很烂,是proteus的问题吗?延时我调到10ms还是没法做到完整显示

一周热门 更多>