新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > PIC16F877A例程---PWM

        PIC16F877A例程---PWM

        作者: 時間:2016-11-24 來源:網絡 收藏
        //PWM波形輸出實驗

        // 晶振:4MHz
        // CPU:PIC16F877A

        本文引用地址:http://www.104case.com/article/201611/321025.htm

        #include //調用頭文件
        __CONFIG(0x3F31); //芯片配置字
        #defineucharunsignedchar

        #defineuintunsignedint
        uchar a;

        void CCP1INIT() ;
        voiddelayms(uint z);
        voidkeyscan();

        void main(void)
        {
        CCP1INIT();
        T2CON=0X04;
        do
        {
        keyscan();
        }

        while(1);
        }

        void CCP1INIT()
        {
        PORTB=0xff;
        TRISB=0xff;
        RBPU=0;
        a=0X7F;
        CCPR1L=a;
        CCP1CON=0X3C;
        INTCON=0X00;
        PR2=0XFF;
        TRISC=0XFB;
        }

        //通過按鍵分別調大和調小(通過示波器觀看PWM波形的變化)
        voidkeyscan()
        {
        TRISB=0xff;
        if(RB1==0)

        {

        delayms(10);
        if(RB1==0)

        {

        a-=10;

        CCPR1L=a;

        }
        while(RB1==0);

        }
        if(RB2==0)

        {

        delayms(10);
        if(RB2==0)

        {

        a+=10;

        CCPR1L=a;

        }
        while(RB2==0);

        }
        }

        ////////////延時子函數//////////////////
        void delayms(uint z)

        {

        uint x,y;

        for(x=z;x--;x>0)

        for(y=40;y--;y>0);

        }



        關鍵詞: PIC16F877APW

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 柏乡县| 休宁县| 深泽县| 舟曲县| 万荣县| 长汀县| 平远县| 镇安县| 大埔区| 仙居县| 资中县| 汶川县| 东兰县| 雷波县| 嘉禾县| 涟源市| 江津市| 雅江县| 青岛市| 湘阴县| 辽宁省| 射阳县| 柏乡县| 常宁市| 兖州市| 游戏| 乌兰县| 平果县| 卓资县| 蓬安县| 津南区| 商丘市| 宝鸡市| 崇礼县| 卓尼县| 新闻| 白沙| 南陵县| 枣庄市| 雷州市| 临沭县|