導航:首頁 > 操作系統 > 51單片機pwm波

51單片機pwm波

發布時間:2023-12-11 19:43:52

『壹』 如何利用51單片機輸出PWM波

1、用定時器+編程
2、51系列單片機無PWM輸出功能,可以採用定時器配合軟體的方法輸出。對精度要求不高的場合,非常實用
3、思路:定義一個靜態變數,程序每次進入定時器的中斷函數中時判斷是否滿足你說要求的占空比,沒達到就繼續對變數值進行累加直到滿足條件後使輸出PWM波的那個引腳電平反轉

4、具體詳見http://wenku..com/link?url=u82FHU5L--ZvMAabY2JKxCEajqxn_f5GPMl5GQRgrnji3hAGRBq11e

『貳』 如何利用51單片機輸出PWM波

用兩個定時器的方法是用定時器T0來控制頻率,定時器T1來控制占空比。大致的的編程思路是這樣的:T0定時器中斷讓一個I0口輸出高電平,在這個定時器T0的中斷當中起動定時器T1,而這個T1是讓IO口輸出低電平,這樣改變定時器T0的初值就可以改變頻率,改變定時器T1的初值就可以改變占空比。
用一個定時器時(如定時器T0),首先你要確定PWM的周期T和占空比D,確定了這些以後,你可以用定時器產生一個時間基準t,比如定時器溢出n次的時間是PWM的高電平的時間,則D*T=n*t,類似的可以求出PWM低電平時間需要多少個時間基準n'。
因為這里我們是產生周期為1ms(1000HZ)的PWM,所以可設置中斷的時間基準為0.01ms,,然後中斷100次即為1ms。在中斷子程序內,可設置一個變數如time,在中斷子程序內,有三條重要的語句:1、當time>=100時,time清零(此語句保證頻率為1000HZ),2、當time>n時(n應該在0-100之間變化開),讓單片相應的I/O口輸出高電平,當time<n時,讓單片相應的I/O口輸出低電平,此時占空比就為%n。
參考資料:http://wenku..com/link?url=-Q74XVCQtStw6zJYtmlveX_O4_p3CkaHS-KIbWcgOIwQVMGTOGUi

『叄』 用51單片機同時實現四路PWM波,(C語言)

定個時間20ms周期的定時器,然後在定時器到達那些點的時候,讓自己設的那些變數依次變化。 再根據自己的變數,付給輸出埠就可以了。 看著像舵機的

看了你追問的,原來是四路每一路都產生變化的波形。那個也好辦。可以通過計算,把這幾個波形統一起來成一個周期,比如開始0.5ms到了,讓定的值取反,再加19.5再取反,再加1.3Ms再取反,再加18.7ms再取反...然後一直這樣把幾個都寫完。
還有種方法,來改變第一個pwm的設定值。比如放數組里一共5個設定值,分別代表你設定的高電平時間,依次替換第一個定時器裡面的中端時間即可。
當然,前兩種都差不多,還有一種方法供你擴展:就是用兩個定時器,然後按照時間去匹配修改。當然,51單片機那精度就不說了,不太確信可以達標,一個定時器進中斷了,另一個就要停一下。。
BTW,個人感覺51的單片機沒有很好的pwm模塊,這樣寫了Pwm程序,別的就幹不了了。建議用用帶epwm模塊的mcu,直接調用epwm和epwm中斷,節省cpu資源,可以多寫很多程序。

閱讀全文

與51單片機pwm波相關的資料

熱點內容
android仿ios時間選擇器 瀏覽:378
見識pdf 瀏覽:81
男孩子慰菊手冊pdf 瀏覽:532
注冊表啟動項命令 瀏覽:109
89c51單片機定時器 瀏覽:687
一般不適合做程序員的適合做啥 瀏覽:923
點在多邊形內演算法 瀏覽:494
程序員下班急忙回家 瀏覽:359
安慶php全套源碼交友類型網站源碼 瀏覽:92
浪潮伺服器公司地址 瀏覽:733
密約聊天交友app怎麼賺錢 瀏覽:280
滴滴java 瀏覽:109
phpexpires 瀏覽:218
matlab編程用什麼語言 瀏覽:70
php查找字元是否存在 瀏覽:701
可編程函數發生器 瀏覽:881
單片機正極接地視頻 瀏覽:67
利用python爬火車票 瀏覽:375
androidaidl如何工作 瀏覽:855
第三胸椎壓縮骨折什麼症狀 瀏覽:506