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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 13633|回復: 22
收起左側

用TP4056和STC8G單片機做一個帶電壓顯示的鋰電充電器電路+程序

  [復制鏈接]
ID:147710 發(fā)表于 2020-7-8 20:24 | 顯示全部樓層 |閱讀模式
買了幾個4056充電板,一個才幾毛錢:
4056.jpg


立創(chuàng)EDA網(wǎng)頁版畫PCB:
sch.jpg

帶PCB照片轉換,5元打樣,DIY愛好者的福音,良心立創(chuàng)!
Altium Designer畫的原理圖和PCB圖如下:(51hei附件中可下載工程文件)
pcb1.jpg
pcb.jpg

拆了一個4056鋰電板,把零件搬過來,撥動開關調節(jié)電流大小:
正反面.jpg

看個全貌:
整體.jpg

程序:
soft.jpg

按下按鍵,LED顯示電池電壓:
檢測.jpg

套上透明熱縮管,開始工作了:
36149bc28bdc4b282fd2661ffd530ce.jpg

單片機源程序如下:
  1. /******* 充電器_LED電壓表STC8G1K08_TSSOP20 **********/
  2. /*
  3. 功能:   
  4. 通電LED顯示芯片供電電壓
  5. */
  6. #include "STC8.h"
  7. #include "intrins.h"
  8. #define ADCTIM   (*(unsigned char volatile xdata*)0xfea8) //ADC內部時序控制寄存器
  9. #define ON 0
  10. #define OFF 1
  11. u16 *BGV;                //內部參考電壓
  12. void ADC_Init();//ADC初始化
  13. /*----------------------------
  14. 初始化ADC,ADC_Init()
  15. ----------------------------*/
  16. void ADC_Init() //選擇第15通道,測供電電壓
  17. {
  18.     P_SW2|=0x80;
  19.     ADCTIM=0x3f;        //設置ADC內部時序控制寄存器
  20.     P_SW2&=0x7f;
  21.     ADCCFG=0x2f;        //ADC時鐘
  22.     ADC_CONTR=0x8f;        //使能ADC,選擇第15通道

  23. }
  24. //
  25. u16 ADCRead()
  26. {
  27.     static u16 res;
  28.     ADC_CONTR|=0x40;//啟動AD轉換
  29.     _nop_();                        //等待4個NOP
  30.     _nop_();
  31.     while (!(ADC_CONTR & ADC_FLAG));//等待ADC轉換完成標記ADC_FLAG=2
  32.     ADC_CONTR &= ~ADC_FLAG;         //清完成標記
  33.     res=(ADC_RES<<8)|ADC_RESL;
  34.     return res;
  35. }   
  36. //
  37. u16 ADC_GET_vcc()//讀取15通道,測供電電壓
  38. {
  39.     static u16 res;
  40.     static u16 vcc;
  41.     static u8 i;   
  42.     //BGV=(u16 idata*)0xef;//從RAM讀取
  43.     BGV=(u16 code*)0x1ff7;//從ROM讀取    ,要勾選“在程序區(qū)結束處添加重要參數(shù)”
  44.     ADC_Init();
  45.     ES=1;
  46.     ADCRead();ADCRead();//前兩次丟棄
  47.     res=0;
  48.     for(i=0;i<8;i++)    //讀8次取平均值
  49.     {
  50.         res+=ADCRead();   
  51.     }
  52.     res>>=3;
  53.     vcc=(1023L**BGV)/res; //10位ADC計算VREF電壓,mv
  54.     //vcc=(int)(4096**BGV/RES); //12位ADC計算VREF電壓
  55.     return vcc;
  56. }
  57. //
  58. void LED_Service(void)
  59. {
  60.     static u32 VCC_Temp=0;
  61.     VCC_Temp=ADC_GET_vcc();
  62.     if(VCC_Temp<3400)          P55=OFF;  else   P55=ON;
  63.     if(VCC_Temp<3500)          P54=OFF;  else   P54=ON;
  64.     if(VCC_Temp<3600)         P17=OFF;  else   P17=ON;
  65.     if(VCC_Temp<3700)           P16=OFF;  else   P16=ON;
  66.     if(VCC_Temp<3800)              P15=OFF;  else   P15=ON;
  67.     if(VCC_Temp<3900)             P14=OFF;  else   P14=ON;
  68.     if(VCC_Temp<4000)              P13=OFF;  else   P13=ON;
  69.     if(VCC_Temp<4100)              P12=OFF;  else   P12=ON;
  70. }
  71. //
  72. void main(void)
  73. {
  74.     //端口設置
  75.     P1M1=B0000_0000;   //00上拉準雙向口/10浮空輸入  
  76.     P1M0=B0000_0000;   //11開漏輸出/01推挽輸出   
  77.     P5M1=B0000_0000;   //00上拉準雙向口/10浮空輸入
  78.     P5M0=B0000_0000;   //11開漏輸出/01推挽輸出
  79.     ADC_Init();
  80.     while (1)
  81.     {
  82.         LED_Service();
  83.     }
  84. }
  85. //
復制代碼

程序:自行復制

51hei.png
立創(chuàng)PCB json文件:
PCB.rar (46.48 KB, 下載次數(shù): 140)

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:92556 發(fā)表于 2020-9-5 02:34 | 顯示全部樓層
不應該是1024L嗎,你怎么是1023L????
回復

使用道具 舉報

ID:147710 發(fā)表于 2020-9-5 15:56 | 顯示全部樓層
qwa1234 發(fā)表于 2020-9-5 02:34
不應該是1024L嗎,你怎么是1023L????

看得真仔細,強!
官方有1023和1024兩個版本的例程,個人覺得10位最大就是3FF=1023,所以就選1023了。
1023.jpg




回復

使用道具 舉報

ID:88256 發(fā)表于 2020-9-5 16:10 | 顯示全部樓層
手工焊的嗎?很漂亮
回復

使用道具 舉報

ID:147710 發(fā)表于 2020-9-6 09:37 | 顯示全部樓層
謝謝!主要是洗板水的功勞。
回復

使用道具 舉報

ID:517951 發(fā)表于 2020-11-15 17:35 | 顯示全部樓層
不錯,值得學習。51hei有你更精彩!!
回復

使用道具 舉報

ID:239852 發(fā)表于 2020-11-19 15:23 | 顯示全部樓層
按上以程序,我讀出BGV電壓是2.39V,不知錯在哪里?
回復

使用道具 舉報

ID:147710 發(fā)表于 2020-11-19 20:16 | 顯示全部樓層
要在下載程序中勾選“在程序區(qū)結束處添加重要參數(shù)” 51hei截圖-46433572.jpg

回復

使用道具 舉報

ID:620287 發(fā)表于 2020-11-22 23:44 來自觸屏版 | 顯示全部樓層
用tp5100和at89c52做一個7.4伏的鋰電充電器嗎
回復

使用道具 舉報

ID:369412 發(fā)表于 2020-11-24 18:30 | 顯示全部樓層
.json打不開
回復

使用道具 舉報

ID:314865 發(fā)表于 2021-7-19 15:32 | 顯示全部樓層
正好在用STC8G做檢測電量,學習了,感謝樓主分享
回復

使用道具 舉報

ID:418906 發(fā)表于 2021-10-9 23:50 | 顯示全部樓層
DD.C(11): error C129: missing ';' before '*'
回復

使用道具 舉報

ID:418906 發(fā)表于 2021-10-9 23:51 | 顯示全部樓層
怎么編譯有錯誤
回復

使用道具 舉報

ID:606226 發(fā)表于 2022-6-26 16:40 | 顯示全部樓層
這幾天我也做一個,也是用STC8G1K08A做的 (8PIN),我用的是0.96 OLED做為顯示,也是用TP4056充電的,我覺得這樣簡單一些,顯示好看一些
回復

使用道具 舉報

ID:229641 發(fā)表于 2022-6-26 19:20 來自觸屏版 | 顯示全部樓層
c00156155 發(fā)表于 2022-6-26 16:40
這幾天我也做一個,也是用STC8G1K08A做的 (8PIN),我用的是0.96 OLED做為顯示,也是用TP4056充電的,我覺 ...

看看啥樣的?
回復

使用道具 舉報

ID:606226 發(fā)表于 2022-6-27 08:00 | 顯示全部樓層

在做外殼,做好了發(fā)出來
回復

使用道具 舉報

ID:607312 發(fā)表于 2022-7-16 18:28 | 顯示全部樓層
pcb文件用AD是打不開的,只能用立創(chuàng)打開
回復

使用道具 舉報

ID:97678 發(fā)表于 2022-7-18 12:21 | 顯示全部樓層

能夠發(fā)出來看看嗎?
回復

使用道具 舉報

ID:936755 發(fā)表于 2022-9-27 16:46 | 顯示全部樓層
可以剛好學下STC8G
回復

使用道具 舉報

ID:1112603 發(fā)表于 2024-4-18 08:46 | 顯示全部樓層
單片機AD數(shù)模轉換學習中,很不錯的實例。
回復

使用道具 舉報

ID:1110945 發(fā)表于 2024-4-18 17:54 | 顯示全部樓層
有做省電設計嗎?不充電的時候電池接上去耗電多少?
STC8的stop模式帶喚醒不到2微安,可以考慮利用起來。
回復

使用道具 舉報

ID:102702 發(fā)表于 2024-5-4 16:31 | 顯示全部樓層
樓主你好,源文件編譯不了,出現(xiàn)以下提示,有兩個地方代碼有問題

err2.JPG


指向了第11行這里,應該怎么改呢?
err.JPG

第9行代碼也有問題
err3.JPG

回復

使用道具 舉報

ID:102702 發(fā)表于 2024-5-5 00:34 | 顯示全部樓層
樓主你這源程序編譯不了,能發(fā)個能正常運行的HEX文件嗎?謝謝!
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 伊人中文字幕 | 成人免费在线电影 | 日日碰狠狠躁久久躁96avv | 国产欧美日韩在线观看 | 久久国产精品亚洲 | 国产午夜一级 | 国产成人99久久亚洲综合精品 | 亚洲一区二区久久久 | 2019天天干天天操 | 九九视频在线观看视频6 | 日日夜夜草 | 欧美a在线| 成人一区二区三区在线观看 | 91精品国产高清久久久久久久久 | 伦理午夜电影免费观看 | 色视频在线免费观看 | 久久在线 | 亚洲欧美日本在线 | 久久亚洲国产 | 亚洲h视频 | 成人免费网站视频 | 国产日韩精品一区 | av激情在线 | 777zyz色资源站在线观看 | 在线区| 亚洲一区综合 | 国产一区中文 | 国产农村一级片 | 亚洲一区久久 | 97精品超碰一区二区三区 | 国产精品久久久久久久久久久久 | 国产伦精品一区二区三区精品视频 | 自拍视频国产 | 亚洲在线 | 日韩精品久久久久 | 中文字幕一区二区三区四区五区 | 日韩视频在线免费观看 | 国产精品久久久久久久久久久久午夜片 | 日本不卡免费新一二三区 | 亚洲三区在线观看 | 尤物在线视频 |