51微控制器如何產生8路PWM波,51微控制器是如何產生PWM波的?

時間 2021-09-06 20:13:11

1樓:

我來說一下我的方案,這個我驗證過,方法如下:

其實用一個定時器就夠了,外部中斷接按鍵,一個用來頻率加,一個用來頻率減,即做調節頻率用,8路頻率從p0口輸出,定時器產生中斷,比如1us,那麼我到1us時對p0.0取反,同時中斷裡在定義一個變數t1,那麼t1計中斷次數,假如計到5時我讓p1.0取反,兒至於計到幾有外部中斷來定義,比如定義一個全域性變數f,int0按一次則f++,int1s按一次f- -,如此頻率得以控制,定時器處理如下:

void time0_isr(void) interrupt 2

}當然這只是簡單的用51本身資源產生而已,還可以用專門的外圍電路來實現,我給你一個四路頻率產生程式,思想如上,已驗證過

#include

#define uchar unsigned char

#define uint unsigned int

sbit pwm1=p1^0; //第一路頻率 1s內產生5000個脈衝

sbit pwm2=p1^1; //第二路頻率 1s內產生1000個脈衝

sbit pwm3=p1^2; //第三路頻率 1s內產生2500個脈衝

sbit pwm4=p1^3; //第四路頻率 1s內產生500個脈衝

uchar cout1,cout2; //分別用來定義時間寬度

uchar t0_max=10,t1_max=100;

void time0_ini() //定時0初始化

void int0_ini()

void time1_ini()

void main()

void tim0_isr() interrupt 1 //定時0中斷服務程式

if(cout1==(t0_max+10)) }

void time1_isr() interrupt 3 //定時器3中斷服務程式

if(cout2==(t1_max+150))

void int0_isr() interrupt 0

2樓:

能產生8路pwm的微控制器我沒見過,不過應該能有吧……

現在一般的微控制器都可以產生至少兩路pwm,試試c8051f系列的,還不錯

3樓:任揚遊

用一個定時器作us級定時,設一個靜態變數t每次定時中斷減1,t從初值減到0為一個脈衝輸出週期,如果t初值為100,設定一個全域性變數a來調節佔空比,當t>a時輸出1,當t

4樓:匿名使用者

接電子電位器+icl8038專用晶片,就可以控制器佔空比了。

電子電位器x9c103s

5樓:匿名使用者

自己可以編個程式實現的

51微控制器是如何產生pwm波的?

6樓:匿名使用者

主要通bai過一個定時器和一個io口來實現dupwm的輸zhi出。

在一個週期裡

dao面,首先讓io口輸出高電版平,並定時一定的時間然後再權將io口輸出低電平,定時一定的時間。

然後在while裡面迴圈輸出即可。

需要改變佔空比的話就改變高電平的時間與低電平的時間比。

7樓:鈍角111度

設定相應程式,控制相應頻率,輸出高低電平來控制開關管。調製輸出pwm波。

8樓:匿名使用者

可以用匯編指令nop來完成頻率設定。

計算好頻率後直接用io口輸出就可以了

9樓:匿名使用者

程式控制中斷和定時器來實現。

51微控制器怎麼產生12路pwm波??

10樓:

用定時器產生clk ,再對clk進行分頻,不同的分頻數產生不同週期的pwm波形

11樓:

定時器定時一個基本的時間片。。然後通過12個io口就可以輸出pwm波了

51微控制器產生pwm波的c程式是什麼?

12樓:我

用定時器產生程式如下:

unsigned int a=0 ,b=10;

void main()

void pwm() interrupt 1if(a=b)

}調節a ,b的值即可調節佔空比,程式框架就是這樣,具體自己改吧

13樓:

可以幾種方法實現,用定時器或延時程式或硬體pwm。

14樓:陌墨無文

改變i/o口的高低電平的佔空比

如何用51微控制器來產生pwm波來驅動5v的小電機

觀音斯坦 51沒有硬體的pwm,得全靠軟體模擬。調速程式可以用定時器做,首先設定兩個定時用的全域性變數,一個代表高電平時間一個代表低電平時間。先給定時器初值 既那兩個全域性變數中的一個 溢位後觸發中斷,在中斷裡設定另另一個初值並且取反pwm的輸出埠,兩個初值輪流給定時器,就可以任意調整佔空比,佔空比...

用51微控制器調光,51微控制器pwm調光電路

你的電路構思不太好,目的一樣但是電路構成的方法有很多的,你這種辦法比較耗費元件,並且因為過多的原件而導致可靠性下降。實現你的要求有簡單的辦法,就是採用微控制器產生可控的pwm pwm pulse width modulation 控制 脈衝寬度調製技術。通過對一系列脈衝的寬度進行調製,來等效地獲得所...

51微控制器產生一定佔空比和頻率的PWM

程式修改了一下,試試,ucount是字元變數而且也只能是字元變數,所以不能大於255.include define count 50 define th m1 65536 count 256 設定定時器t0的定時時間 define tl m1 65536 count 256 設定定時器t0的定時時間...