如何計算,等下再說,先費話一下.
T0定時器是十六位的,所以計滿是2^16,也就是65536,計滿後就溢出.只有溢出,定時器才會運行定時中斷程序,這個記住哦,等下用.
比如,你的晶振是12M的,那麼一個指令周期就是1us吧,所以呢最大隻能定時65.536ms.
打個比方,要定時50ms,50ms也就是50000,如果把50000直接給定時器的話,它只會定時(65536-50000)us就運行定時中斷程序,定時器只有溢出才運行定時中斷程序,所以,要定時50ms,就先65536減50000後,再把減後的結果高八位給TH0,低八位給TL0.
❷ 單片機中TH0和TL0是什麼意思
TH 0和TL0都是單片機的8位定時器。TH 0中的H即為HIGH縮寫,它是表示定時器高八位。TL 0中L即為LOW縮寫,它所代表為低八位。
單片機定時器的工作就是,當低八位定時器滿溢後,向高八位進行進位。兩個八位的TH 0和TL 0構成了單片機的16為定時/計數器。
8051系列單片機有兩個定時器:T0和T1,分別稱為定時器和定時器T1,這兩個定時器都是16位的定時器/計數器;8052系列單片機增加了第三個定時器/計數器T2;它們都有定時或事件計數功能,常用於時間控制、延時、對外部時間計數和檢測等場合。
8051單片機的兩個定時器T0和T1分別都由兩個特殊功能寄存器組成;T0由特殊功能寄存器TH0和TL0構成,而T1則是由TH1和TL1構成。
作為定時器使用時,定時器計數8051單片機片內振盪器輸出經過12分頻後的脈沖個數,即:每個機器周期使定時器T0/T1的寄存器值自動累加1,直到溢出,溢出後繼續從0開始循環計數;所以,定時器的解析度是時鍾振盪頻率的1/12。
作為計數器使用時,通過引腳T0(P3.4)或T1(P3.5)對外部脈沖信號進行計數,當輸入的外部脈沖信號發生從1到0的負跳變時,計數器的值就自動加1;計數器的最高頻率一般是時鍾振盪頻率的1/24。
由此可知,不論是定時器還是計數器工作方式,定時器T0和T1均不佔用CPU的時間,除非定時器/計數器T0和T1溢出,才可能引起CPU中斷,轉而去執行中斷處理程序;所以說,定時器/計數器是單片機中效率高而工作靈活的部件。
❸ 單片機的計時器TH和TL怎麼計時,如每秒運行一次中斷程序
溢出的時候進入中斷,也就是從0xFFFF到0x0000的時候,標准51的晶振頻率除以12就是計時器加1的頻率,如果你用的是12MHz的晶體,那就是每隔1us你的計時器自動加1,所以最大能計時的時間范圍就是從0x0000到0xFFFF,也就是從0到65535,65.5ms左右,你要每秒定時,或者你用頻率很低的晶振,或者你要設置一個變數來計數,把定時器設置到50ms一中斷,然後在中斷中給變數加1,等變數到20,就證明到1秒了,再執行你的程序。