1樓:做而論道
參考。
如何用51微控制器輸出一個佔空比可調的方波: 30
2樓:匿名使用者
估計你這個是想使用微控制器來驅動dc-dc穩壓電源吧。
你買stc12系列的微控制器,自帶pwm及adc功能,然後通過輸出電壓及電流值調整頻率輸出,控制mos管驅動高頻變壓器就可以完成了。
3樓:匿名使用者
首先選bai擇一個i/o設定為du輸出模式,這個就是zhi用於輸出方波的硬dao件介面。
頻率回可調,可以根據你要想要答的頻率,換算成中斷週期,實質上是一個計數器。建議弄一個300k的中斷服務。那麼可以這樣整:
如果要30k的頻率,那麼每10次中斷視為一次完整的週期,執行一次你要的處理。
佔空比問題,比如30%的佔空比,那麼你前三次中斷都把狀態設定為1,後面七次都設定為0狀態。照這個思路就實現你的佔空比了。當然這些中斷次數的依據需要你自己對佔空比的要求進行換算得到。
在中斷服務程式中去操作i/o口狀態,當然你還可以在該程式結束的時候或者開始的時候,再次修改中斷時間從而調整輸出頻率。
4樓:
51自身沒有pwm波發生器,需要用定時器模擬
51微控制器測量pwm波的佔空比的c語言程式
5樓:大維
/****************************pwm 從微控制器的p3.2輸入
/***************************/#include
typedef unsigned char uint8;
typedef unsigned int uint16; //資料型別重定義
uint8 t;
bit get;
long pwm_all,pwm_h;
void init()
void main()}}
void ex0() interrupt 0pwm_h = th0;
pwm_h = (pwm_h << 8) + tl0;
th0 = tl0 = 0;}
mcs-51微控制器時鐘為12mhz,利用定時器t0程式設計令p1.0引腳輸出2ms的矩形波程式,要求佔空比係數為1:2。 5
6樓:匿名使用者
2ms週期方
bai波du,1:2佔空比
zhi的話得不dao
到精回確值答
。org 0000h
ljmp main
org 000bh
ljmp t0isr
org 0030h
main:
mov tmod,#02h
mov th0,#246
mov tl0,#246
setb tr0
setb et0
setb ea
setb p1.0
clr a
sjmp $
t0isr:
inc a
cjne a,#67,t01
t01:
jc t02
clr p1.0
cjne a,#200,t03
t03:
jc t0e
clr a
t0e:
reti
t02:
setb p1.0
retiend
7樓:匿名使用者
2ms是高電平時間還是低電平時間的
微控制器c語言延時程式,51微控制器C語言中delay函式是怎麼定義和使用的?
用定時器 可以衍生出定時中斷和標記迴圈查詢法 還有直接用軟體語句硬性延時 這個需要實際測試和調校過才比較準 但不管是哪一種,其最終 還是要依據微控制器工作頻率,具體的需要解釋太多,你還是看看對應微控制器的datasheet的各模組說明吧 可以用for迴圈延時 但是精度不夠 最好用定時器中斷 比如用定...
51微控制器c語言裡nop函式怎麼用
在單片bai機c語言中直接調du用庫函式即可,具體如下 zhi include 宣告瞭void nop void nop 產生一條 daonop指令。該函式的內作用 對於延時容很短的,要求在us級的,採用 nop 函式,這個函式相當彙編nop指令,延時幾微秒。nop指令為單週期指令,可由晶振頻率算出...
能不能用c語言寫微控制器at89c51實現秒錶的設計,有pro
首先肯定能實現,用內部計數器就可以,可以幫助你 你好!是 實現效果嗎?還是用的開發板?求一份基於微控制器at89c51計算器的proteus 設計的c語言源程式 和 電路圖最好原創 你弄好了沒,我要答辯了還沒弄好 574942051 qq.com求一份兒,謝謝了,畢個業不容易啊 我有一個基於80c5...