51单片机mysql_51单片机的定时器
今天想嘗試使用串口通信來控制舵機旋轉的時候,由于同時用到了定時器T0和T1(用來設定波特率)。程序有點問題,運行不暢,所以現在想通過寫篇文章重新來梳理對51單片機這兩個定時器的理解。
STC89C51系列單片機有兩個定時器:定時器T0、定時器T1
一、首先了解到51單片機的常用晶振是12MHz的,內部一般是12分頻的,也就是12T。所以每計數一次需要1us的時間
二、定時器的工作模式有四種,模式0,1,2的工作模式對T0 、T1都是相同的,但是模式3只有T0才有:
模式0:13位計時器,有TL0的低5位和TH0的全8位構成一個13位的計時器。13位計時器計數溢出后會自動清零,同時把中斷標記TF0置1。如果需要重新使用,需要重新去更新時間常數,并定時器的的中斷標志位置0.
模式1: 16位計時器,和模式0幾乎完全相同,但是因為是16位(TL0有8位 、TH0有8位),所以計時范圍大大增加(0~65535),一共是2的16次方。
模式2: 8位自動重載模式。TL0計時結束后,單片機會自動把TH0的重載到TL0中,不需要像前兩種模式那樣手動重載。
模式3:只有計時器T0才有模式3,計時器T1是沒有模式3的。模式3的主要方式是把定時器T0的TL0和TH0分開看作是兩個獨立的8位定時器。兩個定時器需要手動重載
三、定時器的控制寄存器
8051單片機有兩個8位的特殊功能寄存器來控制定時器的工作狀態;分別是TMOD、TCON
1、工作模式控制寄存器TMOD
這個是一個8位的寄存器,0-3位控制的是定時器T0; 4-7位控制的是定時器T1。
GATE是門控位,用來設定P3^2或P3^3的電壓對定時器的計數是夠影響的。GATE=0時,表示計數器計數與否與兩端口電壓狀態無關;GATA=1時,計數器是否計數要參考引腳的狀態,即P3.2為高時T0才計數,P3.3為高時T1才計數。一般都是設置為0的。
C/T位:計數/計時的選擇位。C/T = 0時,定時模式; C/T = 1時,計數模式。
M1M0兩位決定了定時器的工作模式:
2、工作狀態控制寄存器TCON
總結
以上是生活随笔為你收集整理的51单片机mysql_51单片机的定时器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 西门子smartclient怎么用_西门
- 下一篇: mysql 内存表使用教程_MySQL的