微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 求大神 99秒定时器

求大神 99秒定时器

时间:10-02 整理:3721RD 点击:
为什么程序下载进去十位不亮   而个位却能亮一秒
# include <reg52.h>
unsigned char code table[]={        0XC0,0XF9,0XA4,0XB0,
                                0X99,0X92,0X82,0XF8,
                                    0X80,0X90,0X88,0X83,
                                        0XC6,0XA1,0X86,0X8E,0X89
                                                          };
unsigned char second;
unsigned char keycnt;
unsigned int tcnt,shi,ge;
sbit dula=P2^5;
sbit wela=P2^6;
sbit key=P3^5;
void delay(unsigned int z)
{
        unsigned int t1,y;
        for(t1=z;t1>0;t1--)
                for(y=110;y>0;y--);
}
void main()
{
        unsigned char i, j;
                dula=1;
                P0=table[0];
                dula=0;
                P0=0xff;
                wela=1;
                P0=0x03;
                wela=0;
                delay(1);
        TMOD=0X01;
        TH0=(65536-50000)/256;
    TL0=(65536-50000)%256;
        ET0=1;
        EA=1;
       
        second=0;

        while(1)
        {
                if(key==0)
                {
                        for(i=20;i>0;i--)
                                for(j=248;j>0;j--);
                }
                if(key==0)
                {
                        keycnt++;
                        switch(keycnt)
                        {
                                case 1:
                                               
                                                       
                                                        TR0=1;
                                               
                                                        break;
                                                  
                                                       
                                                     
                                               
                                case 2:
                                                        TR0=0;
                                                        break;
                                case 3:
                                                        keycnt=0;
                                                        second=0;
                                               
                                                       
                                                        break;
                        }
                        while(P3^5==0);
                       
                }
               
        }
}
void t0() interrupt 1
{
        TH0=(65536-50000)/256;
    TL0=(65536-50000)%256;
        tcnt++;
        if(tcnt==20)
        {
                tcnt=0;
                second++;
            shi=second/10;
                ge=second%10;
                if(second==100)
                {
                         second=0;
                }
                wela=1;
                P0=0x01;
                wela=0;
       
                P0=0xff;
            dula=1;
                P0=table[shi];
                dula=0;
            delay(1);
       
       
                dula=1;
                P0=table[ge];
                dula=0;
                P0=0xff;
                wela=1;
                P0=0x02;
                wela=0;
                delay(1);
                }
}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top