找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5746|回復: 12
收起左側

DIY數(shù)控電源

  [復制鏈接]
ID:160780 發(fā)表于 2017-1-18 16:06 | 顯示全部樓層 |閱讀模式
簡單的一個數(shù)控電源,使用51作為主芯片,DA芯片用的是八位的DAC0832.誤差不超過0.01V,三個按鍵控制加減電壓和功能設定,很簡單且實用?刂品奖,精準度適合平時自己使用。下面是仿真圖和程序。
0.png 0.png

單片機源程序如下:
  1. #include<reg52.h>
  2. #include<math.h>
  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. uchar code table[]={
  6. 0xc0,0xf9,0xa4,0xb0,
  7. 0x99,0x92,0x82,0xf8,
  8. 0x80,0x90,0x88,0x83,
  9. 0xc6,0xa1,0x86,0x8e};
  10. sbit key1=P3^4;                 //加
  11. sbit key2=P3^5;                 //減
  12. sbit key3=P3^6;                 //模式設置
  13. uint flag;  //標志位
  14. uchar num1,z,x;           //x顯示整數(shù)位,z顯示小數(shù)位
  15. float num;
  16. //num1每次+17,即加1v,num每次加1.7,即加0.1v ,num1和nm都是給DA賦值的
  17. void delayms(uint xms)
  18. {
  19.    uint i,j;
  20.    for(i=xms;i>0;i--)
  21.     for(j=110;j>0;j--);
  22. }
  23. void shuzhi()
  24. {
  25.   if(num>=17)
  26.   {
  27.     num=0;
  28.         num1=num1+17;
  29.   }
  30.   if(num1>=255)
  31.   {
  32.     num1=0;
  33.   }
  34.   if(num<=0)
  35.   {
  36.     num=0;
  37.   }
  38. }

  39. void KEY1()
  40. {
  41.   if(key1==0)
  42.   {         
  43.     delayms(10);
  44.     if(key1==0)
  45.         {
  46.    
  47.     num=num+1.7;
  48.         while(!key1);
  49.         }
  50.   }
  51. }
  52. void KEY2()
  53. {
  54. if(key1==0)
  55. {         
  56.    delayms(10);
  57.    if(key1==0)
  58.    {
  59.    num1=num1+17;
  60.            while(!key1);
  61.    }
  62. }
  63. }
  64. void KEY3()
  65. {
  66.   if(key2==0)
  67.   {
  68.     delayms(10);
  69.         if(key2==0)
  70.         {
  71.     num=num-1.7;
  72.         while(!key2);
  73.         }
  74.   }
  75. }

  76. void KEY4()
  77. {
  78.   if(key2==0)
  79.   {       
  80.     delayms(10);
  81.     if(key2==0)
  82.         {
  83.     num1=num1-17;
  84.         while(!key2);
  85.         }
  86.   }
  87.   
  88. }
  89. void set_v()
  90. {
  91.   P1=num1+num;//賦值給P1口
  92.   if(flag==1)
  93.   {
  94.             KEY2();
  95.          KEY4();
  96.   }
  97.   if(flag==2)
  98.   {
  99.            KEY1();
  100.         KEY3();
  101.   }
  102. }
  103. void display() //顯示
  104. {
  105.    x=num1/17;
  106.    z=num/1.7;
  107.    P0=table[x];
  108.          P2=0X40;
  109.    delayms(10);

  110.            P0=0x7f;
  111.         P2=0X40;
  112.    delayms(10);
  113.             
  114.    P0=table[z];
  115.            P2=0X80;
  116.    delayms(10);
  117. }

  118. void main()
  119. {


  120.   while(1){
  121.    display();
  122.    shuzhi();
  123.    set_v();       
  124.   
  125.    if(key3==0)
  126.    {
  127.      delayms(10);
  128.          if(key3==0)
  129.          {
  130.            flag++;
  131.            if(flag>2){flag=0;}
  132.          }
  133. ……………………

  134. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
數(shù)控電源.zip (79.29 KB, 下載次數(shù): 149)



評分

參與人數(shù) 2黑幣 +9 收起 理由
mchord + 1 很給力!
nhdjd + 8 很給力!

查看全部評分

回復

使用道具 舉報

ID:74784 發(fā)表于 2017-1-18 19:53 | 顯示全部樓層
本帖最后由 lxa0 于 2017-1-18 19:54 編輯

是樓主最新實驗出來的?
在這里看見過不少數(shù)控電源
但是都不大理想
不知這個如何?

樓主可否直接上電路圖看看。
回復

使用道具 舉報

ID:185779 發(fā)表于 2017-4-3 17:21 | 顯示全部樓層
有沒驗證過性能如何?
回復

使用道具 舉報

ID:216120 發(fā)表于 2017-6-30 15:42 | 顯示全部樓層
有沒有數(shù)顯的呢
回復

使用道具 舉報

ID:216120 發(fā)表于 2017-6-30 15:43 | 顯示全部樓層
有沒有數(shù)顯呢
回復

使用道具 舉報

ID:220082 發(fā)表于 2017-7-16 17:21 | 顯示全部樓層

有沒有數(shù)顯的呢
回復

使用道具 舉報

ID:223986 發(fā)表于 2017-8-2 11:32 | 顯示全部樓層
樓主可否直接上電路圖看看。?
回復

使用道具 舉報

ID:151000 發(fā)表于 2017-8-6 08:56 | 顯示全部樓層
樓主只有程序嗎?能不能把原理圖也分享出來呢?謝謝!
回復

使用道具 舉報

ID:239098 發(fā)表于 2017-10-15 00:23 | 顯示全部樓層
樓主上圖預覽
回復

使用道具 舉報

ID:159139 發(fā)表于 2017-10-17 10:38 來自手機 | 顯示全部樓層
下載學習學習,謝謝分享。
回復

使用道具 舉報

ID:249545 發(fā)表于 2017-12-9 11:04 | 顯示全部樓層
老師你好,請給我們同學貼完整電路圖吧
回復

使用道具 舉報

ID:137704 發(fā)表于 2017-12-14 15:26 | 顯示全部樓層
老師你好,請給我們同學貼完整電路圖吧
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表