stc單片機(jī)可調(diào)PWM程序
下面這個(gè)程序是應(yīng)用在stc12c2052ad上的pwm程序,測(cè)試成功
#includereg52.h>sfr CCON =0xD8; //PCA control registersfr CMOD =0xD9;sfr CL =0xe9;sfr CH =0xF9;sfr CCAP0L=0xea;sfr CCAP1L=0xeb;sfr CCAP0H=0xfa;sfr CCAP1H=0xfb;sfr CCAPM0=0xda;sfr CCAPM1=0xdb;sbit CR=0xde; //位尋址void main(void){CMOD=0x02; //使用系統(tǒng)時(shí)鐘,時(shí)鐘輸入源頻率fosc/2。PWM頻率=fosc/2/256/************************************7 6 5 4 3 2 1 0 CIDL - - - cps2 CPS1 CPS0 ECFCIDL: =0時(shí),空閑模式下PCA計(jì)數(shù)器繼續(xù)工作;=1時(shí),空閑模式下PCA計(jì)數(shù)器停止工作。CPS2,CPS1,CPS0:PCA計(jì)數(shù)脈沖選擇。010,定時(shí)器0的溢出,可以實(shí)現(xiàn)可調(diào)頻率的PWM輸出。ECF: =1時(shí),使能寄存器CCON CF位的中斷;=0時(shí),禁止該功能。***************************************/CL=0x00;CH=0x00;CCAP0L=0xc0; //當(dāng)CL小于CCAP0L時(shí),輸出為低;大于時(shí),輸出為高。CCAP0H=0x7f; //當(dāng)CL由ff變?yōu)?0溢出時(shí),CCAP0H裝載到CCAP0L中,實(shí)現(xiàn)無干擾的更新PWM。CCAP1L=0xc0; //當(dāng)CL小于CCAP1L時(shí),輸出為低;大于時(shí),輸出為高。CCAP1H=0xc0; //當(dāng)CL由ff變?yōu)?0溢出時(shí),CCAP1H裝載到CCAP1L中,實(shí)現(xiàn)無干擾的更新PWM。CCAPM0=0X42; //使能PWM模式,PWM0=1,ECOM0=1CCAPM1=0X42; //使能PWM模式,PWM1=1,ECOM1=1CR=1; //啟動(dòng)PCA計(jì)數(shù)器while(1) {CCAP0H=RF4432_TxRxBuf[4]; //此處改變占空比CCAP1H=RF4432_TxRxBuf[5];CCAP2H=RF4432_TxRxBuf[6]/2.5;};}
pwm相關(guān)文章:pwm是什么
單片機(jī)相關(guān)文章:單片機(jī)教程
單片機(jī)相關(guān)文章:單片機(jī)視頻教程
單片機(jī)相關(guān)文章:單片機(jī)工作原理
pwm相關(guān)文章:pwm原理
塵埃粒子計(jì)數(shù)器相關(guān)文章:塵埃粒子計(jì)數(shù)器原理
評(píng)論