搜索
bottom↓
回复: 6

关于PIC18Fxx31系列的功率控制PWM模块和CCP模块的使用问题

[复制链接]

出0入0汤圆

发表于 2009-7-10 14:57:35 | 显示全部楼层 |阅读模式
最近要使用PIC18F2331做一个逆变器,把蓄电池的110伏电转化为220伏,50Hz的交流电,功率为2000W。一共有两个模块可以用:功率PWM和CCP。功率PWM带有故障输入和死去插入功能,可是我觉得使用很受限制。

    逆变器使用SPWM的全桥控制,开关管是IGBT,不知大家有何建议。我网上找了很多也没有关于这方面的资料,郁闷中!

出0入0汤圆

发表于 2009-7-10 15:01:09 | 显示全部楼层
我有相关资料,

出0入0汤圆

 楼主| 发表于 2009-7-10 15:40:48 | 显示全部楼层
【1楼】 cqgxh :

     能否共享一下,谢谢了!!

出0入0汤圆

 楼主| 发表于 2009-7-11 10:55:18 | 显示全部楼层
期待有人能回答一下!

出0入0汤圆

发表于 2009-7-11 11:08:06 | 显示全部楼层
#include <pic.h>
const unsigned int Sin[100] = {100,100,101,103,105,107,109,112,116,120,124,128,133,139,144,150,157,163,170,178,185,193,202,210,219,229,238,248,258,268,279,289,300,312,323,334,346,358,370,382,394,407,419,432,445,457,470,483,496,509,521,534,547,560,572,585,598,610,623,635,647,659,671,683,694,705,717,728,738,749,759,769,779,788,798,807,815,824,832,839,847,854,860,867,873,878,884,889,893,897,901,905,908,910,912,914,916,917,917,917};

static unsigned int step;
unsigned long int longbuf;
unsigned int tempint;
unsigned char tempchar, datamul;
bit Fbit;

unsigned char adcnt;

void main (void)
{
//-------------------------------------var initlize.
        step = 49;
        Fbit = 1;
        datamul = 255;                                                //must be low 63.
//-------------------------------------initlize.
        PORTB = 0xFF;
        TRISB = 0x00;       

        TRISA0 = 1;
        TRISC2 = 0;   // 883的RC2

        TMR2 = 0;
        T2CON = 0x08;       
        PR2 = 251;                //100;   //频率修改    251-----51.10HZ   
        TMR2IF = 0;
        TMR2IE = 1;
       
        CCP1CON = 0x8F;
        PWM1CON = 0x8f;      //死区控制   84  ---0.8US      85   ----1US
        ECCPAS = 0x05;
        TMR2ON = 1;

        ADCON0 = 0xC1;
        ADCON1 = 0x04;
        ADIF = 0;
        ADIE = 0;

        PEIE = 1;
        GIE = 1;
       
//-------------------------------------main code.
        while(1)
        {
                NOP();

                if(adcnt > 32)
                {
                        adcnt = 0;
                        ADIF = 0;
                        GODONE = 1;
                        NOP();
                        NOP();
                        NOP();
//                        if(ADIF == 1)                       //  AD控制
//                                datamul = ADRES;               //  AD控制
                }

                adcnt ++;
        }
}

void interrupt ISR (void)
{
        if (TMR2IE && TMR2IF)
        {
                TMR2IF = 0;
//                 = 1;
                if (Fbit)
                {
                        step ++;
                        if(step == 100)
                        {
                                Fbit = 0;
                                //step --;
                        }
                }
                else
                {
                        step --;
                        if (step == 1)
                        {
                                Fbit = 1;
                        //        step ++;
                        }
                }

                longbuf = Sin[step -1];

                if (step > 50)
                {
                        longbuf = (longbuf - 509) * datamul;
                        tempint = longbuf >> 8;
                        tempint += 509;
                }       
                else
                {
                        longbuf = (509 -longbuf) * datamul;
                        tempint = longbuf >> 8;
                        tempint = 509 - tempint;
                }

                //longbuf =longbuf * datamul;
                //tempint = longbuf >> 8;                        //datamul <= 255;

                CCPR1L = tempint >> 2;
                tempchar = tempint;
                tempchar <<= 4;
                CCP1CON = (CCP1CON & 0xCF) | (tempchar & 0x30);

                RB4 = 0;
        }
}

出0入0汤圆

 楼主| 发表于 2009-7-11 15:50:46 | 显示全部楼层
【4楼】 cqgxh

     十分感谢您的帮助!

出0入0汤圆

发表于 2015-8-10 21:19:04 | 显示全部楼层
我也学习学习,多谢了
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-1 07:52

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表