8位数码管同时显示两个时钟

2019-07-15 19:23发布

小白刚学单片机,想弄个8位数码管同时显示两个时钟,但是仿真的时候一直停留在如图画面:


代码如下,哪位大神能帮我看一下吗?
#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
uchar a1,a2,fen1,miao1,fen2,miao2,fen11,fen12,fen21,fen22,miao11,miao12,miao21,miao22;
uchar code table[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};  //LED显示字模
uchar BitTab[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01 }; //LED位驱动码
void init();//初始化函数
void display();//显示函数
void delay(uint z);//延时函数
void main()//主函数
{
init();
while(1)//等待中断,并不停地动态扫描,定时器的时间到了,则中断发生,然后时间数值变化一次,时间不到则不停动态扫描。
      {
    fen11=fen1/10;//数值变化
           fen12=fen1%10;
           miao11=miao1/10;
           miao12=miao1%10;
    fen21=fen2/10;//数值变化
           fen22=fen2%10;
           miao21=miao2/10;
           miao22=miao2%10;
    display();//显示函数
  }
}
void delay(uint z)//延时子函数
{       uint x,y;
     for(x=z;x>0;x--)
        for(y=110;y>0;y--);
}
void init()//初始化变量,开启中断
{      
fen1=1;
miao1=0;

TMOD=0x11;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=1; //计数器0开始运行
TR1=1;
    EA=1;
ET1=1;
}
void display()//显示子函数
{
    P2=BitTab[0];//位选
  P0=table[fen11];//段选
  delay(1);
    P2=BitTab[1];
  P0=table[fen12];
  delay(1);
    P2=BitTab[2];
  P0=table[miao11];
  delay(1);
    P2=BitTab[3];
  P0=table[miao12];
  delay(1);
    P2=BitTab[4];//位选
  P0=table[fen21];//段选
  delay(1);
    P2=BitTab[5];
  P0=table[fen22];
  delay(1);
    P2=BitTab[6];
  P0=table[miao21];
  delay(1);
    P2=BitTab[7];
  P0=table[miao22];
  delay(1);
}
void T0_time() interrupt 1 //中断服务程序
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
a1++;
a2++;
   if(a1==20)//一秒钟
   {
       a1=0;
       miao1++;
       if(miao1==60)//秒钟
       {   
            miao1=0;
            fen1++;
            if(fen1==60)//分钟
            {
             fen1=0;
                    
            }
       }
   }
if(a2==20)//一秒钟
   {
       a2=0;
       miao2++;
       if(miao2==60)//秒钟
       {   
            miao2=0;
            fen2++;
            if(fen2==60)//分钟
            {
             fen1=0;
                    
            }
       }
   }
}

QQ截图20140619002152.jpg
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
nsj21n
1楼-- · 2019-07-16 19:34
提供个思路,你用定时器扫描数码管,主程序WHILE里面扫描按键
heishe1989
2楼-- · 2019-07-17 00:33
 精彩回答 2  元偷偷看……
江湖枫子
3楼-- · 2019-07-17 04:16
{:12:}{:12:}
两只脚
4楼-- · 2019-07-17 06:54
顶顶顶顶顶顶顶顶顶
tranhunga
5楼-- · 2019-07-17 09:09
谢谢分享的好资料

一周热门 更多>