1.什麼是pwm?2.怎麼編寫pwm程式?
上文我簡單的給pwm下了乙個定義——pwm就是將直流電的波形頻率變成類似交流電波形頻率,同時還能控制脈寬(脈衝寬度)的技術。那麼我們現在就只需要分析交流電的波形是怎麼樣的,然後通過程式設計讓微控制器發出類似交流電的波形並控制每個波形的寬度就行了。
首先交流電的波形是沒有方向的,所以這一點我們是不可能做到的,畢竟正負極擺在這裡,我們能做到的是和交流電一樣的頻率。交流電一秒鐘的頻率是50hz,也就是在一秒內變化50次,那我們同樣讓直流電變化50次,並控制變化的時間不就達到了和交流電一樣的頻率。
理清楚了思路,我們就可以開始程式設計了。
本段程式,我使用了兩個定時器,定時器0定時0.5毫秒用來控制直流電在一秒內變化的週期,定時器1定時50毫秒用來控制直流電在每乙個週期內高電平占用週期的時間,也即是控制脈寬。#include
/*實驗 stc89c52
pwm波的使用與分析
2018-1-8
*///巨集定義
#define uchar unsigned char
#define uint unsigned int
//定義io口
sbit led = p1^0;
//定義變數
uchar num = 50;
bit bz = 1;
//函式宣告
void init(); //定時器0 初始化
void main()
}void init(void)
void t0_time(void) interrupt 1
if(t0_cnt > num) //當高於臨界值時 燈亮
if(t0_cnt > 40) //當亮了乙個週期以後 復位
}void t1_time(void) interrupt 3
if(bz == 0)
if(num == 0)
if(num == 41)
}}
通過計算,1秒內產生50次變化,即20毫秒產生乙個變化,定時器0每0.5毫秒產生一次中斷,產生中斷達到40次時剛好乙個週期結束。而脈寬我用定時器1來調節,通過改變臨界值num的值,讓高電平在乙個週期內的時間做出不同的變化。
3.pwm的使用和分析
新人發部落格 ——有什麼解釋的不對的地方請多多指教。
51微控制器 PWM
pwm,全稱pulse width modulation,譯為脈衝寬度調製。功能 改變脈衝寬度,實現不同效果。可用數碼訊號達到模擬訊號的效果 pwm在微控制器中應用廣泛,不同的應用場合意義不盡相同。先看一張圖 這是乙個週期為10ms,頻率為100hz的波形。每個週期內的高低電平脈衝寬度各不相同,這就...
51微控制器學習 PWM
pwm 脈衝寬度調調製,它是按一定規律改變脈衝序列的脈衝寬度,以調節輸出量和波形的一種調製方式。我們在控制系統中最常用的矩形pwm訊號,在控制時需要調節pwn波的占空比 指的是高電平持續時間在乙個週期時間內的百分比 當用微控制器io口輸出pwm訊號時,可採用下面三種方法 1 利用軟體延時。當高電平延...
STC微控制器硬體PWM的使用分析
stc微控制器 具有pca功能的 怎麼實現可變頻率的pwm輸出?很多朋友還在使用定時器做可變頻pwm,這裡我就介紹怎麼使用硬體pwm,在定時器0的分頻基數下設計pwm。首先看cmod這個暫存器,這裡我們主要關注 cps0,cps1,cps2,這三個位控制選擇pca的計數脈衝源。對應pwm功能,則是選...