tmod=0x01;
th0=(65536-50000)/256;
tl0=(65536-50000)%6;
ea=1;
et0=1;
tr0=1;
void timer0() interrupt 1
ea=1;//開總中斷允許
et0=1;//開定時器0允許
tmod=0x01;//定時器選擇軟體啟動,工作方式為1
th0=(65536-50000)/256;
tl0=(65536-50000)%6;//給定時器賦初值,定時
50ms
tr0=1;//啟動定時器0
th0屬於微控制器特殊功能暫存器裡邊的乙個,具體的一般是用來設定定時器0高八位的時間初值
tl0屬於微控制器特殊功能暫存器裡邊的乙個,具體的一般是用來設定定時器0低八位的時間初值
當定時器計數值滿65536
的時候就觸發
隨著微控制器系統中的晶振hz的變化而精確度也不斷變化
定時器中斷
系統初始化的時候在預設的系統初始化函式 systeminit 函式裡面已經初始化 apb1 的時鐘為 2 分頻,所以 apb1 的時鐘為 36m。當 apb1 的時鐘分頻數為 1 的時候,tim2 7 的時鐘為 apb1 的時鐘,而如果 apb1 的時鐘分頻數不為 1,那麼 tim2 7 的時鐘頻率...
定時器 中斷
1 實現電視劇集中的10s定時炸彈功能 炸彈炸了用蜂鳴器模擬 include unsigned char code smgduan 17 unsigned int ms,sec 10,s sbit p1 0 p1 0 void delay unsigned int n void isr timer0...
定時器中斷
stc89c52rc的微控制器自帶了三個定時器,t0,t1,t2。在sfr特殊功能暫存器中,給每個定時器都分配了兩個8bit的空間用於計數。也就是最多計數2的10次方。當這兩個八位的計數空間計數滿 也就是變為11111111 11111111 後就會觸發定時器中斷,執行相應中斷觸發後設定執行的 在s...