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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

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

  [復制鏈接]
跳轉到指定樓層
樓主
買了幾個4056充電板,一個才幾毛錢:



立創EDA網頁版畫PCB:


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



拆了一個4056鋰電板,把零件搬過來,撥動開關調節電流大小:


看個全貌:


程序:


按下按鍵,LED顯示電池電壓:


套上透明熱縮管,開始工作了:


單片機源程序如下:
  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讀取    ,要勾選“在程序區結束處添加重要參數”
  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. //
復制代碼

程序:自行復制


立創PCB json文件:
PCB.rar (46.48 KB, 下載次數: 140)

評分

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

查看全部評分

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

使用道具 舉報

沙發
ID:92556 發表于 2020-9-5 02:34 | 只看該作者
不應該是1024L嗎,你怎么是1023L????
回復

使用道具 舉報

板凳
ID:147710 發表于 2020-9-5 15:56 | 只看該作者
qwa1234 發表于 2020-9-5 02:34
不應該是1024L嗎,你怎么是1023L????

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





回復

使用道具 舉報

地板
ID:88256 發表于 2020-9-5 16:10 | 只看該作者
手工焊的嗎?很漂亮
回復

使用道具 舉報

5#
ID:147710 發表于 2020-9-6 09:37 | 只看該作者
謝謝!主要是洗板水的功勞。
回復

使用道具 舉報

6#
ID:517951 發表于 2020-11-15 17:35 | 只看該作者
不錯,值得學習。51hei有你更精彩!!
回復

使用道具 舉報

7#
ID:239852 發表于 2020-11-19 15:23 | 只看該作者
按上以程序,我讀出BGV電壓是2.39V,不知錯在哪里?
回復

使用道具 舉報

8#
ID:147710 發表于 2020-11-19 20:16 | 只看該作者
要在下載程序中勾選“在程序區結束處添加重要參數”

回復

使用道具 舉報

9#
ID:620287 發表于 2020-11-22 23:44 來自手機 | 只看該作者
用tp5100和at89c52做一個7.4伏的鋰電充電器嗎
回復

使用道具 舉報

10#
ID:369412 發表于 2020-11-24 18:30 | 只看該作者
.json打不開
回復

使用道具 舉報

11#
ID:314865 發表于 2021-7-19 15:32 | 只看該作者
正好在用STC8G做檢測電量,學習了,感謝樓主分享
回復

使用道具 舉報

12#
ID:418906 發表于 2021-10-9 23:50 | 只看該作者
DD.C(11): error C129: missing ';' before '*'
回復

使用道具 舉報

13#
ID:418906 發表于 2021-10-9 23:51 | 只看該作者
怎么編譯有錯誤
回復

使用道具 舉報

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

使用道具 舉報

15#
ID:229641 發表于 2022-6-26 19:20 來自手機 | 只看該作者
c00156155 發表于 2022-6-26 16:40
這幾天我也做一個,也是用STC8G1K08A做的 (8PIN),我用的是0.96 OLED做為顯示,也是用TP4056充電的,我覺 ...

看看啥樣的?
回復

使用道具 舉報

16#
ID:606226 發表于 2022-6-27 08:00 | 只看該作者

在做外殼,做好了發出來
回復

使用道具 舉報

17#
ID:607312 發表于 2022-7-16 18:28 | 只看該作者
pcb文件用AD是打不開的,只能用立創打開
回復

使用道具 舉報

18#
ID:97678 發表于 2022-7-18 12:21 | 只看該作者

能夠發出來看看嗎?
回復

使用道具 舉報

19#
ID:936755 發表于 2022-9-27 16:46 | 只看該作者
可以剛好學下STC8G
回復

使用道具 舉報

20#
ID:1112603 發表于 2024-4-18 08:46 | 只看該作者
單片機AD數模轉換學習中,很不錯的實例。
回復

使用道具 舉報

21#
ID:1110945 發表于 2024-4-18 17:54 | 只看該作者
有做省電設計嗎?不充電的時候電池接上去耗電多少?
STC8的stop模式帶喚醒不到2微安,可以考慮利用起來。
回復

使用道具 舉報

22#
ID:102702 發表于 2024-5-4 16:31 | 只看該作者
樓主你好,源文件編譯不了,出現以下提示,有兩個地方代碼有問題




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


第9行代碼也有問題


回復

使用道具 舉報

23#
ID:102702 發表于 2024-5-5 00:34 | 只看該作者
樓主你這源程序編譯不了,能發個能正常運行的HEX文件嗎?謝謝!
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产欧美视频一区二区三区 | 91视视频在线观看入口直接观看 | 亚洲美女一区二区三区 | 亚洲福利精品 | 欧美阿v| 一区二区三区视频在线观看 | 免费视频一区二区 | 国产欧美一区二区三区在线看蜜臀 | 欧美一区二区久久 | 丁香综合| 久久国产精品一区二区三区 | 天天干狠狠操 | 99久久久久国产精品免费 | 91极品尤物在线播放国产 | 久久免费视频在线 | 一区二区视频在线 | 99爱视频 | 91在线观看 | 亚洲国产成人精品女人久久久 | 亚洲一区二区三区在线播放 | 亚洲精品国产综合区久久久久久久 | 亚洲精品在线视频 | 日韩伦理电影免费在线观看 | 欧美综合视频在线 | 国产亚洲欧美在线 | 在线一区二区观看 | 免费黄色的网站 | 国产乱精品一区二区三区 | 成人h免费观看视频 | 欧美日韩三区 | 涩涩视频在线观看 | 夜夜精品浪潮av一区二区三区 | 涩在线 | 一区二区三区亚洲视频 | 日韩一区二区福利视频 | 天天插天天操 | 91av在线免费观看 | 91久久精品一区二区二区 | 国产激情毛片 | 国产精品国产精品国产专区不片 | 性色av网站|