protues仿真51单片机定时器产生1us定时
没事干玩玩protues,突然发现protues仿真时有点小问题。当定时器初值设置为(65536-1)/256、(65536-1)%256时,1000*1000构成一个1...
没事干玩玩protues,突然发现protues仿真时有点小问题。
当定时器初值设置为(65536 - 1)/256、(65536- 1)%256时,1000*1000构成一个1秒定时时,单片机就死了,求大神告知什么原因,本人猜测是protues软件的问题。 展开
当定时器初值设置为(65536 - 1)/256、(65536- 1)%256时,1000*1000构成一个1秒定时时,单片机就死了,求大神告知什么原因,本人猜测是protues软件的问题。 展开
2个回答
展开全部
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,问题一般出在这里
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询