以降壓控制器XL1509芯片為核心器件,設計并制作一個降壓型直流開關穩壓電源。額定輸入直流電壓為12V時,額定輸出直流電壓為5V,輸出電流最大值為2.0A 。具有過流保護功能,動作電流1.5A±0.1;輸出電壓程控可調,調節范圍:3-7V。 要求: (1)額定輸入電壓12V下,輸出電壓偏差<100mV; (2)額定輸入電壓12V下,最大輸出電流:>2.0A; (3)具有過流保護功能,動作電流1.5A±0.1; (4)實現輸出電壓程控可調,調節范圍3-7V,步進0.1V
電路原理圖如下:
捕獲7.PNG (41.78 KB, 下載次數: 99)
下載附件
2018-12-20 20:53 上傳
捕獲8.PNG (34.61 KB, 下載次數: 93)
下載附件
2018-12-20 20:53 上傳
R3是DA,R4過流保護,R5是采樣電阻,接AD
單片機源程序如下:
- #include "sys.h"
- #include "delay.h"
- #include "usart.h"
- #include "led.h"
- #include "lcd.h"
- #include "adc.h"
- #include "dac.h"
- #include "key.h"
- int main(void)
- {
- u16 adcx;
- float temp;
- u8 t=0;
- u16 dacval=3300;
- u8 key;
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設置系統中斷優先級分組2
- delay_init(168); //初始化延時函數
- uart_init(115200); //初始化串口波特率為115200
-
- LED_Init(); //初始化LED PD.12
- Adc_Init(); //adc初始化 PA.5
- KEY_Init(); //按鍵初始化
- Dac1_Init(); //DAC通道1初始化 PA.4
- DAC_SetChannel1Data(DAC_Align_12b_R,dacval);//初始值為0
-
- while(1)
- {
- //GPIO_SetBits(GPIOD,GPIO_Pin_2);
- //程控輸出
- if(KEY==1)
- {
- //LED=!LED;
- if(dacval>1500)
- dacval-=200;
- else if(dacval==1500)
- dacval=3300;
- delay_ms(500);
- }
- Dac1_Set_Vol(dacval);
- adcx=Get_Adc_Average(ADC_Channel_5,10); //得到ADC轉換值
- temp=(float)adcx*(3.3/4095); //得到ADC電壓值*/
- if (temp >= 0.75)
- {
- GPIO_ResetBits(GPIOD,GPIO_Pin_2);
- }
- else
- {
- GPIO_SetBits(GPIOD,GPIO_Pin_2);
- }
- }
- }
- /*ADC用法
- adcx=Get_Adc_Average(ADC_Channel_5,10); //得到ADC轉換值
- temp=(float)adcx*(3.3/4096); //得到ADC電壓值*/
- /*DAC用法
- DAC_SetChannel1Data(DAC_Align_12b_R, dacval);//設置DAC值
復制代碼
所有資料51hei提供下載:
DC POWER_guo.7z
(304.6 KB, 下載次數: 124)
2018-12-18 23:35 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|