标题: 关于定时器控制000~999跑表的中断问题: [打印本页]

作者: 乱世孤影    时间: 2018-3-17 10:34
标题: 关于定时器控制000~999跑表的中断问题:

我这个定时器显示方面没毛病,但是我搞不懂外部中断控制,看视频在外部中断函数中加了“TR0=~TR0”让他可以通过按键来控制通断,可是断开时,它并不能显示中断时的时间,想请各位大佬指教,下边还有我的protues原理图
         #include<STC12C5A60S2.h>
#include<intrins.h>

typedef unsigned char u8;
typedef unsigned int u16;

sbit p32=P3^2;
u8 code smgduan[]={
                                                0x3f,0x06,0x5b,0x4f,0x66,
                                                0x6d,0x7d,0x07,0x7f,0x6f,
                                    };
u8 smgwei[]={0,0,0};


void Init0int()
{
        TH0=0XEE;
        TL0=0X00;
        ET0=1;
    TR0=1;
}

u8 k,i,m=0;

void delay(u16 x)
{
    u16 i,j;
    for(i=x;i>0l;i--)
    for(j=255;j>0;j--);
}

void main()
{
        k=0x01;
        i=0;
        m=0;
        TMOD=0X01;
        Init0int();
        IT0=1;
        IE0=1;
        EX0=1;
       
        PT0=1;
        EA=1;
        while(1);
       
              

}

void Key() interrupt 0         using 0
{

               
                TR0=~TR0;

         
}

void display()
{
         P2=0x00;
                if(k==0X01)
                        P0=smgduan[smgwei[0]];
                if(k==0X02)
                        P0=0x40;
        if(k==0x04)
            P0=smgduan[smgwei[1]];
        if(k==0X08)
                        P0=smgduan[smgwei[2]];         
               
                P2=k;
                i++;
                if(i==4)
                {
                        i=0;
               
                        k=0x01;
                }
                else
                        k=_crol_(k,1);
}


void Timer0() interrupt 1
{
       
        TH0=0Xee;
        TL0=0X00;
       
       
        m++;
                 
   if(m==1)
        {
          display();

        }
         
        if(m==2)
        {       
            m=0;
                if(smgwei[2]==9)
                {
                        smgwei[2]=0;
                                       
                        if(smgwei[1]==9)
                        {
                                 smgwei[1]=0;
                               
                                if(smgwei[0]==9)
                                        smgwei[0]=0;
                                else
                                         smgwei[0]++;
                        }
                        else
                                smgwei[1]++;
       
            }
                else
                        smgwei[2]++;
                                                       
    }
         
       
}

捕获.PNG (217.22 KB, 下载次数: 50)

捕获.PNG





欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1