STC微控制器硬體PWM的使用分析

2021-08-02 17:05:45 字數 1044 閱讀 1622

stc微控制器(具有pca功能的),怎麼實現可變頻率的pwm輸出?很多朋友還在使用定時器做可變頻pwm, 這裡我就介紹怎麼使用硬體pwm,在定時器0的分頻基數下設計pwm。

首先看cmod這個暫存器,這裡我們主要關注 cps0,cps1,cps2,這三個位控制選擇pca的計數脈衝源。 對應pwm功能,則是選擇頻率。 首先可以選擇 6個固定分頻,可以看看出,分別是1,2,4,6,8,12的系統分頻。我們需要做可變頻率的pwm,所以我們需要選擇模式2,選擇定時器0的溢位作為系統分頻基數。

然後,我麼看怎麼具體的去計算,去實現分頻。 這裡就需要上面這個的計算規則。 這裡我舉乙個例子來說明,比如我們微控制器的晶振使用的是12mhz,而我們需要實現300hz的頻率。 如果得到呢?

首先,如果我們採用cmod的固定分頻,可以發現,無論是1,2,4,8,12,分頻下來的頻率都不是300hz。 所以這裡也體現我們使用定時器0做分頻基數的好處了。

我們繼續計算,12mhz需要轉化為300hz,那麼根據上圖,首先我們需要確定pca時鐘輸入頻率,根據公式 300*256=76800hz,這個值就是我們需要的pca時鐘輸入頻率。現在問題就是 ,我們怎麼把12mhz,轉化為76.8khz, 12000khz/76.8khz=156.25 ,這個156.25就是分頻基數,而這個分頻基數由我們的定時器溢位引數來設定,意思就是當我們定時器如果計數156.25溢位就可以做到分頻基數為156.25, 所以我們在設定定時器0的計數起始值就是65536-156=65380,對應th0=0xff,tl0=0x64。

好了,怎麼計算pwm在定時器0下實現我們自己需要的任意頻率的計算方式這裡就介紹完了。 如果要動態實現頻率可變,我們就可以通過通訊去動態調整定時器0的計數基數,(實際就是調整了分頻基數),就可以實現頻率的改變了。 另外,說明:這裡的定時器0,不需要中斷,並且該定時器也不是作為產生pwm用的,是作為乙個分頻基數用!

STC微控制器輸出可調的pwm

pca0初始化 auxr1 0x30 auxr1 0x10 切換io口,0x00 p1.2 p1.1 p1.0 p3.7,0x10 p3.4 p3.5 p3.6 p3.7,0x20 p2.4 p2.5 p2.6 p2.7 ccapm0 0x42 工作模式 pwm pca pwm0 pca pwm0 ...

51微控制器 PWM

pwm,全稱pulse width modulation,譯為脈衝寬度調製。功能 改變脈衝寬度,實現不同效果。可用數碼訊號達到模擬訊號的效果 pwm在微控制器中應用廣泛,不同的應用場合意義不盡相同。先看一張圖 這是乙個週期為10ms,頻率為100hz的波形。每個週期內的高低電平脈衝寬度各不相同,這就...

微控制器PWM調製技術

我們可以看看下圖,下圖就是乙個典型的pwm的波形圖。t是乙個週期,t1就是高電平所占用的時間,t2就是低電平所占用的時間。如上圖所示t1為脈衝寬度 就是導通時間 週期為t,則輸出電壓的平均值為u vcc t1 t a vcc,a是占空比,變化範圍為0 a 1。vcc為電源電壓,一般情況下使用微控制器...