本文主要介紹數(shù)控直流穩(wěn)壓電源的設計,對其中涉及的D/A轉換、單片機等也有詳細介紹。將單片機數(shù)字控制技術, 有機地融入直流穩(wěn)壓電源的設計中, 就能設計出一款高性價比的多功能數(shù)字化通用直流穩(wěn)壓電源。
AD按鍵采集程序
/**************鍵值判斷*******************************/
if (f>4.590&f<4.650)
{ printf("K1按下\n\n");}
else if (f>4.500&f<4.550)
{ printf("K2按下\n\n");}
else if (f>4.400&f<4.490)
{ printf("K3按下\n\n");}
else if (f>4.200&f<4.350)
{ printf("K4按下\n\n");}
else if (f>3.700&f<4.100)
{ printf("K5按下\n\n");}
else if (f>3.000&f<3.500)
{ printf("K6按下\n\n");}
else
Delay1ms(1000);
電路原理圖如下:
0.jpg (110.42 KB, 下載次數(shù): 163)
下載附件
2018-3-20 17:49 上傳
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.png (32.84 KB, 下載次數(shù): 136)
下載附件
2018-3-20 17:48 上傳
0.png (48.54 KB, 下載次數(shù): 123)
下載附件
2018-3-20 17:49 上傳
單片機源程序如下:
- #include"STC12C5A60S2.H"
- #include"12C5A60S2.H"
- #include "DA.h"
- #include "nokia_5110.h"
- #include "TLC24C02.H"
- void main()
- {
- unsigned int da,n;
- unsigned int ADV,V,ADA,A;
- unsigned int a;
- LCD_init();
- LCD_clear();
- x24c02_init(); //初始化
- LCD_write_chinese_string(0,0,12,2,2,0); // 電壓
- LCD_write_chinese_string(0,2,12,2,0,0); // 電流
- da=x24c02_read(2); //讀出保存的數(shù)據(jù)賦于XX
- while(1)
- {
- /******************************************************************************/
- da5615DA(da); //改變電壓
- DELAY_MS(30); //按鍵延時
-
- /*******************************************************************************/
- Read_init1(0); //采集電壓
- ADV=Read();
- ADV=ADV*1.96;
- V=((float)ADV*11.68);
- /**********************************************************************/
- if((V>220)&(V<560)) // 2.2V~5.6V電壓調整
- {
- V=V-80; //80=-0.8V
- LCD_printc(26,0,V/1000+48);
- LCD_printc(34,0,V%1000/100+48);
- LCD_printc(42,0,'.');
- LCD_printc(50,0,V%100/10+48);
- LCD_printc(58,0,V%10+48);
- LCD_printc(67,0,'V');
- }
- /*************************************************************/
- if((V>570)&(V<800)) // 5.7V~8.0V電壓調整
- {
- V=V-30; //30=-0.3V
- LCD_printc(26,0,V/1000+48);
- LCD_printc(34,0,V%1000/100+48);
- LCD_printc(42,0,'.');
- LCD_printc(50,0,V%100/10+48);
- LCD_printc(58,0,V%10+48);
- LCD_printc(67,0,'V');
- }
- /*************************************************************/
- if((V>850)&(V<1200)) // 8.5V~12.00V電壓調整
- {
- V=V-10; //10=-0.1V
- LCD_printc(26,0,V/1000+48);
- LCD_printc(34,0,V%1000/100+48);
- LCD_printc(42,0,'.');
- LCD_printc(50,0,V%100/10+48);
- LCD_printc(58,0,V%10+48);
- LCD_printc(67,0,'V');
- }
- /*****************************************************************/
- else // 12V~15V電壓調整
- { V=V+30; //30=+0.3V
- LCD_printc(26,0,V/1000+48);
- LCD_printc(34,0,V%1000/100+48);
- LCD_printc(42,0,'.');
- LCD_printc(50,0,V%100/10+48);
- LCD_printc(58,0,V%10+48);
- LCD_printc(67,0,'V');
-
- }
- /******************************************************************************/
- Read_init2(1); //采集電流
- ADA=Read();
- ADA=ADA*1.96;
- A=((float)ADA*3.1);
- A=A-10;
- LCD_printc(26,2,A/100+48);
- LCD_printc(34,2,A%100/10+48);
- LCD_printc(42,2,A%10+48);
- LCD_printc(50,2,'M');
- LCD_printc(58,2,'A');
-
- /******************************************************************************/
- Read_init(2); // AD按鍵掃描 P1.2口
- a=Read();
- n=a*1.96;
- DELAY_MS(10);
- /*****************************切換鍵*************************************/
- if((n>280)&(n<320))
- {
- da=da+2;
- DELAY_MS(30);
- if(da>=260)
- da=30;
-
- }
- /******************************按鍵加**************************************/
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
0.png (6.17 KB, 下載次數(shù): 148)
下載附件
2018-3-20 17:51 上傳
0.png (11.75 KB, 下載次數(shù): 148)
下載附件
2018-3-20 17:53 上傳
所有資料51hei提供下載:
恒壓源程序.rar
(62.83 KB, 下載次數(shù): 226)
2018-3-20 10:50 上傳
點擊文件名下載附件
程序 下載積分: 黑幣 -5
恒壓原電路圖.rar
(276.78 KB, 下載次數(shù): 248)
2018-3-20 10:50 上傳
點擊文件名下載附件
電路圖 下載積分: 黑幣 -5
恒壓源資料 及仿真.rar
(1022.28 KB, 下載次數(shù): 288)
2018-3-20 10:52 上傳
點擊文件名下載附件
資料及仿真 下載積分: 黑幣 -5
|