新聞中心

        stc單片機(jī)IO配置與PWM

        作者: 時(shí)間:2016-12-01 來(lái)源:網(wǎng)絡(luò) 收藏

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

        由于所有模塊共用僅有的PCA定時(shí)器,所有它們的輸出頻率相同。各個(gè)模塊的輸出占空

        是獨(dú)立變化的,與使用的捕獲寄存器[EPCnL,CCAPnL]有關(guān)。當(dāng)寄存器寄存器CL的值小于[EPCnL,CCAPnL]時(shí),輸出為低;當(dāng)寄存器CL的值等于或大于[EPCnL,CCAPnL]時(shí),輸出為高。當(dāng)CL的值由FF變?yōu)?0溢出時(shí),[EPCnH,CCAPnH]的內(nèi)容裝載到[EPCnL,CCAPnL]中。這樣就可實(shí)現(xiàn)無(wú)干擾地更新PWM。要使能PWM模式,模塊CCAPMn寄存器的PWMn和ECOMn位必須置位。由于PWM是8位的,所以:PWM的頻率=:PCA時(shí)鐘輸入源頻率/256PCA時(shí)鐘輸入源可以從以下8種中選擇一種:SYSclk,SYSclk/2,SYSclk/4,SYSclk/6,SYSclk/8,SYSclk/ 2,定時(shí)器0的溢出,ECI/P3.4輸入。。

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

        由計(jì)算公式38000=SYSclk/256,得到外部時(shí)鐘頻率SYSclk=38000 x 256 x=9,728,000

        如果要實(shí)現(xiàn)可調(diào)頻率的PWM輸出,可選擇定時(shí)器0的溢出率或者ECI腳的輸入作為PCA/PWM的時(shí)鐘輸入源

        當(dāng)EPCnL = 0及CCAPnL=0x00H時(shí),PWM固定輸出高

        當(dāng)EPCnL = 1及CCAPnL=0xFFH時(shí),PWM固定輸出低

        例:

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

        #definePCA_SOURCE_SELECT1//選擇PCA的基準(zhǔn)時(shí)鐘源。

        //0:系統(tǒng)時(shí)鐘Fosc/12。

        //1:系統(tǒng)時(shí)鐘Fosc/2。

        //2:定時(shí)器0的溢出。

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

        //4:系統(tǒng)時(shí)鐘Fosc。

        //5:系統(tǒng)時(shí)鐘Fosc/4。

        //6:系統(tǒng)時(shí)鐘Fosc/6。

        //7:系統(tǒng)時(shí)鐘Fosc/8。

        voiden_PCA(void)

        {

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

        CL= 0x00;//清除PCA計(jì)數(shù)機(jī)

        CH= 0x00;

        CR= 1;//啟動(dòng)PCA計(jì)數(shù)機(jī) CL 00->FF

        }

        void initPWM()

        {

        PWM=0x00;

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

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

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

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

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

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

        en_PCA();//打開(kāi)PMW

        }

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

        RXD為接收數(shù)據(jù)的引腳,TXD為發(fā)送數(shù)據(jù)的引腳

        PMW0 輸出全1

        PCA_PWM0=0x00;
        CCAP0H = 0x00;


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


        上一頁(yè) 1 2 下一頁(yè)

        關(guān)鍵詞: stc單片機(jī)IO配置PW

        評(píng)論


        技術(shù)專(zhuān)區(qū)

        關(guān)閉
        主站蜘蛛池模板: 巍山| 汾西县| 梁山县| 西充县| 卓资县| 宜兰县| 岱山县| 遂宁市| 高青县| 年辖:市辖区| 平利县| 方山县| 磐石市| 永嘉县| 仁化县| 衡山县| 上思县| 苍山县| 沙坪坝区| 长乐市| 闸北区| 尚志市| 太仓市| 衡水市| 九龙县| 昌吉市| 伊宁县| 信阳市| 军事| 得荣县| 灯塔市| 永仁县| 洪泽县| 涪陵区| 贵德县| 鄂尔多斯市| 沙河市| 望奎县| 禹城市| 延津县| 年辖:市辖区|