tang0868 发表于 2025-6-19 15:43:42

不加NOP2(),LED闪烁有间断,为什么会这样。

#include "stc8g.h"
unsigned char i=0;
void Timer0_Isr(void) interrupt 1
{i=i++;
}

void Timer0_Init(void)                //1毫秒@11.0592MHz
{
        AUXR |= 0x80;                        //定时器时钟1T模式
        TMOD &= 0xF0;                        //设置定时器模式
        TL0 = 0xCD;                                //设置定时初始值
        TH0 = 0xD4;                                //设置定时初始值
        TF0 = 0;                                //清除TF0标志
        TR0 = 1;                                //定时器0开始计时
        ET0 = 1;                                //使能定时器0中断
        EA = 1;
}
void main(void)
{    P1M0 = 0x00; P1M1 = 0x00;
   Timer0_Init();
        while(1)
        {                if(i==250){P10=!P10;NOP2();}
                        if(i==251){i=0;NOP2();}
        }
}


ercircle 发表于 2025-6-19 21:12:05

不加NOP,1ms内多次进入LED翻转太快了

另外不要写这种操作i=i++;直接i++;就行了
页: [1]
查看完整版本: 不加NOP2(),LED闪烁有间断,为什么会这样。