標(biāo)題: 關(guān)于定時(shí)器控制000~999跑表的中斷問(wèn)題: [打印本頁(yè)]

作者: 亂世孤影    時(shí)間: 2018-3-17 10:34
標(biāo)題: 關(guān)于定時(shí)器控制000~999跑表的中斷問(wèn)題:

我這個(gè)定時(shí)器顯示方面沒(méi)毛病,但是我搞不懂外部中斷控制,看視頻在外部中斷函數(shù)中加了“TR0=~TR0”讓他可以通過(guò)按鍵來(lái)控制通斷,可是斷開(kāi)時(shí),它并不能顯示中斷時(shí)的時(shí)間,想請(qǐng)各位大佬指教,下邊還有我的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, 下載次數(shù): 50)

捕獲.PNG





歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1