C51单片机T0/T1计数器举例
1 定時/計數器的主要特點
2 定時/計數器T0、T1的結構及工作原理
定時/計數器 T0 、T1的結構如圖1所示,它由加法計數器、方式寄存器 TMOD 、控制寄存器 TCON 等組成。
定時/計數器的核心是16位加法計數器,在圖中用特殊功能寄存器TH0、TL0及TH1、TL1表示。TH0、 TL0 是定時/計數器 T0 加法計數器的高8位和低8位。TH1、 TLI 是定時/計數器T1加法計數器的高8位和低8位。方式寄存器 TMOD 用于設定定時/計數器 T0 和T1的工作方式,控制寄存器 TCON 用于對定時/計數器的啟動、停止進行控制。
當定時/計數器用于定時時,加法計數器對內部機器周期 Tcy 進行計數。由于機器周期時間是定值,因此對 Tcy 的計數就是定時,如 Tcy = 1us ,計數100,定時100us。當定時/計數器用于計數時,加法計數器對單片機芯片引腳T0(P3.4)或T1(P3.5)上的輸入脈沖進行計數。每來一個輸入脈沖,加法計數器加1。當由全1再加1變成全0時產生溢出,使溢出位 TF0 或TF1置位,如中斷允許,則向 CPU 提出定時/計數中斷;如中斷不允許,則只有通過查詢方式使用溢出位。
第一,由于它是加法計數器,每來一個計數脈沖,加法器中的內容加1個單位,當由全1加到全0時計滿溢出。因而,如果要計 N 個單位,則首先應向計數器置初值為 X ,且有:
初值 X =最大計數值(滿值) M ﹣計數值 N
在不同的計數方式下,最大計數值(滿值)不一樣。一般來說,當定時/計數器工作于 R 位計數方式時,它的最大計數值(滿值)為2的 R 次冪。
第二,當定時/計數器工作于計數方式時,對芯片引腳 T0(P3.4)或T1(P3.5)上的輸入脈沖計數。計數過程如下:在每一個機器周期的S5P2時刻對T0(P3.4)或T1(P3.5)上的信號采樣一次,如果上一個機器周期采樣到高電平,下一個機器周期采樣到低電平,則計數器在下一個機器周期的S3P2時刻加1計數一次。因而需要兩個機器周期才能識別一個計數脈沖,所以外部計數脈沖的頻率應小于振蕩頻率的1/24。
3 定時/計數器的方式和控制寄存器
方式寄存器 TMOD 用于設定定時/計數器T0和T1的工作方式。它的字節地址為 (89H)。
其中各二進制位的含義說明如下 。
M1、M0:工作方式選擇位,用于對 T0 的四種工作方式、T1的三種工作方式進行選擇,選擇情況如表:
C / T :定時或計數方式選擇位。當C/T=1時工作于計數方式;當C/T=0時工作于定時方式 。
GATE :門控位,用于控制定時/計數器的啟動是否受外部中斷請求信號的影響。如果 GATE =0,定時/計數器的啟動與外部中斷請求信號引腳INT0(P3.2)和INT1(P3.3)無關。如果 GATE =1,定時/計數器 T0 的啟動還受芯片外部中斷請求信號引腳 INT0 (P3.2)的控制,定時/計數器 TI 的啟動還受芯片外部中斷請求信號引腳INT1(P3.3)的控制,只有當外部中斷請求信號引腳 INT0(P3.2)或INT1(P3.3)為高電平時才開始啟動計數;利用 GATE 的這個特點可以測量加在 INT0 (P3.2)或INT1(P3.3)引腳上正脈沖的寬度,在一般情況下 GATE =0。
4 定時/計數器的控制寄存器TCON
控制寄存器 TCON 用于控制定時/計數器的啟動與溢出,它的字節地址為88H,可以進行位尋址。
其中各二進制位的含義說明如下。
TFl :定時/計數器T1的溢出標志位。當定時/計數器T1計滿時,由硬件使它置位,如中斷允許則觸發T1中斷。進入中斷處理后由內部硬件電路自動清除
TR1:定時/計數器 TI 的啟動位。可由軟件置位或清零,當TR1=1時啟動;TR1=0時停止。
TF0 :定時/計數器 T0 的溢出標志位,當定時/計數器 T0 計滿時,由硬件使它置位,如中斷允許則觸發T0 中斷。進人中斷處理后由內部硬件電路自動清除。
TR0 :定時/計數器 T0 的啟動位。可由軟件置位或清零,當TR0=1時啟動; TR0=0 時停止。
TCON 的低4位是用于外中斷控制的
5 實例分析
1、 設置一個燈每秒閃爍一次;
2 、設計流水燈,每秒移動一位;
3、 設計一個開關,通過查詢方式讀入開關狀態,控制流水燈移動的方向。
示波器得知,led燈每隔一秒閃爍一次。
定時器
總結
以上是生活随笔為你收集整理的C51单片机T0/T1计数器举例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何清除高度坍塌
- 下一篇: 蓝桥杯day7——DFSBFS