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

單片機定時器使用

發布時間:2022-10-23 19:36:53

A. 單片機定時器設置步驟

搜狐網
晴 / -25°
新手入門!如何設置單片機定時器?

嵌入式資訊精選
2018-12-05
訂閱
在單片機的學習過程中,單片機定時器的合理設置和應用是非常關鍵的一步,也是剛開始接觸單片機知識的新人工程師們比較容易出錯誤的一個環節之一。在今天的文章中,我們為大家總結了單片機定時器應用過程中的兩大常見問題進行實時解析,希望能夠對各位新人工程師的學習提供一定幫助。
問題一:51單片機的T0、T1定時器四種工作方式各有什麼特點?
在單片機定時器的應用過程中,定時器在進行設置時會有四種不同的工作方式,合理選擇相應的工作方式可以幫助工程師快速完成及時設置。下面我們就來逐一講解一下這四種不同的計時方式。方式0是單片機計時器的第一種計時方式,這一方式13位計數模式。方式1則採用16位計數模式,方式2採用8位自動重裝入計數模式,這兩種技術模式也是目前在單片機應用過程中最常使用的及時方式。最後一種單片機定時器的計時方式是方式3,這一模式下只有T0有的雙8位計數模式。

B. 單片機 定時器使用

你是剛學習單片機嗎?
對於Ljmp和Ajmp
只是定址范圍稍有區別
前者為長轉移指令
後者是絕對轉移指令,後者范圍轉移范圍在同一個2K位元組空間以內,一般沒有太大的區別。程序寫的較短較密的用後一個就可以。
還有哦
你的程序中有幾個錯誤
T0的入口地址可是000Bh
堆棧指針是C51中已經定義好的專用指針,用於暫存一些有用變數中的內容
20次循環為14h
還有中斷返回返回到等待區就好,表示繼續執行同樣的程序,這樣才能循環1S的方波
建議你可以看看你的教材
上面應該都有介紹的。
《單片機原理及應用教程》
第2版
機械工業出版社
這本書是我學過的教材,我覺得挺實用的,你可以參考一下上面107頁的程序。
下面是我給你改過的程序
可以參考一下哦!
ORG
0000H
AJMP
MAIN
ORG
000BH
AJMP
PART1
ORG
0030H
MAIN:
MOV
TMOD,#01H
MOV
TH0,#3CH
MOV
TL0,#0B0H
MOV
R7,#0AH
MOV
IE,#82H;這個和你的按位啟動是一樣效果
SETB
TR0
SJMP
$
PART1:
MOV
TH0,#3CH
MOV
TL0,#0B0H
DJNZ
R7,FANHUI
CPL
P1.0
MOV
R7,#0AH
FANHUI:
RETI
end
其實堆棧指針在51系列中已經定義好了一段區域,最多用於子程序中,例如你在主程序中用了寄存器R1,而且其值在你主程序的其他位置還有用,而且你需要用到一個跳轉指令在子程序中進行操作,怕在子程序中也要用到R1,那麼先用堆棧將R1的值暫存起來,等完成子程序得時候再退棧,這樣原來的R1中的值將不會被破壞。這里還要注意哦,堆棧是順序操作的,它是後進先出原則哦,這個你可以參考一下C語言。

C. 51單片機定時器的使用

51單片機定時器的GATE=1時,用外部INT0啟動定時器,當INT0=0時,
定時器T1會停止計數,這個時候讀取T1的值是可以計算出高電平的寬度的。

D. 單片機定時器原理及使用

這里通俗的說下C51單片機的定時器的工作原理,C51單片機的定時器是由計數器構成的,所計量的時間是通過計算固定周期的脈沖個數的累計獲得的,通過設置定時器的工作模式,可以由16位(高、低兩個8位)寄存器模式或其他位數的寄存器模式來計數,以16位計數模式來討論,那就是無論那種工作模式只有當計數用的寄存器的各個位全部置1,也就是滿值後下一個計數脈沖進入時使寄存器產生溢出,而這個溢出才會使計數產生中斷從而完成一次定時控制,因此,如果我們想產生某個時長的定時,那麼我需要將這個時長根據單片機運行的時鍾頻率、周期等等相關因素換算成需要計數的個數,進而在這個滿值的16位寄存器中扣除需要計數的個數,啟動運行後當計數值補充滿了寄存器就完成了一次計時,而一個16位寄存器滿值為2的16次方=65536,假如一個計數脈沖的周期為1us,那麼滿值後就會耗時65536us,假如我們需要計時36us,那麼我們只需要為寄存器賦值65500就可以了,這里需要注意的是,因為C51單片機的寄存器是8位的,我們需要將這個65500拆分出高8位數據裝入THx中計算方法為THx=65500/256,再計算出低8位數據裝入TLx中,THx=65500%256。

E. 單片機定時器 計數器的工作原理,及如何實現定時 計數功能

原理: 16位的定時器/計數器實質上就是一個加1計數器,其控制電路受軟體控制、切換。 當定時器/計數器為定時工作方式時,計數器的加1信號由振盪器的12分頻信號產生,即每過一個機器周期,計數器加1,直至計滿溢出為止。

顯然,定時器的定時時間與系統的振盪頻率有關。因一個機器周期等於12個振盪周期,所以計數頻率fcount=1/12osc。

兩個位元組最大數據為65536(十進制),或者0FFFFH(十六進制)

高位元組為TH0=(65536-X)/256,就是除以256後的整數部分;

低位元組為TL0=(65536-X)%256,減去高位元組後餘下的部分;

定時/計數器

定時/計數器T0和T1分別是由兩個8位的專用寄存器組成,即定時/計數器T0由TH0和TL0組成,T1由TH1和TL1組成。此外,其內部還有2個8位的特殊功能寄存器TMOD和TCON,TMOD負責控制和確定T0和T1的功能和工作模式,TCON用來控制T0和T1啟動或停止計數,同時包含定時/計數器的狀態。

以上內容參考:網路-定時器中斷

F. 在單片機中定時器是用來干什麼的

它的主要功能是在發生軟體故障時,通過使器件復位(如果軟體未將器件清零)將單片機復位。也可以用於將器件從休眠或空閑模式喚醒,看門狗定時器對微控制器提供了獨立的保護系統。

當系統出現故障時,在可選的超時周期之後,看門狗將以RESET信號作出響應,像x25045就可選超時周期為1.4秒、600毫秒、200毫秒三種。當程序死機時,x25045就會使單片機復位。



(6)單片機定時器使用擴展閱讀

定時/計數器T0和T1分別是由兩個8位的專用寄存器組成,即定時/計數器T0由TH0和TL0組成,T1由TH1和TL1組成。

此外,其內部還有2個8位的特殊功能寄存器TMOD和TCON,TMOD負責控制和確定T0和T1的功能和工作模式,TCON用來控制T0和T1啟動或停止計數,同時包含定時/計數器的狀態。

TF1:定時器1溢出標志。定時/計數器溢出時由硬體置位。中斷處理時由硬體清除。或用軟體清除。

TF0:定時器0溢出標志。定時/計數器溢出時由硬體置位。中斷處理時由硬體清除,或用軟體清除。

G. 怎樣使用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的中斷入口程序

H. 51單片機定時器使用

51單片機定時器GATE=1時用外部INT0啟動定時器當INT0=0時
定時器T1會停止計數時候讀取T1值計算出高電平寬度

閱讀全文

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

熱點內容
伺服器未響應怎麼解決手機 瀏覽:184
程序員回到古代 瀏覽:402
軟體合並一個文件夾 瀏覽:657
設置Android程序圖標 瀏覽:365
app哪個局 瀏覽:904
源碼編輯器中怎麼保存 瀏覽:463
python背景圖片代碼 瀏覽:448
3D卡片下載哪個App 瀏覽:532
如何用伺服器登錄微信 瀏覽:841
html5移動開發pdf下載 瀏覽:525
如何查看png圖片是否加密 瀏覽:821
php遞歸例子 瀏覽:190
伺服器參數配置未響應是什麼意思 瀏覽:603
pythonchardet模塊 瀏覽:751
添加gm命令 瀏覽:662
rsa加密碼亂碼 瀏覽:757
網站伺服器需要租什麼 瀏覽:999
c語言常用排序演算法 瀏覽:824
pythonhtml文件上傳 瀏覽:525
dosat命令執行exe 瀏覽:95