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,得全靠軟體模擬。調速程式可以用定時器做,首先設定兩個定時用的全域性變數,一個代表高電平時間一個代表低電平時間。先給定時器初值 既那兩個全域性變數中的一個 溢位後觸發中斷,在中斷裡設定另另一個初值並且取反pwm的輸出埠,兩個初值輪流給定時器,就可以任意調整佔空比,佔空比... 你的電路構思不太好,目的一樣但是電路構成的方法有很多的,你這種辦法比較耗費元件,並且因為過多的原件而導致可靠性下降。實現你的要求有簡單的辦法,就是採用微控制器產生可控的pwm pwm pulse width modulation 控制 脈衝寬度調製技術。通過對一系列脈衝的寬度進行調製,來等效地獲得所... 程式修改了一下,試試,ucount是字元變數而且也只能是字元變數,所以不能大於255.include define count 50 define th m1 65536 count 256 設定定時器t0的定時時間 define tl m1 65536 count 256 設定定時器t0的定時時間...如何用51微控制器來產生pwm波來驅動5v的小電機
用51微控制器調光,51微控制器pwm調光電路
51微控制器產生一定佔空比和頻率的PWM