用c語言實現51微控制器的可調PWN輸出實驗,要求用按鍵s20 s23分別實現不同的佔空比,s20對

2021-04-21 07:14:54 字數 1863 閱讀 6097

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...