void main(void)
{
uint v,i,dv,temp;
uint flag=1;
WDTCTL = WDTPW + WDTHOLD; //关狗
IO_init();
Initclc();
LcdReset();
show_1602(); //初始化液晶
ADC_Initiate(); //初始化ADC12
TBCCR2=280;
Init_timeB();
xs_zkb(TBCCR2);
while(flag)
{
if(keyin != 0x0f) //键值有改变
{
delay(); //延时消抖
if(keyin != 0x0f) //再次检测按键状态
{
temp=keyin;
while(keyin != 0x0f); //等待按键被放开
switch(temp) //转换键值
{
case 0x07:
ADC12CTL0 |= ADC12SC;
i=mszh(result[1]);
I=100;//启动ADC12
flag=0;
break;
default:
break;
}
}
}
}
while(1)
{
if(i<I)
{
//dv=I-i;
TBCCR2+=1;
// Disp1Char(15,1,'A');
//TBCCR2+=piadjiust(dv);
}
else if(i>I)
{
// dv=i-I;
TBCCR2-=1;
// Disp1Char(15,1,'B');
// TBCCR2-=piadjiust(dv);
}
ADC12CTL0 |= ADC12SC; //启动ADC12
xs_VandI();//显示电压电流
v=mszh(result[0]);//电压采样值
i=mszh(result[1]);//电流采样值
Init_timeB();//输出方波
xs_zkb(TBCCR2);
/**********
if((v<=320)&(i<=200))
{
if(keyin != 0x0f) //键值有改变
{
delay(); //延时消抖
if(keyin != 0x0f) //再次检测按键状态
{
temp=keyin;
while(keyin != 0x0f); //等待按键被放开
switch(temp) //转换键值
{
case 0x0b:
I=I+10;xianshi(I);
break;
case 0x0d:
I=I-10;
break;
default:
break;
}
}
}
}
else
{
TBCCR2=280;
}*****************/
}
}
这是程序的主程序,我在电路中实际测时,不知道为啥电流稳不住,占空比1s就加没了