STC12C5201AD單片機的PWM功能的應用總結

2021-01-13 電子發燒友

52xxAD系列單片機的內部集成了兩路可編程計數陣列模塊(PCA),可用於軟體定時器、外部脈衝的捕捉、高速輸出和脈寬調製輸出(PWM)。

這裡主要是對PWM輸出功能進行介紹。

首先要清楚與PCA/PWM應用有關的特殊功能寄存器

1、PCA工作模式寄存器CMOD

CIDL:空閒模式下是否停止PCA計數的控制位

當CIDL=0時,空閒模式下PCA計數器繼續工作

當CIDL=1時,空閒模式下PCA計數器停止工作

CPS2CPS1CPS0:pca計數器脈衝源選擇控制位。

0 0 0 0,系統時鐘SYSCLK/12

0 0 1 1,系統時鐘SYSCLK/2

0 1 0 2,定時器0的溢出脈衝。由於定時器0可以工作在1T模式,所以可以達到計一個時鐘就溢出,從而達到最高頻率CPU工作時時鐘SYSCLOCK,通過改變定時器0的溢出率,可以實現可調頻率的PWM輸出。

0 1 1 3,ECI/P1.2(或P1.4)腳輸入的外部時鐘(最大速率=SYSCLK/2)

1 0 0 4,系統時鐘 SYSCLK

1 0 1 5,系統時鐘/4,sysclk/4

1 1 0 6,系統時鐘/6,

1 1 1 7, 系統時鐘/8

2、PCA控制寄存器CCON

CF:PCA計數器陣列溢出標誌位。當PCA計數器溢出時,CF由硬體置位。如果CMOD寄存器的ECF位置位,則CF標誌可用來產生中斷。CF位可通過硬體或軟體置位,但只可通過軟體清零。

CR:PCA計數器陣列運行控制位,該位通過軟體置位,用來啟動計數器陣列計數,通過軟體清零,用來關閉PCA計數器。

CCF1:pca模塊1中斷標誌。當出現匹配或捕獲時該位由硬體置位,必須通過軟體清零

CCF0:PCA模塊0中斷標誌。

3、PCA比較/捕獲寄存器CCAPM0和CCAPM1

ECOM0:允許比較器功能控制位。為1,允許

CAPP0:正捕獲控制位。為1,允許

CAPN0:負捕獲控制位。為1,允許

MAT0:匹配控制位。

為1時,PCA計數值與模塊的比較/捕獲寄存器的值的匹配將置位CCON寄存器的中斷標誌位CCF0。

TOG0:翻轉控制位。當tog0=1時,工作在PCA高速輸出模式,PCA計數器的值與模塊的比較/捕獲寄存器的值的匹配將使CEX0腳翻轉。(CCP0/PCA0/PWM0/P1.3)

PWM0:脈衝調節模式

當PWM0=1時,允許CEX0腳用作脈寬調節輸出(CCP0/PCA0/PWM0/P1.3)

ECCF0:時能CCF0中斷。使能寄存器CCON的比較/捕獲標誌CCF0,用來產生中斷。

4、PCA的16位寄存器——低8位CL和高8位CH

用於保存PCA的裝載值。

5、PCA捕捉/比較寄存器——CCAPnL(低位字節)和CCAPnH(高位字節)

當PCA模塊用於捕獲或比較時,它們用於保存各個模塊的16位捕捉計數值;當PCA模塊用於PWM模式時,它們用來控制輸出的佔空比。其中,n=0、1,分別對應模塊0和模塊1.復位值均為00H,對應的地址分別為:

CCAP0_EAH CCAP0H_FAH:

CCAP1_EBHCCAP1H_FAH;

PCA模塊的工作模式設定表如下:

ECOMn CAPPn CAPNn MATn TOGn PWMn ECCFn模塊功能

0 0 0 0 0 0 0無此操作

1 0 0 0 0 1 0 8位PWM,無中斷

1 1 0 0 0 1 1 8位PWM輸出,由低變高可產生中斷

1 0 1 0 0 1 1 8位PWM輸出,由高變低可產生中斷

1 1 1 0 0 1 1 8位PWM輸出,由低變高或者有高變低均可產生中斷

X 1 0 0 0 0 x 16位捕獲模式,由CCPn/PCAn的上升沿觸發

X 0 1 0 0 0 x 16位捕獲模式,由CCPn/PCAn的下降沿觸發

X 1 1 0 0 0 x 16位捕獲模式,由CCPn/PCAn的跳變觸發

1 0 0 1 0 0 x 16位軟體定時器

1 0 0 1 1 0 x 16位高速輸出

6、 PCA的16位計數器——低8位CL和高8位CH

用於保存PCA的裝載值。

7、 PCA捕捉/比較寄存器CCAPnL(低位字節)和CCAPnH(高位字節)

當PCA 模塊用於捕獲或比較時,它們用於保存各個模塊的16位捕捉計數值;當PCA模塊用於PWM模式時,它們用來控制輸出的佔空比。其中,n=0,1分別對應模塊0和模塊1.復位值均為00H。它們對應的地址分別為:

CCAP0L_EAH CCAP0H_FAH:模塊0的捕捉/比較寄存器

CCAP1L_EBH CCAP1H_FBH:模塊1的捕捉/比較寄存器。

脈寬調節模式

Plus width modulation 是一種使用程序來控制波形佔空比、周期、相位波形的技術,在三相電機驅動,D/A轉換等場合有廣泛的應用。

STC12C5201AD系列的PCA模塊可以通過程序設定,使其工作於8位PWM模式。

由於所有的模塊共用僅有的PCA定時器,所有它們的輸出頻率相同。各個模塊的輸出佔空比是獨立變化的,與使用的捕捉寄存器EPCnL,CCAPnL有關。當寄存器CL的值小於EPCnL,CCAPnL時,輸出為低;當寄存器CL的值大於等於EPCnL,CCAPnL的值時,輸出為高。當CL得值由FF變為00溢出時,EPCnH,CCAPnH的內容裝載到EPCnL,CCAPnL中,這樣就實現無幹擾的更新PWM 。要使用PWM模式,模塊CCAPMn寄存器的PWMn和ECOMn位必須置位。

由於PWM是8位的,故PWM的頻率=PCA時鐘輸入源頻率/256

PCA時鐘輸入源可以從以下的幾種進行選擇:SYSCLK SYSCLY/2SYSCLK/4SYSCLK/6 SYSCLK/8SYSCLK/12定時器0的溢出,ECI/P3.4的輸入。

如果要實現可調頻率的PWM 輸出,可選擇定時器0的溢出率或則ECI腳的輸入作為PCA/PWM的時鐘輸入源

當EPCnL=0及CCAPnL-00H時,PWM固定輸出高

當EPCnL=1及CCAPnL=FFH時,PWM固定輸出低

當某個I/O口作為PWM使用時,改口的狀態

PWM之前口的狀態 PWM輸出時口的狀態

弱上拉/準雙向強推輓輸出/強上拉輸出,要加輸出限流電阻1K-10K

強推輓輸出/強上拉輸出強推輓輸出/強上拉輸出,要加輸出限流電阻1K-10K

僅為輸入/高阻 PWM無效

開漏開漏

下面便是STC手冊中的一個C語言例子

#include

#include 「intrins.h」

#define FOSC 12000000L

Typedef unsigned int WORD;

Typedef unsigned char BYTE;

sfr CCON=0xd8;//PCA control register

sbit CCF0=CCON^0;//PCA module_0 interrupt flag

sbit CCF1=CCON^1;//pca module_1 interrupt flag

sbit CR=CCON^6;//pca time run control bit

sbit CF=CCON^7;//PCA timer overflow flag

sfr CMOD=0xd9;//pca mode register

sfr CL=0xe9;//PCA base time low

sfr CH=0xf9;//PCA base time high

sfr CCAPM0=0XDA;//PCA module_0 mode register

sfr CCAP0L=0XEA;//PCA module_0 capture register low

sfr CCAP0H=0XFA;//PCA module_0 capture register high

sfr CCAPM1=0XDB;//PCA module_1 mode register

sfr CCAP1L=0xeb;//PCA module_1 capture register low

sfr CCAP1H=0XFB,//PCA module_1 capture register high

sfr PCAPWM0=0XF2;

sfr PCAPWM1=0XF3;

void main()

{

CCON=0;//initial PCA control register

//PCA timer stop running

//clear CF flag

//clear all module interrupt flag

CL=0;//reset PCA base timer

CH=0;

CMOD=0X02;//set PCA time clock source as fosc/2

//disable PCA timer overflow interrupt

CCAP0H=CCAP0L=0X80;//PWM0 port output 50% duty cycle sequare wave

CCAPM0=0X42;//PCA module_0 work in 8_bit PWM mode

// and no PCA interrupt

CCAP1H=CCAP1L=0XFF;//pwm1 port output 0% duty cycle square wave

PCAPWM1=0X03;//

CCAPM1=0X42;//PCA module_1 work in 8_bit PWM mode and no PCA interrupt

CR=1;//PCA timer start run

While(1);

}

打開APP閱讀更多精彩內容

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容圖片侵權或者其他問題,請聯繫本站作侵刪。 侵權投訴

相關焦點

  • 用51單片機實現pwm專題及常見問題 - CSDN
    基於51單片機脈衝寬度調製(即PWM)直流電機轉速快慢以及霍爾測速的項目一、前言1、基於51單片機脈衝寬度調製(即PWM)直流電機轉速快慢以及霍爾測速的項目包括用Keil軟體編寫單片機C語言程序和用
  • STC單片機PWM脈寬調製功能模塊
    // STC單片機PWM脈寬調製功能模塊#include 本文引用地址:http://www.eepw.com.cn/article
  • STC12C2052單片機製作數字電壓表彙編程序
    用STC12C2052單片機晶片自帶的ad進行採樣得到電壓並顯示在數碼管上面,下面是彙編語言源程序:;===================數字電壓表模擬採樣===================================
  • 一款基於STC單片機的超聲波清洗機系統設計
    該系統採用STC15F2系列的單片機為控制核心,加以功率調節、半橋逆變、PWM發生與控制等模塊電路,利用了調諧匹配和阻抗匹配,使壓電換能器輸出最大功率。本超聲波清洗機具有功率、頻率可調、定時清洗的功能,以及清洗效率高、成本低、運行穩定的特點,達到節能環保的目的,應用前景廣闊。
  • CC2430單片機AD轉換使用方法總結
    CC2430單片機標稱AD轉換精度為14位,在單片機中算是比較高的了,CC2430最廣泛的用途是作為傳感器來使用的,而傳感器測量的物理量的原理多半是將物理量轉換成電流、電壓等模擬信號,再通過AD轉換進入單片機處理
  • 51,AVR,PIC,MSP430,STM32單片機比較
    51系列:(增強型51單片機)價格便宜(從性價比方面說),功能多,抗幹擾能力強(如根據宏晶所說,那stc的抗幹擾能力就是超強,超屌.),eeprom大,出廠時程序引導區就已經加密,並且stc解密的市面價格在1.5w到2.5w之間,可見解密難度大,在一定程度上保護了單片機工程師的利益和產品開發商的利益。生產時就已經考慮到與傳統51的兼容問題,兼容做的很好,又增加了許多功能,軟復位功能我比較喜歡。缺點:資料就是宏晶網上的資料,資料少,不適合初學者---我指學習它自己增加的功能。
  • 單片機基礎教程【拾壹】——脈衝寬度調製(PWM)
    PWM在實際應用中有什麼作用呢,我們以呼吸燈為例,為大家演示PWM的具體用法與實際作用。與往期教程【玖】【拾】(點擊查看)聯繫,在這裡我們利用51單片機的定時器生成PWM波。首先,配置定時器,將定時器配置為約100us中斷一次。同時在主函數我們使PWM的佔空比(在這裡即OUT的值)不斷改變,從0自加到100,再從100 自減到0。50MS的延遲控制燈亮暗的頻率。
  • PWM控制MOSFET搭建的H橋電路驅動直流電機仿真與單片機源碼
    PIC單片機 proteus H橋驅動直流電機PWM控制MOSFET搭建的H橋電路驅動直流電機運行仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)單片機源程序如下://-----------------------------------------------------------------//  名稱: 用PIC16F690
  • 基於單片機的記憶杯墊
    DS18B20就是這次設計的核心,通過感應溫度、並記錄溫度達到提醒人們喝熱飲的功能。在使用非隔熱杯子的前提下(材料不限,只要不是隔熱的),杯子內液體的溫度勢必會影響杯子表層溫度,雖然我們不確定杯子表層溫度的具體數值,但可以肯定的是,杯子的溫度是和裡面液體的溫度是正比的。
  • ad9854中文資料匯總(ad9854引腳圖及功能_內部結構及應用電路)
    ·單引腳FSK和BPSK數據輸入接口   ·PSK功能可由I/O接口實現   ·具有線性和非線性的脈衝調頻(FM CHIRP)功能,帶有引腳可控暫停功能   ·具有過渡FSK功能   ·在時鐘發生器模式下,有小於25 ps RMS抖動偏差   ·可自動進行雙向頻率掃描   ·能夠對信號進行sin(
  • HD 12c 金融計算器
    金融計算器簡介 HD 12C金融計算器是Hp(惠普)12C金融計算器的Android仿真器,它提供了Hp(惠普)12C 金融計算器的所有功能,並且運用同樣的金融公式。
  • 基於ATmega8的直流電機PWM調速控制系統設計與實現
    三、控制系統硬體設計本調速控制系統,主要由ATmega8單片機、驅動電路、轉速檢測電路和通信接口電路等部分組成,如圖2所示。1.ATmega8單片機簡介[5]ATmega8是增強的AVRRISC結構的CMOS微控制器,具有高速度、低功耗、片內資源豐富、電源抗幹擾能力強等優點。ATmega8具有32個通用工作寄存器及豐富的指令集,帶有硬體乘法器以及8K的FLASH和1K的SRAM,還帶有8路10位ADC以及三通道的PWM輸出,支持ISP功能,可以很方便地對器件進行在線編程及修改。
  • 基於SHE-PWM控制的DC-AC電源
    Keyword:Selective Harmonic Eliminated-PWM control Bootstrap1 前言:以單片機和DSP為核心組成的控制電路的逆變電源,能實現電源的全數字控制,但系統較複雜,軟體工作量大,研製周期長。
  • 六大新特性 ORACLE 12c標準版1CPU報11W
    Oracle 12c可以保留分散資料庫的自有功能,能夠應對客戶在私有雲模式內進行資料庫整合。通過在資料庫層而不是在應用層支持多租戶,Oracle多租戶技術可以使所有獨立軟體開發商(ISV)的應用在為SaaS準備的Oracle資料庫上順利運行。Oracle 多租戶技術實現了多個資料庫的合一管理,提高了伺服器資源利用,節省了資料庫升級、備份、恢復等所需要的時間和工作。
  • 基於STC單片機的智能燈控系統設計
    人體紅外熱釋傳感器和可見光照度傳感器採集的數據,通過單片機處理後向照明燈驅動電路發送相應信號,控制照明燈的開關和亮度。本系統具有成本低、運行穩定及智能化的特點。對提高用電效率、節能環保有很大幫助,應用前景廣闊。
  • 51/STM32/MSP430/STC/TMS/PIC/AVR,七大主流單片機最全面對比
    :Atmel、TI、ST、MicroChip、ARM…國內的宏晶STC單片機也是可圈可點…  下面為大家帶來51、MSP430、TMS、STM32、PIC、AVR、STC單片機之間的優缺點比較及功能體現……  51單片機  應用最廣泛的8位單片機當然也是初學者們最容易上手學習的單片機,最早由
  • MCS-51單片機P0口、P1口分別有哪些應用功能?
    MCS-51單片機P0口有哪些應用功能?MCS-51單片機P1口有哪些應用功能?答:MCS-51單片機的P1口是專門供用戶使用的I/O口,用戶可以利用它作為I/O口線使用。P1口是準雙向口。
  • 你足夠了解pwm嗎?搞清楚pwm控制技術
    pwm是現代重要技術之一,在各種電子設備中,均存在pwm的身影。在往期文章中,小編對pwm原理、pwm佔空比、pwm頻率均有所介紹。為增進大家對pwm的認識,本文將對pwm控制技術予以闡述。如果你對pwm抑或本文即將介紹的內容具有興趣,不妨繼續往下閱讀哦。
  • 脈寬調製原理- -PWM原理
    導讀:脈寬調製技術,顧名思義,可通過對脈衝寬度的調整來完成某種功能的技術,那麼其究竟是如何來完成對脈衝寬度的調整?其又可實現什麼功能呢?
  • 單片機應用編程技巧100問
    這些參數主要是系統中的電路、器件、功能單元的資源,如記憶體容量、存儲單元長度、堆迭深度。在程序設計中,對資源參數不允許超範圍使用。應用參數。這些應用參數常表現為一些單片機、功能單元的應用條件。如E2PROM的擦寫次數與資料存儲時間等應用參數界限。過程參數。指系統運行中的有序變化的參數。