我写了,记得采纳点赞。
void Timer0Init(void) //10毫秒@11.0592MHz
{
AUXR &= 0x7F; //定时器时钟12T模式
TMOD &= 0xF0; //设置定时器模式
TL0 = 0x00; //设置定时初值
TH0 = 0xDC; //设置定时初值
TF0 = 0; //清除TF0标志
TR0 = 1; //定时器0开始计时
}
定时10ms,程序,你要时间,只要每次进入中断,加一,主循环扫描这个变量就可以了。
这就是设置的系统时间,定时器做的,还是比较准确的。
和你的晶振频率有关的啊,如果是12M的话,定时器诶加倍,那就是200us翻转一次,周期400us,不然就不一定了。0809的转换的时钟频率典型值好像是600K吧,560k-600k之间。具体不记得了。