欢迎来到天天文库
浏览记录
ID:36011487
大小:27.37 KB
页数:18页
时间:2019-04-28
《数字式开关电源地PID控制》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、-_/********开关电源的数字化控制******//********所用拓扑为Buck,单片机msp430**********//*****PID算法实现开关电源的恒流、恒压、恒功率功能******//*********糖coffee@uestc************//**********************************************Part1Main.C**********************************************/#include2、G46x.h>#include"LCD12864.h"#include"table.h"#include"GUI.h"#include"deal.h"#include"IndependentKey.h"#include"init.h"voidmain(void){WDTCTL=WDTPW+WDTHOLD;init_clk();init_lcd();GUI_CU();init_ADC12();init_TA();init_TB();initKey();_EINT();while(1){KeyScan();if(Mod3、e==0)//恒压模式{DisplaySetU();Delay(100);ADC();Delay(100);}elseif(Mode==1)//恒流模式{DisplaySetI();Delay(100);ADC();Delay(100);}-_else//恒功率模式{DisplaySetP();Delay(100);ADC();Delay(100);}}}/**********************************************Part2Headfile*********************4、*************************//**********************************************Part2.1LCD12864Headfile**********************************************/#ifndef__LCD12864#define__LCD12864#defineLCD_CSBIT0#defineLCD_SIDBIT2#defineLCD_CLKBIT4#defineLCD_ENP3DIR#defineLCD_C5、TRLP3OUT#defineLCD_CS_Set_highLCD_CTRL6、=LCD_CS#defineLCD_CS_Set_lowLCD_CTRL&=~LCD_CS#defineLCD_SID_Set_highLCD_CTRL7、=LCD_SID#defineLCD_SID_Set_lowLCD_CTRL&=~LCD_SID#defineLCD_CLK_Set_highLCD_CTRL8、=LCD_CLK#defineLCD_CLK_Set_lowLCD_CTRL&=~LCD_CLK#defineLCD_delay9、1voidWrite_Data(unsignedcharbyte,unsignedcharreffer);voidSend_Byte(unsignedcharbyte);voidClearLCD(void);voidPut_Array(unsignedchar*data,unsignedcharlength,unsignedcharaddress);/*************延时**********************/-_voidDelay(unsignedchartime)//主时钟1微秒延时{unsig10、nedinti;i=0x08*time;for(;i;i--);}/************************************************//函数名称:Initial_LCD(void)//函数功能:启动初始化************************************************/voidInitial_LCD(void){LCD_EN11、=LCD_CS+LCD_SID+LCD_CLK;Write_Data(0x30,0);//基本指令集Delay(LCD_dela12、y);Write_Data(0x30,0);Write_Data(0x0C,0);Delay(LCD_delay);Write_Data(0x01,0);//清屏Delay(LCD_delay);Write_Data(0x06,0);Delay(LCD_delay);}/********************************************
2、G46x.h>#include"LCD12864.h"#include"table.h"#include"GUI.h"#include"deal.h"#include"IndependentKey.h"#include"init.h"voidmain(void){WDTCTL=WDTPW+WDTHOLD;init_clk();init_lcd();GUI_CU();init_ADC12();init_TA();init_TB();initKey();_EINT();while(1){KeyScan();if(Mod
3、e==0)//恒压模式{DisplaySetU();Delay(100);ADC();Delay(100);}elseif(Mode==1)//恒流模式{DisplaySetI();Delay(100);ADC();Delay(100);}-_else//恒功率模式{DisplaySetP();Delay(100);ADC();Delay(100);}}}/**********************************************Part2Headfile*********************
4、*************************//**********************************************Part2.1LCD12864Headfile**********************************************/#ifndef__LCD12864#define__LCD12864#defineLCD_CSBIT0#defineLCD_SIDBIT2#defineLCD_CLKBIT4#defineLCD_ENP3DIR#defineLCD_C
5、TRLP3OUT#defineLCD_CS_Set_highLCD_CTRL
6、=LCD_CS#defineLCD_CS_Set_lowLCD_CTRL&=~LCD_CS#defineLCD_SID_Set_highLCD_CTRL
7、=LCD_SID#defineLCD_SID_Set_lowLCD_CTRL&=~LCD_SID#defineLCD_CLK_Set_highLCD_CTRL
8、=LCD_CLK#defineLCD_CLK_Set_lowLCD_CTRL&=~LCD_CLK#defineLCD_delay
9、1voidWrite_Data(unsignedcharbyte,unsignedcharreffer);voidSend_Byte(unsignedcharbyte);voidClearLCD(void);voidPut_Array(unsignedchar*data,unsignedcharlength,unsignedcharaddress);/*************延时**********************/-_voidDelay(unsignedchartime)//主时钟1微秒延时{unsig
10、nedinti;i=0x08*time;for(;i;i--);}/************************************************//函数名称:Initial_LCD(void)//函数功能:启动初始化************************************************/voidInitial_LCD(void){LCD_EN
11、=LCD_CS+LCD_SID+LCD_CLK;Write_Data(0x30,0);//基本指令集Delay(LCD_dela
12、y);Write_Data(0x30,0);Write_Data(0x0C,0);Delay(LCD_delay);Write_Data(0x01,0);//清屏Delay(LCD_delay);Write_Data(0x06,0);Delay(LCD_delay);}/********************************************
此文档下载收益归作者所有