本帖最后由 电子爱好者life 于 2015-10-15 15:38 编辑
51定时中断是计满溢出产生中断(从0-65535 共65536个数),所以这里是65535是不对的!是65536 = 2^16,TH0和TL0 都是8位,256 = 2^8。比如 晶振是12MHZ,那么定时10ms,定时初值为65536-10000=55536,那么TH0 = 55536/256 = 216 = 0xd8;TL0 = 55536%256 = 240=0xf0;55536 = 256*TH0+TL0;
void timer0()interrupt 1
{
TH0 = (65536-10000)/256;
TL0 = (65536-10000)%256;
} |