新手上路 
 
	- 积分
 - 44
 
        - 金钱
 - 44 
 
       - 注册时间
 - 2016-12-7
 
      - 在线时间
 - 10 小时
 
 
 
 | 
 
2金钱 
想用stc15f2k60s2定时器间隔定时,发现无法进入中断程序如下        u8 cnt = 0;  
void main() 
{ 
 
    u8 j; 
        u8 temp = 0x01; 
        AUXR |= 0X80;//定时器时钟1T模式 
        TMOD &= 0X00;//定时器模式为16位自动重装 
        TL0 = 0X00; 
        TH0 = 0X28; 
        //TF0 = 0;  //清除TF0标志 
        TR0 = 1;  //定时器0开始计时 
        EA = 1; 
        ET0 = 0; 
        P1 = temp; 
        while(1) ; 
        /*{   
            for(j = 0; j<7;j++) 
                {         
                        if(cnt == 5) 
                        { 
                                cnt = 0;         
                                temp <<= 1; 
                                P1 = temp; 
                        } 
                        if(temp == 0x80) break; 
                } 
                for(j = 0;j<7;j++) 
                { 
                   if(cnt == 5) 
                   { 
                           cnt = 0; 
                        temp >>= 1; 
                        P1 = temp; 
                   } 
                   if(temp == 0x01) break; 
                } 
        } 
}  
void Timer0Init() interrupt 1 using 1 
{ 
 P1 = !P1; 
        u8 i = 0; 
        TL0 = 0X00; 
        TH0 = 0X28; 
        i++; 
        if(i == 40) 
                cnt++; 
} 
 
用了官方的例子发现也不行  三脸懵逼 
typedef unsigned char BYTE; 
typedef unsigned int WORD; 
 
//----------------------------------------------- 
 
#define FOSC 11059200L 
 
#define T1MS (65536-FOSC/1000)      //1T模式 
//#define T1MS (65536-FOSC/12/1000) //12T模式 
 
//----------------------------------------------- 
 
/* Timer0 interrupt routine */ 
void tm0_isr() interrupt 1 using 1 
{ 
    P1 = ! P1;                    //将测试口取反 
} 
 
//----------------------------------------------- 
 
/* main program */ 
void main() 
{ 
    P1M0 = 0x00; 
    P1M1 = 0x00; 
    AUXR |= 0x80;                   //定时器0为1T模式 
//  AUXR &= 0x7f;                   //定时器0为12T模式 
 
    TMOD = 0x00;                    //设置定时器为模式0(16位自动重装载) 
    TL0 = T1MS;                     //初始化计时值 
    TH0 = T1MS >> 8; 
    TR0 = 1;                        //定时器0开始计时 
    ET0 = 1;                        //使能定时器0中断 
    EA = 1; 
        P1 = 0XFF; 
    while (1); 
} 
 
 
 |   
 
 
 
 
 
 |