#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;
}
#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;
}