導航:首頁 > 操作系統 > 單片機定時器如何使用

單片機定時器如何使用

發布時間:2025-06-06 15:58:02

A. 怎樣使用51單片機的定時器

51單片機定時器的使用

51單片機定時器/計時器的使用
步驟:
1、 打開中斷允許位:
對IE寄存器進行控制,IE寄存器各位的信息如下圖所示:
EA: 為0時關所有中斷;為1時開所有中斷
ET2:為0時關T2中斷;為1時開T2中斷,只有8032、8052、8752才有此中斷 ES: 為0時關串口中斷;為1時開串口中斷 ET1:為0時關T1中斷;為1時開T1中斷 EX1:為0時關1時開 ET0:為0時關T0中斷;為1時開T0中斷 EX0:為0時關1時開
2、 選擇定時器/計時器的工作方式:
定時器TMOD格式

CPU在每個機器周期內對T0/T1檢測一次,但只有在前一次檢測為

1和後一次檢測為0時才會使計數器加1。因此,計數器不是由外部時鍾負邊沿觸發,而是在兩次檢測到負跳變存在時才進行計數的。由於兩次檢測需要24個時鍾脈沖,故T0/T1線上輸入的0或1的持續時間不能少於一個機器周期。通常,T0或T1輸入線上的計數脈沖頻率總小於100kHz。
方式0:定時器/計時器按13位加1計數,這13位由TH中的高8位和TL中的低5位組成,其中TL中的高3位棄之不用(與MCS-48兼容)。

13位計數器按加1計數器計數,計滿為0時能自動向CPU發出溢出中斷請求,但要它再次計數,CPU必須在其中斷服務程序中為它重裝初值。
方式1:16位加1計數器,由TH和TL組成,在方式1的工作情況和方式0的相同,只是計數器值是方式0的8倍。

1
1/3
方式2:計數器被拆成一個8位寄存器TH和一個8位計數器TL,CPU對它們初始化時必須送相同的定時初值。當計數器啟動後,TL按8位加1計數,當它計滿回零時,一方面向CPU發送溢出中斷請求,另一方面從TH中重新獲得初值並啟動計數。

方式3:T0和T1工作方式不同,TH0和TL0按兩個獨立的8位計數器工作,T1隻能按不需要中斷的方式2工作。 在方式3下的TH0和TL0是有區別的:TL0可以設定為定時器/計時器或計數器模式工作,仍由TR0控制,並採用TF0作為溢出中斷標志;TH0隻能按定時器/計時器模式工作,它借用TR1和TF1來控制並存放溢出中斷標志。因此,T1就沒有控制位可以用了,故TL1在計滿回零時不會產生溢出中斷請求的。 顯然,T0和T1設定為方式3實際上就相當於設定了3個8位計數器同時工作,其中TH0和TL0為兩個由軟體重裝的8位計數器,TH1和TL1為自動重裝的8位計數器,但無溢出中斷請求產生。由於TL1工作於無中斷請求狀態,故用它來作為串口可變波特

3、 為計數器賦值
計數器初值計算
TC=M−C
TC:計數器初值,M:計數器模值(2k),C:把計數器計滿的計數值 定時器初值計算
T=(M−TC)T計數


TC=M−T/𝑇計數
M:模值,T計數:單片機時鍾周期TCLK(ΦCLK的倒數)的12倍;TC為定時器的定時初值,T為欲定時的時間。
TC=M−T×𝛷𝐶𝐿𝐾/12
M:模值,ΦCLK:單片機時鍾周期ΦCLK;TC為定時器的定時初值,T為欲定時的時間。 例如:單片機主脈沖頻率ΦCLK為12MHz,最大定時時間為: 方式0時 TMAX = 213×1us = 8.192ms 方式1時 TMAX = 216×1us = 65.536ms 方式2和方式3 TMAX = 28×1us = 0.256ms
4TR0:為0時,停T0計數;為1時,啟T0計數

2
2/3

TF0:為0時,無T0中斷(硬體復位);為1時,有T0溢出中斷 TR1:為0時,停T1計數;為1時,啟T1計數 TF1:為0時,無T1中斷(硬體復位);為1時,有T1溢出中斷 IE1:為0時,硬體復位;為1時 IT1:為0時,INT1電平觸發(軟體復位);為1時,INT1負邊沿觸發 IE0:為0時,硬體復位;為1時 IT0:為0時,INT0電平觸發(軟體復位);INT0負邊沿觸發
5

在C51的C語言中使用interrupt x來指定中斷入口地址,x為中斷號,例T0中斷: void Time0_Int() interrupt 1 //定時器T0的中斷入口程序

B. 51單片機如何用一個定時器當多個延時電路用, 就是按下開關一,燈泡亮三秒。 按下開關二,燈泡亮五秒。

使用單片機的定時器來實現不同的延時效果,是一個常見的技術應用。具體來說,可以通過配置定時器產生一個秒周期的時間基準,然後利用計數器來累計時間。這個計數器可以設置為從1開始計數到任意數值,比如10000或者1000000,也可以實現循環計數,即計數到100後重新從1開始。在按下開關一的時候,我們記錄下當前的計數器值作為K1,同時點亮燈泡;當計數器值達到K1+3時,燈泡會熄滅。

同樣的方法可以應用於開關二的延時控制。按下開關二時,同樣記錄下當前的計數器值作為K2,然後點亮燈泡;當計數器值達到K2+5時,燈泡會熄滅。這樣,通過調整K1和K2的值,可以實現不同延時時間的需求。

值得注意的是,這種方法的關鍵在於定時器的配置和計數器的使用。首先,需要設置定時器的定時周期,使其能夠產生秒級別的基準時間。然後,通過軟體編程的方式,實現對計數器的初始化和計數操作。當計數器達到預設值時,觸發相應的輸出控制邏輯,實現燈泡的點亮和熄滅。

這種實現方式不僅靈活,而且能夠有效地利用單片機的資源。通過調整定時器的配置和計數器的數值,可以輕松實現多種延時效果,滿足不同的應用需求。這對於開發需要多種延時控制功能的項目來說,是一種非常實用的技術手段。

總之,利用單片機的定時器來實現延時控制是一種高效且靈活的方法。通過合理配置定時器和計數器,可以方便地實現不同延時時間的需求,滿足各種應用場景的要求。

C. C51單片機定時器1以方式1定時1秒如何設置

1、先打開我們熟悉的單片機c51編程軟體——keil,先把主方法寫好。

閱讀全文

與單片機定時器如何使用相關的資料

熱點內容
優信二手車解壓後過戶 瀏覽:53
Windows常用c編譯器 瀏覽:771
關於改善國家網路安全的行政命令 瀏覽:825
安卓如何下載網易荒野pc服 瀏覽:646
javainetaddress 瀏覽:95
蘋果4s固件下載完了怎麼解壓 瀏覽:994
命令zpa 瀏覽:277
python編譯器小程序 瀏覽:936
在app上看視頻怎麼光線調暗 瀏覽:532
可以中文解壓的解壓軟體 瀏覽:584
安卓卸載組件應用怎麼安裝 瀏覽:904
使用面向對象編程的方式 瀏覽:331
程序員項目經理的年終總結範文 瀏覽:920
內衣的加密設計用來幹嘛的 瀏覽:424
淮安數據加密 瀏覽:287
魔高一丈指標源碼 瀏覽:974
松下php研究所 瀏覽:162
c回調java 瀏覽:392
夢幻端游長安地圖互通源碼 瀏覽:738
電腦本地文件如何上傳伺服器 瀏覽:305