PCA是一個模塊,是一個硬件結構,具體的如下圖所示
16位PCA定時器/計數(shù)器相當于定時器0/1。每經過一個時鐘周期會自動加1,時鐘周期來源與下圖幾部分:
一個時鐘周期可能為(SYSclk/1,SYSclk/2...),最后一個外部輸入指的是給他外接的晶振源。
模塊0/1是十六位的捕獲/比較模塊。這個模塊的工作方式有四種: 1、上升/下降沿捕獲 2、軟件定時器 3、高速脈沖輸出 4、克調制脈沖輸出
至于要在哪一個模式下工作,可以通過配置寄存器來進行完成
在手冊中有一個配置表格,我們按自己的要求來進行選擇即可。例如我們選擇 8位PWM,無中斷模式
這是最簡單的模式,去掉那些煩人的中斷,對了雖然PCA模塊可以配置成不同的模式,但是無論在什么模式下,所觸發(fā)的任何中斷,都只有一個中斷入口。代號為7。
當將PCA模塊配置成上述模式之后,再經過一些配置后,會出現(xiàn)在相應的引腳發(fā)出相應的PWM波形
下來以手冊中例程來對PWM的生成過程進行一個分析。
CMOD = 0x02 //設置PCA的時鐘源為SYSclk/2,并且禁止PCA定時器的溢出中斷
CCAP0H=CCAP0L=0x80; //設置占空比為50%
CCAPM0 = 0X42; //設置PCA的工作模式為8位PWM并且不允許任何中斷
為什么CCAP0H=CCAP0L=0X80 PWM的占空就為50%呢?下來看這幅圖
CL是PCA模塊中的定時器的低八位寄存器,他的變化范圍為0~255,CCAP0L是PCA模塊0的數(shù)據(jù)寄存器,他的值的取值范圍為0~255,當CCAP0L=0X80時,即CCAP0L=128。
然后128和CL的值進行比較,CL比CCP0L小則,引腳輸出低電平,反之,輸出高電平。因為CL的值是每經過一個時鐘周期加1,加到255時,溢出重新置0。
也就是說CL在0~128之前,CL都一直小于CCP0L,也就是引腳會一直低電平,一旦CL值超過128,引腳會輸出高電平。128位256的一半,所以高電平的時間為整個PWM周期的一半,即占空比為50%。
當我們改變CCP0L的值,就會去改變PWM的占空比,這也就是所說的脈寬調制。
要改變PWM的周期,只能改變CL的取值范圍,但是CL的取值范圍是不可改變的,因為CL是一個8位寄存器。所以只能是改變CL每次加1的速度(原來CL加1用0.1s,現(xiàn)在要改為0.05s)也就是說我們要時鐘源的頻率。這種方法并沒有被PCA模塊所用,PCA模塊所改變PWM頻率的方法為,時鐘源選擇T0的溢出率,或者是選擇外部時鐘晶振源。
上述為個人理解,下圖為手冊中的流程
上一篇:增強型單片機STC12C5A60S2輸出各種頻率方波信號
下一篇:單片機中使用三極管驅動蜂鳴器
推薦閱讀
史海拾趣
0 引言 現(xiàn)在,人們生活中的每個角落都有嵌入式設備的存在,比如數(shù)碼相機、移動電話、TV機頂盒及掌上電腦等等。這些嵌入式設備多采用32位RISC嵌入式處理器作為核心部件。其中基于ARM核的嵌入式處理器獨占鰲頭,在32位RISC處理器中 ...… 查看全部問答∨ |
要做一個單片機控制的LCD工業(yè)智能液晶電路,已知接口定義和串口通信、并行通信時序圖,我想用并口,這樣快些,還用加上拉電阻嗎?數(shù)據(jù)位接P0(共8位),P1.0接/STB,P1.1接BUSY,程序設計思路: STB=1; while(1) { if(Date!=0&&B ...… 查看全部問答∨ |
請問下面這個程序為什么只點亮了一個數(shù)碼管,應該全部才對呀,怎么才能點亮全部?(at89s52) #include<reg52.h> sbit dula=P2^6; sbit wela=P2^7; void main() { wela=1; P0=0xc0; wela=0; &nb ...… 查看全部問答∨ |
我要用紅外線一個遙控平臺,使其可以上下左右前后的運動,用電腦控制,用8051單片機,單片機和電腦用USB連接,我想問問就是數(shù)據(jù)經過單片機后的紅外編碼和發(fā)射怎么做。 我以前沒做過這方面的,知道的指教下,小妹在這先謝謝了。… 查看全部問答∨ |
計算機組成原理的課程設計,要求在TEC2000仿真器上實現(xiàn)擴展指令取反NOT,這里要用到微指令控制器方面的知識 比如說 0110 1101 6DH 取反得到 1001 0010 92H 取反是平 ...… 查看全部問答∨ |
本人已經實現(xiàn)了arm與上位機通過以太網進行通信,用到了兩個端口一個8000一個80,80用于網頁簡單控制arm,8000用于數(shù)據(jù)傳輸。但是在通信時非常的卡,網頁發(fā)的命令arm過很久才會回復。 請問高手們如何優(yōu)化,使通信變得流暢。 ...… 查看全部問答∨ |
Fatal Error[Pe035]: #error directive: "msp430 generic device does not have a default include file" C:\\Program Files (x86)\\IAR Systems\\Embedded Workbench 6.5\\430\\inc\\msp430.h 1555 … 查看全部問答∨ |
|
作為一個電子男,一直被女孩子認為是刻板、不懂浪漫的,其實不然,我們可以以我們獨特而又與眾不同的方式來表達我們的浪漫情懷。這一戰(zhàn)我們就用我們電子男特有的方式對我們最親愛的人說一聲ILoveYou!當然這句深情的話我們是用Verilog說的呦!下面 ...… 查看全部問答∨ |
EEWORLD大學堂----泰克Tektronix 213古董手持便攜式示波器拆機_中文字幕 泰克Tektronix 213古董手持便攜式示波器拆機_中文字幕:http://training.eeworld.com.cn/course/2324原作者 david jones,來自eevblog。?david jones的拆解視頻都是業(yè)界良心啊,專業(yè)、有趣,點評犀利到位?!? 查看全部問答∨ |
設計資源 培訓 開發(fā)板 精華推薦
- Gartner發(fā)布企業(yè)構建智能應用的五項基本原則
- TLSM系列輕觸開關為高使用率設備提供200萬次長使用壽命
- 品英Pickering公司仿真方案和測試系統(tǒng)滿足航電設備可靠性和安全性等更高要求
- RAK12039傳感器如何參與LoRaWAN水培環(huán)境監(jiān)測物聯(lián)網系統(tǒng)集成
- 如何添加和激活RAK12035傳感器(電容式土壤濕度傳感器)
- ?數(shù)據(jù)分析軟件imc FAMOS 2025全球同步發(fā)布
- 基于雙積分滑??刂频膯我葡嗾{制(SPS)的應用
- 場效應管有哪些特點、測量方法?場效應管是如何導通的
- 場效應管和晶閘管有什么區(qū)別?場效應管使用注意事項有哪些
- 場效應管常用驅動芯片有哪些?如何估測場效應管放大能力