1us的单片机定时Proteus仿真,可以弄的,问题比如定时器0,16位自动重装的,TH0,TL0设置好后,注意TMOD,问题一般出在这里
void Timer0Init(void) //1微秒@24.000MHz 这种设置会导致仿真显示1s,
{
AUXR |= 0x80; //定时器时钟1T模式
TMOD &= 0xF0; //设置定时器模式
TL0 = 0xE8; //设置定时初值
TH0 = 0xFF; //设置定时初值
TF0 = 0; //清除TF0标志
TR0 = 1; //定时器0开始计时
}
void init_timer0() //1微秒@24.000MHz 这种的就没问题
{
TMOD &= 0xF0; //设置定时器模式
TMOD |= 0x02; //设置定时器模式
TL0 = 0xFE; //设置定时初值
TH0 = 0xFF; //设置定时初值
TF0 = 0; //清除TF0标志
TR0 = 1; //定时器0开始计时
EA = 1; //开总中断
ET0 = 1; //开定时器0中断
}
1us的单片机定时Proteus仿真,可以弄的,问题比如定时器0,16位自动重装的,TH0,TL0设置好后,注意TMOD,问题一般出在这里
1000*1000是一百万,这个数你用什么类型的变量存储?要用长整型,最好是无符号长整型