導航:首頁 > 操作系統 > 單片機求初值

單片機求初值

發布時間:2025-02-06 12:26:17

⑴ 51單片機串口通信定時器初值怎麼計算公式和計算原理是什麼

串口通信方式1和方式3,要用T1來控制波特率。

T1,使用定時方式2,其初始值,和晶振頻率、波特率、SMOD的關系式如下:
T1初值 = 256 - fosc * (SMOD + 1) / (384 * 波特率)

--我不明白波特率跟這個定時器的關系。麻煩你詳細一點!

這個關系,是由硬體決定的,只有搞微電子的,才能弄明白。
軟體人員,編程的時候,會用這個公式即可,也沒有必要弄明白這個。

基本上,也沒有幾個人,能夠弄明白集成電路內部,究竟是怎麼處理的。
其它的很多人,好像是很明白,其實都是在瞎編理由,包括寫書的那些人。

⑵ 單片機中,定時器如何初值計算

對於定時器T0,工作在方式2下,計算定時器初值需要以下步驟:
1、計算定時器計數頻率:定時器T0在方式2下,每個計數周期為12個晶振周期,因此計數頻率為6MHz / 12 = 500 kHz。
2、計算定時器初值:要實現0.5ms定時,需要定時器T0計數500次,因此初值為 65536 - 500 = 65036 (0xFC1C)。
對於定時器T1,由於題目中沒有給出需要實現的定時時間,無法直接計算出初值,但是可以選擇合適的工作方式和預分頻器來滿足定時要求。一般而言,定時器T1可選擇方式1、方式2、方式3和方式12來工作。其中,方式1和方式2適合生成固定的定時時間,方式3適合生成PWM信號,而方式12是一種混合模式,可以同時使用方式1和方式3的功能。
在選擇定時器T1的工作方式時,需要考慮定時器計數頻率、預分頻器的設置以及所需的定時時間等因素,綜合進行權衡和選擇。

⑶ 單片機中 定時器/計數器 的計數初值是怎麼計算得出的(計數和定時計算方式是否不同)--初學單片機

計數初值的計算:

定時或計數方式下計數初值如何確定:定時器選擇不同的工作方式,不同的操作模式其計數值均不相同。若設最大計數值為M,各操作模式下的M值為:

模式0:M=2^13=8192

模式1:M=2^16=65536

模式2:M=2^8=256

模式3:M=256,定時器T0分成2個獨立的8位計數器,所以THO、TLO的M均為256。

因為MCS-51的兩個定時器均為加1計數器,當初值到最大值(00H或0000H)時產生溢出,將TF位置1,可發出溢出中斷,因此計數器初值X的計算式為:X=M-計數值。

式中的M由操作模式確定,不同的操作模式計數器的長不相同,故M值也不相同。而式中的計數值與定時器的工作方式有關。

1、計數工作方式時

計數工作方式時,計數脈沖由外部引入,是對外部沖進行計數,因此計數值根據要求確定。其計數初值:X=M-計數值。

2、定時工作方式時

定時工作方式時,計數脈沖由內部供給,對機器周期進行計數,計數脈沖頻率fcont=fosc*1/12、計數周期T=1/fcont=12/fosc定時工作方式的計數初值X等於:

X=M-計數值=M-t/T=M-(fosc*t)/12

式中:fosc為振盪器的振盪頻率,t為要求定_的時間。

(3)單片機求初值擴展閱讀:

定時器工作方式的設定:

定時器有兩種工作方式:定時和計數。由TMOD的D6位和D2位決定,其中D6位決定T1的工作方式,D2位決定T0的工作方式。值為0時工作在定時方式,值為1時工作在計數方式。並且有四種操作模式:

1、模式0:13位計數器,TLi只用低5位。

2、模式1:16位計數器。

3、模式2:8位自動重裝計數器,THi的值在計數中不變, TLi 溢出時,THi中的值自動裝入TLi中。

4、模式3:T0分成2個獨立的8位計數器,T1停止計數。

⑷ 單片機如何計算初值

一般最直接的想法就是,指定一個計時值x,然後從0開始累加計數,計數到x表示時間到,可以處理事務了。這種處理方法,需要一個數值比較器,每計一次數,就比較一下。這對單片機或者說硬體電路來講,一個8位計數器就需要包含一個8位數值比較器,實在不夠簡便。

第二種想法,是指定一個計時值x,然後進行減計數,減計數到0表示時間到。這也要一個比較器,只不過是個0值比較器,硬體電路上比上一種要簡單一些,但減計數器還是不常用。我們知道累加器才是最簡便的硬體電路之一。

上面兩種方法,都是軟體實現的定時器的合理想法。那麼硬體電路實現定時最簡便的方法是什麼呢?

那就是用累加器來實現。比如一個8位的累加器,可以從0累加計數,計數到256時溢出,產生溢出信號,就可以觸發事務處理了。

要是我們只需要計數10次就夠了,則可以將計數初值定義為246。那樣,計數10次後就可以達到256,產生溢出信號了。

所以就有了(2^n-x)。n是計數器的位數;2^n就是最大計數值;x是計數初值。整個這段,表示我們需要的計時次數。

計數器每次計數的時間間隔是t,及計數周期。那麼總的計時時長m=計數周期×計數次數=t×(2^n-x),也就是m=(2^n-x)×t。

計數位數n由選用的單片機確定,通常等於8,12,16或32等等,即8位、12位等計數器。計數周期t由定時器基礎時鍾確定,可通過設置定時器時鍾源和選擇時鍾分頻數確定。這兩項靈活性不大,一般在程序初始化時就應設定。

初值x可以在應用時,根據定時需求進行修改確定。

協調好n,t和x三者的設定,就可以完美實現定時功能了。

⑸ 51單片機各種位數定時器初值計算方法

對12MHz ,1個機器周期 1us ,12/fosc = 1us


方式0是13位定時器,最大時間間隔 = 2^13 = 8.192ms

方式1是16位定時器,最大時間間隔 = 2^16 = 65.536ms

方式2是8位定時器,最大時間間隔 = 2^8 = 0.256ms =256 us

方式3 僅適用於T0,此時T0分成兩個8位計數器,T1停止計數

當選用定時器的方式1時,設機器周期為Tcy,定時器產生一次中斷的時間為t,那麼需要計數的個數N=t/Tcy,裝入THX和TLX中的數分別為:

THX = (2^16 - N)/256 TLX = (2^16 -N )%256(此處的X為定時器0或定時器1)

公式為:(2^y - X)*Tcy = t

Tosc= 1/ fosc

一個機器周期 = 12個時鍾周期 = 12/fosc

溢出速率 = 1 / 溢出時間
故:初值X = 2^y – t/Tcy

THX = 高八位
TLX = 低八位

註:

X:定時器初值

N:計數值

y:定時器工作方式

fosc:晶振頻率

Tcy:機器周期,Tosc:時鍾周期
Tcy = 1/Tosc

閱讀全文

與單片機求初值相關的資料

熱點內容
shell編程入門書籍 瀏覽:938
大連桶裝水溯源碼售價 瀏覽:302
php怎麼跳轉到電腦 瀏覽:413
如何在電腦上創建新網路連接伺服器 瀏覽:61
c語言編譯之後如何運行 瀏覽:566
mfc多線程編程視頻 瀏覽:410
c編譯的中文怎麼寫 瀏覽:91
單片機連接蜂鳴器電路 瀏覽:844
程序員買房前後對比照 瀏覽:988
cmdjava中文亂碼 瀏覽:947
窗口app哪個好 瀏覽:731
xzforandroid 瀏覽:577
程序員那麼可愛歌曲完整版 瀏覽:906
為什麼購買pdf 瀏覽:45
操作系統代碼編譯 瀏覽:483
程序員東北大學 瀏覽:426
編譯忽略空字元 瀏覽:119
多店鋪阿里雲伺服器教程 瀏覽:379
單片機求初值 瀏覽:422
安卓機如何在電腦備份圖片 瀏覽:927