A. protues模擬51單片機定時器產生1us定時
1us的單片機定時Proteus模擬,可以弄的,問題比如定時器0,16位自動重裝的,TH0,TL0設置好後,注意TMOD,問題一般出在這里
voidTimer0Init(void) //1微秒@24.000MHz這種設置會導致模擬顯示1s,
{
AUXR|=0x80; //定時器時鍾1T模式
TMOD&=0xF0; //設置定時器模式
TL0=0xE8; //設置定時初值
TH0=0xFF; //設置定時初值
TF0=0; //清除TF0標志
TR0=1; //定時器0開始計時
}
voidinit_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,問題一般出在這里
B. 單片機定時器程序模擬問題
在主程序里除了初始化的那個函數外把剩下的語句寫到while(1){}裡面
不加死循環當然就只執行一次了