欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4720|回復: 1
打印 上一主題 下一主題
收起左側

STC單片機硬件PWM的使用分析,這里主要針對需要可調頻的介紹

[復制鏈接]
跳轉到指定樓層
樓主
最近發現有不少朋友在問,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用的,是作為一個分頻基數用!

  請大家多多交流,如果有描述錯誤,或者不清楚的,可以一起留言。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:1 發表于 2017-2-12 21:27 | 只看該作者
好資料,51黑有你更精彩!!!
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表