buck电路

#include "msp430g2553.h"
#include "12864.h"
#include "ADC10new.h"
#include "delay.h"
#include "DAC5638.h"
#include "bottom.h"


///
double DA_vol=0.56*1.042;
double u=12,i=12,p=0,a=0.05;
int flag=0;


void main(void)
{


///初始化及io配置//


                WDTCTL = WDTPW +WDTHOLD; // Stop watchdog timer
                BCSCTL1 = CALBC1_1MHZ;
                DCOCTL =  CALDCO_1MHZ;
                ADC10_Init();
                LCD_init();
                init_5638();






               P1DIR = 0xFF;
               P1OUT = 0xff;




               P2DIR &=~ (BIT0+BIT1+BIT2);
               P2REN|=(BIT0+BIT1+BIT2);
               P2OUT|=(BIT0+BIT1+BIT2);
               P2IE|=(BIT0+BIT1+BIT2);
               P2IES|=(BIT0+BIT1+BIT2);
               P2IFG&=~(BIT0+BIT1+BIT2);
               _EINT();































       while(1){








           AD10_Single_channel();
           write_5638_A(DA_vol);
           write_5638_B(1.2);


           u=result[0];
           i=result[1];
           u=u*7;
           u=(u+0.09)/1.10;
           u=u*1.01-0.02;




           i=i/3.0;
           i=1.33*i+0.01;
           p=u*i;


          if(i>1.2)
           {
              DA_vol=0;
              P3DIR|=0X80;
              P3OUT|=0X80;
           }








//显示/
          LCD_add_xy(2,4);
          LCD_ASCALLS("5638PUT-V");
          LCD_add_xy(2,60);
          LCD_double(DA_vol);
          LCD_add_xy(2,85);
          LCD_ASCALLS("V");


              LCD_add_xy(4,4);
              LCD_ASCALLS("OUTPUT-V");
              LCD_add_xy(4,60);
              LCD_double(u);
              LCD_add_xy(4,85);
              LCD_ASCALLS("V");


              LCD_add_xy(6,4);
              LCD_ASCALLS("OUTPUT-I");
              LCD_add_xy(6,60);
              LCD_double(i);
              LCD_add_xy(6,85);
              LCD_ASCALLS("A");


              LCD_add_xy(8,4);
              LCD_ASCALLS("OUTPUT-P");
              LCD_add_xy(8,60);
              LCD_double(p);
              LCD_add_xy(8,85);
              LCD_ASCALLS("W");











             if(flag%2==1)


             {
                 delay_ms(100);
                 LCD_add_xy(1,50);
                 LCD_ASCALLS("mod0.1");
                 a=0.01*1.042;
             }
             else
             {
                 delay_ms(100);
                 a=0.05*1.042;
                 LCD_add_xy(1,50);
                 LCD_ASCALLS("mod0.5");
             }


///


       }






}


#pragma vector=PORT2_VECTOR
__interrupt void port_2(void)
{
   fun();
   P2IFG&=~0X07;
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值