欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: 用TP4056和STC8G單片機(jī)做一個(gè)帶電壓顯示的鋰電充電器電路+程序 [打印本頁]

作者: XTXB    時(shí)間: 2020-7-8 20:24
標(biāo)題: 用TP4056和STC8G單片機(jī)做一個(gè)帶電壓顯示的鋰電充電器電路+程序
買了幾個(gè)4056充電板,一個(gè)才幾毛錢:



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


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



拆了一個(gè)4056鋰電板,把零件搬過來,撥動(dòng)開關(guān)調(diào)節(jié)電流大小:


看個(gè)全貌:


程序:


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


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


單片機(jī)源程序如下:
  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內(nèi)部時(shí)序控制寄存器
  9. #define ON 0
  10. #define OFF 1
  11. u16 *BGV;                //內(nèi)部參考電壓
  12. void ADC_Init();//ADC初始化
  13. /*----------------------------
  14. 初始化ADC,ADC_Init()
  15. ----------------------------*/
  16. void ADC_Init() //選擇第15通道,測供電電壓
  17. {
  18.     P_SW2|=0x80;
  19.     ADCTIM=0x3f;        //設(shè)置ADC內(nèi)部時(shí)序控制寄存器
  20.     P_SW2&=0x7f;
  21.     ADCCFG=0x2f;        //ADC時(shí)鐘
  22.     ADC_CONTR=0x8f;        //使能ADC,選擇第15通道

  23. }
  24. //
  25. u16 ADCRead()
  26. {
  27.     static u16 res;
  28.     ADC_CONTR|=0x40;//啟動(dòng)AD轉(zhuǎn)換
  29.     _nop_();                        //等待4個(gè)NOP
  30.     _nop_();
  31.     while (!(ADC_CONTR & ADC_FLAG));//等待ADC轉(zhuǎn)換完成標(biāo)記ADC_FLAG=2
  32.     ADC_CONTR &= ~ADC_FLAG;         //清完成標(biāo)記
  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ū)結(jié)束處添加重要參數(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計(jì)算VREF電壓,mv
  54.     //vcc=(int)(4096**BGV/RES); //12位ADC計(jì)算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.     //端口設(shè)置
  75.     P1M1=B0000_0000;   //00上拉準(zhǔn)雙向口/10浮空輸入  
  76.     P1M0=B0000_0000;   //11開漏輸出/01推挽輸出   
  77.     P5M1=B0000_0000;   //00上拉準(zhǔn)雙向口/10浮空輸入
  78.     P5M0=B0000_0000;   //11開漏輸出/01推挽輸出
  79.     ADC_Init();
  80.     while (1)
  81.     {
  82.         LED_Service();
  83.     }
  84. }
  85. //
復(fù)制代碼

程序:自行復(fù)制


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


作者: qwa1234    時(shí)間: 2020-9-5 02:34
不應(yīng)該是1024L嗎,你怎么是1023L????
作者: XTXB    時(shí)間: 2020-9-5 15:56
qwa1234 發(fā)表于 2020-9-5 02:34
不應(yīng)該是1024L嗎,你怎么是1023L????

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






作者: hhdsdy    時(shí)間: 2020-9-5 16:10
手工焊的嗎?很漂亮
作者: XTXB    時(shí)間: 2020-9-6 09:37
謝謝!主要是洗板水的功勞。
作者: rayin    時(shí)間: 2020-11-15 17:35
不錯(cuò),值得學(xué)習(xí)。51hei有你更精彩!!
作者: 13729875136    時(shí)間: 2020-11-19 15:23
按上以程序,我讀出BGV電壓是2.39V,不知錯(cuò)在哪里?

作者: XTXB    時(shí)間: 2020-11-19 20:16
要在下載程序中勾選“在程序區(qū)結(jié)束處添加重要參數(shù)”


作者: 22583596    時(shí)間: 2020-11-22 23:44
用tp5100和at89c52做一個(gè)7.4伏的鋰電充電器嗎
作者: zhengqiusheng    時(shí)間: 2020-11-24 18:30
.json打不開
作者: redskye000e    時(shí)間: 2021-7-19 15:32
正好在用STC8G做檢測電量,學(xué)習(xí)了,感謝樓主分享
作者: YYHA    時(shí)間: 2021-10-9 23:50
DD.C(11): error C129: missing ';' before '*'
作者: YYHA    時(shí)間: 2021-10-9 23:51
怎么編譯有錯(cuò)誤

作者: c00156155    時(shí)間: 2022-6-26 16:40
這幾天我也做一個(gè),也是用STC8G1K08A做的 (8PIN),我用的是0.96 OLED做為顯示,也是用TP4056充電的,我覺得這樣簡單一些,顯示好看一些
作者: 觸景情傷    時(shí)間: 2022-6-26 19:20
c00156155 發(fā)表于 2022-6-26 16:40
這幾天我也做一個(gè),也是用STC8G1K08A做的 (8PIN),我用的是0.96 OLED做為顯示,也是用TP4056充電的,我覺 ...

看看啥樣的?
作者: c00156155    時(shí)間: 2022-6-27 08:00
觸景情傷 發(fā)表于 2022-6-26 19:20
看看啥樣的?

在做外殼,做好了發(fā)出來
作者: cdiyy    時(shí)間: 2022-7-16 18:28
pcb文件用AD是打不開的,只能用立創(chuàng)打開
作者: jovew    時(shí)間: 2022-7-18 12:21
觸景情傷 發(fā)表于 2022-6-26 19:20
看看啥樣的?

能夠發(fā)出來看看嗎?
作者: CHEN461107759    時(shí)間: 2022-9-27 16:46
可以剛好學(xué)下STC8G
作者: gzgy    時(shí)間: 2024-4-18 08:46
單片機(jī)AD數(shù)模轉(zhuǎn)換學(xué)習(xí)中,很不錯(cuò)的實(shí)例。
作者: 明日之星8    時(shí)間: 2024-4-18 17:54
有做省電設(shè)計(jì)嗎?不充電的時(shí)候電池接上去耗電多少?
STC8的stop模式帶喚醒不到2微安,可以考慮利用起來。
作者: raymondau    時(shí)間: 2024-5-4 16:31
樓主你好,源文件編譯不了,出現(xiàn)以下提示,有兩個(gè)地方代碼有問題




指向了第11行這里,應(yīng)該怎么改呢?


第9行代碼也有問題



作者: raymondau    時(shí)間: 2024-5-5 00:34
樓主你這源程序編譯不了,能發(fā)個(gè)能正常運(yùn)行的HEX文件嗎?謝謝!




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1