久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > stc單片機IO配置與PWM

stc單片機IO配置與PWM

作者: 時間:2016-12-01 來源:網絡 收藏

所有PCA模塊都可用作PWM輸出(上圖)。輸出頻率取決于決于PCA定時器的時鐘源。

由于所有模塊共用僅有的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時鐘輸入源頻率/256PCA時鐘輸入源可以從以下8種中選擇一種:SYSclk,SYSclk/2,SYSclk/4,SYSclk/6,SYSclk/8,SYSclk/ 2,定時器0的溢出,ECI/P3.4輸入。。

舉例:要求PWM輸出頻率為38KHz,選SYSclk為PCA/PWM時鐘輸入源,求出SYSclk的值

由計算公式38000=SYSclk/256,得到外部時鐘頻率SYSclk=38000 x 256 x=9,728,000

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

當EPCnL = 0及CCAPnL=0x00H時,PWM固定輸出高

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

例:

#definePCA_IDLE_DISABLE0//1:MCU在IDLE模式時禁止PCA工作。0:MCU在IDLE模式時允許PCA工作。

#definePCA_SOURCE_SELECT1//選擇PCA的基準時鐘源。

//0:系統時鐘Fosc/12。

//1:系統時鐘Fosc/2。

//2:定時器0的溢出。

//3:ECI/P3.4腳的外部時鐘輸入(最大=Fosc/2)。

//4:系統時鐘Fosc。

//5:系統時鐘Fosc/4。

//6:系統時鐘Fosc/6。

//7:系統時鐘Fosc/8。

voiden_PCA(void)

{

CMOD= (PCA_IDLE_DISABLE << 7) | (PCA_SOURCE_SELECT << 1);//初始化PCA模式寄存器。

CL= 0x00;//清除PCA計數機

CH= 0x00;

CR= 1;//啟動PCA計數機 CL 00->FF

}

void initPWM()

{

PWM=0x00;

PCA_PWM0=0x02;//初始化輸出0

CCAP0H= 0xFF;//初始化輸出0

CCAPM0= 0x42;//設置PCA模塊0工作在PWM模式.......................

PCA_PWM1=0x02;//初始化輸出0

CCAP1H= 0xFF;//初始化輸出0

CCAPM1= 0x42;//設置PCA模塊1工作在PWM模式

en_PCA();//打開PMW

}

DALE R01F采樣電阻,阻值是0.01歐

RXD為接收數據的引腳,TXD為發送數據的引腳

PMW0 輸出全1

PCA_PWM0=0x00;
CCAP0H = 0x00;


PMW0輸出全0
PCA_PWM0=0x00;
CCAP0H = 0x00;//set PWM wide


上一頁 1 2 下一頁

評論


技術專區

關閉