| 芯片是12C5616AD-PDIP28。 用ISP中的定时器设置T0为50ms中断,中断程序中用变量fc进行累加,
 然后在主程序中实现每秒打印一条信息。
 
   主要代码如下:
 
 串口打印结果:复制代码void Timer0_Isr(void) interrupt 1
{
    fc++;
}
void Timer0_Init(void)                //50毫秒@11.0592MHz
{
        AUXR &= 0x7F;                        //定时器时钟12T模式
        TMOD &= 0xF0;                        //设置定时器模式
        TL0 = 0x00;                                //设置定时初始值
        TH0 = 0x4C;                                //设置定时初始值
        TF0 = 0;                                //清除TF0标志
        TR0 = 1;                                //定时器0开始计时
        ET0 = 1;                                //使能定时器0中断
}
void main()
{
    IO_INIT();        
    Timer0_Init();                //50毫秒@11.0592MHz
    Uart1_Init();        //115200bps@11.0592MHz
    EA=1;                
    while(1)
    {
        if(fc>20)
        {
            printf("\r\ntime----");  
            fc=0;
            LED=~LED;
        }
    }
}
 
   
 串口打印的信息反映串口打印的间隔时间并不是1s,这是为什么?
 
 |