新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > PIC16F877A和AVR的單片機的PWM輸出程序

        PIC16F877A和AVR的單片機的PWM輸出程序

        作者: 時間:2016-12-02 來源:網絡 收藏
        //在PICC編譯器主,調試通過,PIC16F877APWM信號輸出

        #include
        #define uchar unsigned char
        #define uint unsigned int
        __CONFIG(0x1832);

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

        void delay()
        {
        uint k;
        for(k=0;k<5000;k++);
        }

        void main()
        {
        uchar k;
        T2CON=0X04; //開定時器2
        CCPR1L=0X0F; //PWM匹配初值
        CCP1CON=0X3C; //設置CCP1 模塊為PWM 工作方式,且其工作循環
        PR2=0XFF; //設置PWM 的工作周期
        TRISC=0XFB; //設置CCP1 引腳為輸出方式
        while(1)
        {
        k++;
        CCPR1L=k;
        delay();
        if(k>253)k=1;
        }
        }

        ////////////////////////////////////////////////////////////////////////////////////////////

        下面的是AVR單片機ATMEGA16的PWM信號輸出程序GCC編譯通過

        #include <avr/io.h>
        #define uchar unsigned char
        #define uint unsigned int

        void delay(uint ms)
        {
        uint i,j;
        for(i=0;i {
        for(j=0;j<1000;j++);
        }
        }

        void main()
        {
        uint i;
        DDRD|=0Xf0;
        PORTD=0x0f;
        TCCR1A=0X63;
        TCCR1B=0X13;

        OCR1A=124;
        OCR1B=31;

        while(1)
        {

        i++;
        OCR1B=i;
        delay(20);
        if(i>123)i=1;

        }

        }



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 任丘市| 贡嘎县| 民乐县| 若羌县| 睢宁县| 沙湾县| 资兴市| 绥化市| 富川| 东莞市| 农安县| 新田县| 台江县| 霍林郭勒市| 曲麻莱县| 昌图县| 故城县| 伊春市| 牙克石市| 蚌埠市| 沭阳县| 黄山市| 阿拉善右旗| 乌拉特后旗| 资兴市| 旬阳县| 紫阳县| 德保县| 仙游县| 莆田市| 子洲县| 青州市| 瑞金市| 兰溪市| 镇宁| 乡宁县| 醴陵市| 叙永县| 洪湖市| 邵东县| 乡城县|