回覆列表
-
1 # 微控制器軟體工程師
-
2 # 海底核電站
如果需要PWM功能,但你用的MCU恰好又沒有,最簡單的辦法就是換一個,一般來說,連PWM功能都沒的MCU效能都一般。確實不想換,就想玩玩,其實也不難,就是用程式碼控制IO的電平而已:
例如要在埠D1輸出佔空比30%,頻率為1KHz的方波,可以這樣:
do
portd.1=0
waitus 700
portd.1=1
waitus 300
loop
當然了,前提是waitus要夠準。
-
3 # 玩轉嵌入式
利用微控制器的PWM片上資源可以很方便的輸出PWM波形和調節其佔空比,所謂佔空比就是在一個週期內高電平所佔的比例,如下圖所示:
佔空比=T1/T×100%,如果微控制器沒有PWM片上資源可透過普通GPIO和定時器配合輸出不同佔空比的方波。分兩種情況介紹。
1.不帶有比較功能的情況如果微控制器沒有PWM功能,又沒有比較功能,那就透過定時器輸出。定時器輸出方波的原理時,定時翻轉GPIO口的輸出狀態,要想改變佔空比,那就去改變定時器輸出高電平的時間,針對不同的佔空比計算出定時器所需要的初值,每次載入定時器初值。下圖時51微控制器的定時器暫存器含義。
2.微控制器帶有比較功能如果微控制器帶有比較功能,讓微控制器工作在比較功能下,可以透過設定比較功能的閾值來改變GPIO口的翻轉實現佔空比的可調。這種方法需要根據不同的佔空比,計算出所對應的比較器閾值,達到設定值後GPIO口就改變當前的電平狀態,即實現了不同的佔空比的輸出。
一般來說微控制器的CCP功能是綁在一起的,即Capture(捕獲),Compare(比較),PWM(脈寬調製)等功能。沒有PWM功能也就沒有比較功能。所以沒有CCP功能的微控制器一般使用定時器輸出可變佔空比的方波。
相關內容
- 51微控制器如何用一個定時器產生20KHZ佔空比可調的PWM波?
- 為什麼51微控制器輸出PWM佔空比為50%時輸出電壓時正負2.5V?
- 怎樣用51系列組合語言產生可調佔空比的pwm波?
- 跪求stc12c5a60s2微控制器PWM程式。50%佔空比。P1.3口輸出PWM?
- 如何將微控制器輸出的PWM控制訊號,變成可以帶負載的變化的電壓?
- STC15W4K32S4微控制器怎麼使用自帶的PWM功能同時輸出控制3個電機?
- 什麼PWM訊號佔空比?
- 怎麼讓51微控制器輸出可調佔空比的脈衝波,要哪個管腳引出,用什麼程式?我是剛學微控制器的,什麼都不懂求幫助?
- 跪求一個89C52微控制器透過按鍵產生PWM訊號來控制LED燈的不同亮度的程式?
1 微控制器定時器有比較輸出的情況,可以透過修改比較閾值來改變佔空比,佔空比為比較閾值/溢位計數值
2沒有上面的功能時,可以用定時器產生基準時鐘,頻率要高點,比如10K,一個週期為0.1ms,輸出IO波形頻率為100HZ,佔空比調節範圍0%~99%.相當於模擬一個比較器,軟體去記錄0.1ms內 定時器產生了的多少次,比如我想要50%佔空比,記錄開始輸出高電平,到第50次時輸出低電平,想要70%佔空比,就是記錄到70次時輸出低電平。