久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 15264|回復: 6
打印 上一主題 下一主題
收起左側

根據論壇圖紙制作的LM358+單片機可調電源 附源程序

  [復制鏈接]
跳轉到指定樓層
樓主
根據51hei論壇上的圖紙原理做的可調電源實測0.2v-11.5v可調,步進0.1v。本程序沒有用查表方式給tlc5615輸入AD值(費時間,懶。。。),所以輸入電壓與輸出電壓有誤差。
源圖紙用的是89c51單片機,本人用的15w408as單片機,自帶AD功能,可以將輸出的電壓返回單片機處理。顯示部分沒有用數碼管,感覺沒有OLED連線方便(IIC接口)
原理圖用的OPA2107運放,我買了兩個這個運放不能用,不知道我買的是壞的還是本身這個電路有問題,后面改用LM358可以正常使用。此電路我用兩個LM358,其中一個用來放大檢測電流電阻上的電壓,再輸入到單片機的AD腳進行計算處理。
此電路有電流檢測功能,但是程序里沒有設置短路保護功能。
實際做下來也不費勁,但是這個圖紙經我驗證有以下缺點:
1,電流只能達到600ma,再高場效應管發熱嚴重,輸入功率能達到40w而輸出功率只有5-8w。
2,效率不高,感覺效率能有50%就很不錯了,而且電流過大造成場館有異響。
3,調電壓的時候測量TL431的基準電壓2.5v,這個電壓數值會隨著電壓的調節略微變動,造成輸出誤差增大。給單片機的基準電壓我用的是ASM1117的          3.3v做基準電壓,感覺這個芯片的穩壓要比TL431好。

本人也就是普通的愛好者,一些東西還是靠論壇來實現的。有什么不對的地方希望指點一下。

制作出來的實物圖如下:


電路原理圖如下:


單片機源程序如下:
  1. #include <STC15F2K60S2.H>
  2. #include "OLED.h"

  3. #include "TLC5615.h"
  4. #include "EC11.h"
  5. #define ADC_POWER     0x80
  6. #define ADC_FLAG      0x10
  7. #define ADC_START     0x08
  8. #define ADC_SPEEDLL   0x00
  9. #define ADC_SPEEDL    0x20
  10. #define ADC_SPEEDH    0x40
  11. #define ADC_SPEEDHH   0x60

  12. unsigned int EC11_Value1;
  13. unsigned char ch=2;   //定義通道0位P1^0;1為P1^1;2為P1^2;
  14. float voltage=0, voltage1=0; //??????
  15. unsigned int Power1,ElectricC,RefAd=0,vin=0,PowerA=0,Wat=0;//P1^0,Power為電壓值,P1^2,refad為參考電壓3.3v的ad值.P1^1為采樣AD值
  16. /******************顯示函數**********************/
  17. void OLEDDisplay()
  18. {
  19.                         //設定電壓值
  20.          
  21.                 OLED_DisplayCharacter(1, 9, (PowerSet+1)/100+'0', OLED_NOT_INVERT_COLOR);
  22.                 OLED_DisplayCharacter(1, 10, (PowerSet+1)%100/10+'0', OLED_NOT_INVERT_COLOR);
  23.                 OLED_DisplayCharacter(1, 12, (PowerSet+1)%10+'0', OLED_NOT_INVERT_COLOR);
  24.                 //顯示電壓值
  25.                 OLED_DisplayCharacter(2, 9, Power1/1000+'0', OLED_NOT_INVERT_COLOR);
  26.                 OLED_DisplayCharacter(2, 10, Power1%1000/100+'0', OLED_NOT_INVERT_COLOR);
  27.                 OLED_DisplayCharacter(2, 12, Power1%100/10+'0', OLED_NOT_INVERT_COLOR);
  28.                 OLED_DisplayCharacter(2, 13, Power1%100%10+'0', OLED_NOT_INVERT_COLOR);
  29.                 //顯示電流值
  30.                 OLED_DisplayCharacter(3, 10, ElectricC/1000+'0', OLED_NOT_INVERT_COLOR);
  31.                 OLED_DisplayCharacter(3, 12, ElectricC%1000/100+'0', OLED_NOT_INVERT_COLOR);
  32.                 OLED_DisplayCharacter(3, 13, ElectricC%100/10+'0', OLED_NOT_INVERT_COLOR);
  33. //                //顯示編碼器值
  34. //                OLED_DisplayCharacter(3, 6, EC11_Value/1000+'0', OLED_NOT_INVERT_COLOR);
  35. //                OLED_DisplayCharacter(3, 7, EC11_Value%1000/100+'0', OLED_NOT_INVERT_COLOR);
  36. //                OLED_DisplayCharacter(3, 8, EC11_Value%100/10+'0', OLED_NOT_INVERT_COLOR);
  37. //                OLED_DisplayCharacter(3, 9, EC11_Value%10+'0', OLED_NOT_INVERT_COLOR);
  38. //                OLED_DisplayCharacter(3, 11, KeyNumber+'0', OLED_NOT_INVERT_COLOR);
  39. }
  40. /**********************主函數*******************************/
  41. void main()
  42. {
  43.         unsigned int i;
  44.         OLED_Init();//初始化OLED        
  45.   P1ASF=0x07;//0x70=00000111,用P1^0,1^1,1^2三個IO口當ADC口
  46.         ADC_RES=0;
  47.         ADC_CONTR=ADC_POWER|ADC_SPEEDLL | ADC_START | ch;
  48.         for(i=0;i<1000;i++);
  49.         IE=0xA0;
  50.         EC11_Value1=EC11_Value;
  51.         while(1)
  52.         {
  53.                 OLEDDisplay(); //掃描顯示函數
  54.         
  55.                 if(KeyNumber==1)
  56.                 {
  57.                         OLED_DisplayText(0, 6, "開", OLED_NOT_INVERT_COLOR);
  58.                         if(EC11_Value!=EC11_Value1)
  59.                         TLC5615DateOut(EC11_Value);
  60.                    EC11_Value1=EC11_Value;
  61.                         }
  62.                 else
  63.                 {
  64.                         OLED_DisplayText(0, 6, "關", OLED_NOT_INVERT_COLOR);
  65.                         TLC5615DateOut(0);
  66.                 }
  67.           }
  68.                
  69.         
  70. }

  71. /****************************ADC中斷函數***********************/
  72. void adc_int() interrupt 5   //ADC中斷
  73. {
  74.         static unsigned char i;
  75.         unsigned int j=0;
  76.         EC11_Display();  //掃描編碼器函數
  77.         ADC_CONTR &=!ADC_FLAG;//清除中斷
  78.         if(ch==0)
  79.         {
  80.            RefAd=(ADC_RES*4+ADC_RESL);   //P1^2的參考AD值保存到RefAD中,這里用ASM1117的3.3v穩壓做參考AD值
  81.         }
  82.         if(ch==1)
  83.         {
  84.                  vin=(ADC_RES*4+ADC_RESL);                //讀取P1^1的值保存在vin中,這里讀到的是輸出電壓經10K電阻分壓得到的電壓值。
  85.                 voltage1=(3.318*vin)/RefAd;        
  86.      Power1=voltage1*1000;               
  87.         }
  88.         if(ch==2)                //讀取P1^0的AD值保存在PowerAD中,計算經運放過來的放大電壓,算出電流
  89.         {
  90.            PowerA=(ADC_RES*4+ADC_RESL);
  91.      voltage=(3.318*PowerA)/RefAd;        
  92.      ElectricC=voltage*200;               
  93.         }

  94.         ch=i;
  95.   i++;
  96.         if(i==10)i=0;//防止AD值過快有跳動

  97.         ADC_RES=0;
  98.         ADC_RESL=0; //AD數據位清零
  99.         ADC_CONTR=ADC_POWER |ADC_SPEEDLL | ADC_START | ch;        //啟動ADC中斷
  100.         

  101. }
復制代碼

所有代碼51hei提供下載:
OLED顯示數字電壓.zip (90.92 KB, 下載次數: 143)

評分

參與人數 1黑幣 +100 收起 理由
admin + 100 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏14 分享淘帖 頂1 踩
回復

使用道具 舉報

沙發
ID:169891 發表于 2021-6-15 08:54 | 只看該作者
一直想搞一個可調電源,這下有機會了
回復

使用道具 舉報

板凳
ID:588737 發表于 2022-11-9 14:13 | 只看該作者
你好樓主 這個原理圖在哪找的,方便分享嗎
回復

使用道具 舉報

地板
ID:703081 發表于 2023-2-16 10:03 | 只看該作者

非常感謝樓主的無私奉獻!
回復

使用道具 舉報

5#
ID:1075398 發表于 2023-5-9 08:47 | 只看該作者
實物圖片和原理圖和程序都不一致,對于新手小白還是有一定的障礙呀
回復

使用道具 舉報

6#
ID:102702 發表于 2023-5-9 20:39 | 只看該作者
原理圖是數碼管的,但實物圖是OLED的,都不一致啊
回復

使用道具 舉報

7#
ID:227484 發表于 2023-9-25 11:01 | 只看該作者
是源程序嗎?這個是數碼管程序
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 美女久久 | 毛片毛片毛片毛片毛片 | 米奇7777狠狠狠狠视频 | 国产我和子的乱视频网站 | 国产精品毛片一区二区在线看 | 亚洲va欧美va人人爽午夜 | 毛片韩国| 中午字幕在线观看 | 在线观看免费av网 | 91av在线免费| 自拍 亚洲 欧美 老师 丝袜 | 日韩波多野结衣 | 国产激情免费视频 | 久久久久久高潮国产精品视 | 欧美成人a∨高清免费观看 欧美日韩中 | 91精品无人区卡一卡二卡三 | 在线免费观看a级片 | 成人久久 | 中文字幕高清在线 | 精品在线免费观看视频 | www.久久久久久久久久久久 | 精品欧美| 久久国产精品免费一区二区三区 | 欧美激情一区二区 | 久久久久久久一区二区 | 狠狠草视频 | 久久久久久av | 亚洲在线高清 | 91天堂网 | 亚洲www啪成人一区二区 | 日韩欧美视频网站 | 国产精品亚洲精品日韩已方 | 一区二区三区高清 | 久草网视频| 色片在线观看 | 久久精品亚洲成在人线av网址 | 欧美一区二区三区在线观看视频 | 日韩在线不卡 | 国产精品久久久久久久久久久久久 | 亚洲美女网站 | 亚洲国产精品久久人人爱 |