單片機沒有PWM外設也可以做可調占空比
時間:2018-12-12 09:21 來源:ob体育竞彩
利用單片機的PWM片上資源可以很方便的輸出PWM波形和調節其占空比,所謂占空比就是在一個周期內高電平所占的比例,如下圖所示:
占空比=T1/T×100%,如果單片機沒有PWM片上資源可通過普通GPIO和定時器配合輸出不同占空比的方波。分兩種情況介紹。
1.不帶有比較功能的情況
如果單片機沒有PWM功能,又沒有比較功能,那就通過定時器輸出。定時器輸出方波的原理時,定時翻轉GPIO口的輸出狀態,要想改變占空比,那就去改變定時器輸出高電平的時間,針對不同的占空比計算出定時器所需要的初值,每次加載定時器初值。下圖時51單片機的定時器寄存器含義。
2.單片機帶有比較功能
如果單片機帶有比較功能,讓單片機工作在比較功能下,可以通過設置比較功能的閾值來改變GPIO口的翻轉實現占空比的可調。這種方法需要根據不同的占空比,計算出所對應的比較器閾值,達到設定值後GPIO口就改變當前的電平狀態,即實現了不同的占空比的輸出。
一般來說單片機的CCP功能是綁在一起的,即Capture(捕獲),Compare(比較),PWM(脈寬調製)等功能。沒有PWM功能也就沒有比較功能。所以沒有CCP功能的單片機一般使用定時器輸出可變占空比的方波。
占空比可調的PWM
這個占空比其實也很容易改變,隻需要我們改變高低電平的時間,如果你不想這麼做,可以往單片機上加一個電位器,在我們旋轉電位器的時候,把對應的電壓傳給單片機,單片機再通過不同的電壓改變不同的時間,以此來達到調節占空比的目的。
如果需要PWM功能,但你用的MCU恰好又沒有,最簡單的辦法就是換一個,一般來說,連PWM功能都沒的MCU性能都一般。確實不想換,就想玩玩,其實也不難,就是用代碼控製IO的電平而已:
例如要在端口D1輸出占空比30%,頻率為1KHz的方波,可以這樣:
do
portd.1=0
waitus 700
portd.1=1
waitus 300
loop
當然了,前提是waitus要夠準。
看過《單片機沒有PWM外設也可以做可調占空比》的人還看了以下文章
初學單片機從51入門的好處 | |
51單片機是一款已經出現很久的單片機,它的出現可以說是劃時代的。同時期出現的其它單片機都已經逐漸退出曆史的舞台,而它卻依舊出現在某些專業的教材上。從這點來看,它依舊有其學習的意義。下麵說說初學單片機從51入門的好處。 51單片機的學習資源非常多... |
單片機為啥叫單片機 | |
1、MCU 我一般在工作計劃和原理圖的說明上,就直接將STM32或者STC89的單片機,標注為MCU。 無論是理解為Micro CPU,還是Microcontroller Unit,我認為都行,也沒有仔細去區分去過。自從32位單片機出來後,一些單片機設計的係統確實是具備部分電腦的功能。 你... |
16位單片機低端打不過8位高端打不過32位怎 | |
有時間去了解一下TI的MPS係列的單片機,它的低功耗和8位的51還有32位的STM32還是有一定的區別度的。 就比如MSP430係列,一些醫療的應用也少不了它,其各種低功耗的應用和例子一抓一大把。 也許從價格上來說,感覺,8位的便宜好買;從性能上來說,感覺,32位的... |
單片機行業可以轉什麼行業 | |
單片機行業可以轉很多方麵的工作啊,具體看你從事的硬件還是軟件。 對於之前從事單片機硬件的,有了這個硬件基礎,可以去的行業多了,畢竟很少有哪個行業離得開硬件的,像現在火熱的5G通信行業,手機終端行業、IOT行業、乃至AI行業,搞硬件的都有用武之地。... |
我是如何自學單片機編程語言的 | |
首先肯定一點的是,編程是完全可以自學的,並且隻要掌握了中學水平的知識就可以學會。下麵我來給朋友們分享一下我是如何自學單片機編程語言的。 學習編程需要方法 我記得最初學習單片機編程語言是學的彙編語言,在當時比較流行的單片機是MSC-C51為內核的芯片... |
熱門文章
- 單片機和嵌入式哪個好
- 單片機重要特性含義解讀
- 單片機三總線結構及時序分析
- 單片機沒有PWM外設也可以做可調占空比
- 開源硬件arduino是什麼
- 標誌寄存器中的狀態標誌和控製標誌
- at89c51和stc12c5a60s2的引腳的區別
- 學習51單片機要用到哪些硬件工具
- 單片機定時的時間怎麼改變
- 單片機自動斷電或關機電路圖講解
- 串口的波特率如何計算?串口通信波特率計
- 單片機波特率計算公式和方法
- 51單片機ram區域劃分
- spi時序圖怎麼看?spi時序圖閱讀方法
- 51單片機怎麼顯示出數字的?單片機數碼管
- 51單片機有幾個中斷源_52單片機中斷源
- 嵌入式係統的評價方法
- AT89C51單片機為核心的時鍾電路的程序設
- stm32學到什麼程度叫精通
- 用STM32隻會庫函數不會用寄存器有影響嗎