新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > stc12c5a60s2單片機spwm發生程序帶仿真文件

        stc12c5a60s2單片機spwm發生程序帶仿真文件

        作者: 時間:2016-11-30 來源:網絡 收藏
        包含文件和仿真文件的下載地址:http://www.51hei.com/f/stc12c5a60s2_spwm.zip

        下面是主程序部分:
        #include
        #include

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

        #define uint unsigned int

        uchar index;
        uchar a;
        void init_pca(void)//pca計數器初始化函數

        {

        CMOD=0x04;//計數器0的溢出為PCA計數器的時鐘源

        CCON=0x00;

        CCAPM0=0x42;//8位PWM輸出,無中斷

        CL=0x00;//清零pca計數器

        CH=0x00;

        CCAP0L=pwm[0]; //初始化spwm輸出的占空比

        CCAP0H=pwm[0];

        CR=1;//運行adclass=0&app_id=0&c=news&cf=1001&ch=0&di=128&fv=17&is_app=0&jk=25357d4a26439b28&k=pca&k0=pca&kdi0=0&luki=3&n=10&p=baidu&q=98059059_cpr&rb=0&rs=1&seller_id=1&sid=289b43264a7d3525&ssp2=1&stid=0&t=tpclicked3_hc&tu=u1831118&u=http%3A%2F%2Fwww%2E51hei%2Ecom%2Fmcu%2F2118%2Ehtml&urlid=0" id="5_nwl" mpid="5" target="_blank">pca計數器

        }

        void init_timer(void)//計數器初始化函數

        {

        TMOD= 0x12; //計數器0工作在方式模式2,計數器1工作在方式1

        TH0 = 0xFF;//T0的計數值為5,把時鐘源5分頻

        TL0 = 0xFF;

        TH1 = 0xF6;//T1的計數值為625,若是12M晶振,則中斷頻率為12M/625=1920HZ,正弦頻率為1920/32=600HZ,即600/12=50HZ

        TL1 = 0xA0; //T1的計數值低位

        AUXR=0x80;//計數器均工作在8051速度

        //ET0 = 1; //開中計數器0斷

        ET1 = 1; //開計數器1中斷

        TR0 = 1; //開啟計數器0

        TR1 = 1; //開計數器1

        }

        void int_timer1(void) interrupt 3//計數器1中斷函數

        {

        CR=0;
        a=a+1;
        index++; //查表索引

        TH1=0xFD; //重裝計數值

        TL1=0x8F;

        CCAP0H=pwm[index%32]*2;//改變pwm的占空比

        CR=1;

        }
        void main()
        {a=0;
        EA=1;//開總中斷
        init_pca();
        init_timer();
        while(1);
        //-.-//
        }



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 通江县| 阳高县| 镇远县| 逊克县| 新宾| 浦北县| 嘉义县| 株洲市| 柳河县| 墨竹工卡县| 新昌县| 友谊县| 小金县| 拉孜县| 东兰县| 固始县| 平阴县| 江山市| 静海县| 楚雄市| 修武县| 溧水县| 麦盖提县| 眉山市| 嘉祥县| 图片| 广河县| 峡江县| 墨玉县| 建德市| 两当县| 镇平县| 镇远县| 凌源市| 定陶县| 安阳县| 神农架林区| 同德县| 会宁县| 宁城县| 海阳市|