数码管显示时钟已写好,求大神加个独立按键控制启动暂停

2019-07-15 21:16发布

#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned long int
uint num;
uchar cunt;        //全局变量
uchar tab1[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};//高电平有效
uchar code tab2[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdF,0xbF,0x7F};//低电平有效
void display(uint num);
void delay();
void init()           //中断
        {                                                                  
                TMOD=0x01;
                TH0=(65535-50000)/256;
                TL0=(65535-50000)%256;
                EA=1;          //开总中断
                ET0=1;          //开定时器
                TR0=1;          //启动定时器,计数
                cunt=0;          //中断初始化
                num=0;          //计数初始化
                        }
void main()
        {
                init();           //函数初始化
                while(1)
                {
                        if(cunt==20)
                        {
                                cunt=0;
                                num++;
                        }
                        if(num>86400)           //计时24小时清零
                                num=0;
                        display(num);      //时分秒显示
                }
        }                               
void timer()  interrupt 1           //中断
{
        TH0=(65535-50000)/256;
        TL0=(65535-50000)%256;
        cunt++;
}
void display(uint num)          
        {
                uchar hou1,hou2,min1,min2,sec1,sec2;
                sec1=num%10;
                sec2=num%60/10;
                min1=num%600/60%10;
                min2=num%3600/600%10;
                hou1=num/3600%10;
                hou2=num/36000;

                P0=tab1[sec1]; //段选
                P2=tab2[7];           //位选
                delay();
                P2=0xff;

                P0=tab1[sec2];
                P2=tab2[6];       
                delay();
                P2=0xff;

                P0=tab1[min1];
                P2=tab2[4];
                delay();
                P2=0xff;

                P0=tab1[min2];
                P2=tab2[3];
                delay();
                P2=0xff;

                P0=tab1[hou1];
                P2=tab2[1];
                delay();
                P2=0xff;

                P0=tab1[hou2];
                P2=tab2[0];
                delay();
                P2=0xff;
}
void delay()
        {
                uchar i,j;
                for(i=100;i>0;i--)                 //延时1MS
                        for(j=10;j>0;j--);
        }
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。