初级会员 
  
	- 积分
 - 96
 
        - 金钱
 - 96 
 
       - 注册时间
 - 2019-9-29
 
      - 在线时间
 - 19 小时
 
 
 
 | 
 
 
 楼主 |
发表于 2019-9-30 18:00:18
|
显示全部楼层
 
 
 
问题应该出在定时器这块,可以返回正确数据 
 
#include<reg52.h> 
#define uchar unsigned char 
#define uint unsigned int 
         
uint num; 
uint i[1]; 
uchar flag; 
 
sbit led=P2^0; 
 
/*void delay100us(void)    
{ 
    unsigned char a,b; 
    for(b=1;b>0;b--) 
        for(a=47;a>0;a--); 
}*/ 
 
 
void main (void) 
{ 
                IP|=0X10; 
                TMOD|=0x21;         
                EA=1; 
         
         
    TH0 = 0x0FC; 
    TL0 = 0x18; 
    ET0 = 1; 
    TR0 = 1; 
 
    SCON = 0x50; 
    TH1 = 0xE6; 
    TL1 = TH1; 
    PCON = 0x00; 
    ES = 1; 
    TR1 = 1; 
         
        while(1); 
        /*{ 
 
                        if(num==i) 
                        { 
                                num=0; 
                                led0=~led0; 
                        } 
 
        }*/ 
} 
 
 
void Timer0Interrupt(void) interrupt 1 
{ 
    TH0 = 0x0FC; 
    TL0 = 0x18; 
    num++; 
        if(num==i[0]) 
        { 
                num=0; 
                led=~led; 
        } 
} 
         
void UARTInterrupt(void) interrupt 4 
{ 
        uint j; 
    if(RI) 
    { 
        RI = 0; 
        j=SBUF; 
                        i[0]=j; 
                        SBUF=i[0]; 
    } 
    if(TI) 
        TI = 0; 
} 
 |   
 
 
 
 |