下面這個程序是應(yīng)用在stc12c2052ad上的pwm程序,測試成功#includesfr 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)時鐘,時鐘輸入源頻率fosc/2。PWM頻率=fosc/2/256/************************************7 6 5 4 3 2 1 0 CIDL - - - cps2 CPS1 CPS0 ECFCIDL: =0時,空閑模式下PCA計數(shù)器繼續(xù)工作;=1時,空閑模式下PCA計數(shù)器停止工作。CPS2,CPS1,CPS0:PCA計數(shù)脈沖選擇。010,定時器0的溢出,可以實現(xiàn)可調(diào)頻率的PWM輸出。ECF: =1時,使能寄存器CCON CF位的中斷;=0時,禁止該功能。***************************************/CL=0x00;CH=0x00;CCAP0L=0xc0; //當(dāng)CL小于CCAP0L時,輸出為低;大于時,輸出為高。CCAP0H=0x7f; //當(dāng)CL由ff變?yōu)?0溢出時,CCAP0H裝載到CCAP0L中,實現(xiàn)無干擾的更新PWM。CCAP1L=0xc0; //當(dāng)CL小于CCAP1L時,輸出為低;大于時,輸出為高。CCAP1H=0xc0; //當(dāng)CL由ff變?yōu)?0溢出時,CCAP1H裝載到CCAP1L中,實現(xiàn)無干擾的更新PWM。CCAPM0=0X42; //使能PWM模式,PWM0=1,ECOM0=1CCAPM1=0X42; //使能PWM模式,PWM1=1,ECOM1=1CR=1; //啟動PCA計數(shù)器while(1) {CCAP0H=RF4432_TxRxBuf[4]; //此處改變占空比CCAP1H=RF4432_TxRxBuf[5];CCAP2H=RF4432_TxRxBuf[6]/2.5;};}
評論