高手幫注釋下這一條微控制器輸出PWM訊號程式,謝謝

時間 2022-06-26 08:00:04

1樓:匿名使用者

哈哈,在作弊呢!把微控制器那本書,看5遍!你肯定能搞清楚!

我用微控制器設計了乙個pwm訊號,程式如下。請高手之處錯誤。急用,謝謝謝謝。。。。。。。。。。。。

2樓:匿名使用者

首先你的主函式中沒有while()迴圈來執行捕捉按鍵,當程式執行完了,就結束了,按鍵就執行一次捕捉,根本沒有用,你的ji永遠是50,占空比始終一定,無法調速.

2就你這定時就有問題50us要用方式2,並且進入中斷先關定時器,不然在執行賦值時,需要時間的,這時定時器還在走,會有很大誤差

while(1)

else if(key1==1&j<100)}

3樓:匿名使用者

沒有詳細看程式,在tr0=1,tr1=1 之前各加一條 et0=1,et1=1,最後再加一條ea=1,我感覺你程式時間中斷根本沒有執行

4樓:匿名使用者

問題補充:謝謝了大哥,我會追分感謝 #include //標頭檔案他的左右只是1ms響應乙個中斷,然後計數。 /***/ #include ,

stc微控制器輸出pwm訊號,頻率要25khz,請大神指教,怎麼實現,或者直接給我乙個程式,謝謝!

5樓:匿名使用者

void pwm_init (void)

實際上要產生低頻率的pwm波,不用其硬體pwm功能完全可以用定時器中斷方式即可實現

讓定時器 200us中斷一次(中斷不算頻繁呀) ,設一變數a,每次中斷a加1,100次就是20ms,,另設一變數b,數值在1-100之間,每次中斷比較a和 b的大小,如果a

問一下微控制器輸出pwm波的問題,謝謝 20

6樓:義採

微控制器後面加mos管,如果有圖更好,第二個有實物圖嗎?

怎樣實現乙個pwm訊號分成15路輸出?

7樓:匿名使用者

是頻率和相位相同的15路輸出嗎?如果是矩形波,用這乙個pwm訊號驅動15路緩衝器或反相器即可(緩衝器和反相器的輸入阻抗通常極高,完全可以用一路訊號同時驅動很多路),如果是非矩形波,改用15路運放搭成跟隨器或同相放大器電路即可。

8樓:

可以通過15個運放電壓跟隨後,完成隔離

stc微控制器產生pwm,這有乙個程式,有人能詳細解釋下它怎麼產生pwm波嗎,能逐句詳解嗎

9樓:匿名使用者

哥們,這個已經很詳細了;

大概說說吧,pwm[54]是定義的一組pwm脈寬輸出陣列,pwm脈寬輸出是0-255;0的時候脈寬輸出最大,255的時候脈寬輸出最小;

然後那個初始化pca,初始化定時器0就不說了,你自己下乙個手冊看下就明白;

然後是中斷,每中斷一次index加1,然後判斷index是不是等於54,意思就是pwm[54]整個陣列裡面的pwm是不是都送了一次ccap暫存器;如果都陣列都送了一次,將index置零,從頭開始送;標誌位取反,如果標誌位zf=1,讓p14輸出pwm,p13關閉;,如果zf=0,讓p13輸出pwm,p14關閉;if(zf==0)後面的語句就是讓pwm[54]中的每乙個數都送ccap暫存器一次;

其實按這個程式注釋的話,他本意是pwm波形從小變大p14輸出,pwm波形有大變小p13輸出;但是這個程式的實際效果是p14由小變大再由大變小。然後p14關閉,p13由小變大再由大變小

如此迴圈;

你最關心的pwm怎麼輸出:就是這兩個語句,ccap0h=pwm[index]; ccap1h=pwm[index]; index每中斷一次加1,那麼index是由0加到54,假如說index=0 ,那麼ccap0h=pwm[0]; ,pwm[0]對應數字裡面的255,暫存器ccap0h=255;這個暫存器等於255,pwm輸出就是乙個小脈寬;下一次中斷ccap0h=240了,脈寬有增加了一點;至於ccap0h送乙個資料就有脈寬輸出,這個是由微控制器硬體本身決定的;你看看手冊就知道了;

這個已經說得很明白了吧;累死,打字都打了20分鐘;

求微控制器高手幫我逐句解釋一下這個程式謝謝了

include 字頭,表示如果涉及到的函式從這兩個字尾名.h的檔案裡呼叫。include define uchar unsigned char 方便定義函式無符號型應該用uchar表示為方便直接用char表示了。define uint unsigned int 整形同上解釋 sbit clock p...

51微控制器,開關控制LED,開始流水燈,按一下停止,再按一下繼續流水燈

手機使用者 dchar unsigned cha 做而論道 採用中斷方式,程式如下 include include define uchar unsigned charsbit button p3 2 uchar press 0 uchar luishui 0xfe void delay uchar...

來判斷一下這倆句話,微控制器,請判斷一下圈起來的兩句話是否正確,如果錯誤,請說明理由。感謝回答!

1全部這裡一般來說第二種表達方式更為常見,因為always在句中的位置通常放在實義動詞之前 特殊動詞之後 但有時為了強調,也可將其放在特殊動詞之前,像第一句中的always放在了is 之前,可以看做是說話者在做強調。有時甚至還可放在句首或句末 a you should always be kind ...