買了幾個4056充電板,一個才幾毛錢:
4056.jpg (44.8 KB, 下載次數: 147)
下載附件
2020-7-8 20:29 上傳
立創EDA網頁版畫PCB:
sch.jpg (61.65 KB, 下載次數: 210)
下載附件
2020-7-8 20:29 上傳
帶PCB照片轉換,5元打樣,DIY愛好者的福音,良心立創!
Altium Designer畫的原理圖和PCB圖如下:(51hei附件中可下載工程文件)
pcb1.jpg (43.98 KB, 下載次數: 146)
下載附件
2020-7-8 20:29 上傳
pcb.jpg (42.12 KB, 下載次數: 166)
下載附件
2020-7-8 20:29 上傳
拆了一個4056鋰電板,把零件搬過來,撥動開關調節電流大小:
正反面.jpg (56.16 KB, 下載次數: 151)
下載附件
2020-7-8 19:46 上傳
看個全貌:
整體.jpg (58.14 KB, 下載次數: 144)
下載附件
2020-7-8 20:05 上傳
程序:
soft.jpg (111.57 KB, 下載次數: 129)
下載附件
2020-7-8 20:05 上傳
按下按鍵,LED顯示電池電壓:
檢測.jpg (49.23 KB, 下載次數: 155)
下載附件
2020-7-8 20:07 上傳
套上透明熱縮管,開始工作了:
36149bc28bdc4b282fd2661ffd530ce.jpg (36.15 KB, 下載次數: 128)
下載附件
2020-7-8 20:10 上傳
單片機源程序如下:
- /******* 充電器_LED電壓表STC8G1K08_TSSOP20 **********/
- /*
- 功能:
- 通電LED顯示芯片供電電壓
- */
- #include "STC8.h"
- #include "intrins.h"
- #define ADCTIM (*(unsigned char volatile xdata*)0xfea8) //ADC內部時序控制寄存器
- #define ON 0
- #define OFF 1
- u16 *BGV; //內部參考電壓
- void ADC_Init();//ADC初始化
- /*----------------------------
- 初始化ADC,ADC_Init()
- ----------------------------*/
- void ADC_Init() //選擇第15通道,測供電電壓
- {
- P_SW2|=0x80;
- ADCTIM=0x3f; //設置ADC內部時序控制寄存器
- P_SW2&=0x7f;
- ADCCFG=0x2f; //ADC時鐘
- ADC_CONTR=0x8f; //使能ADC,選擇第15通道
- }
- //
- u16 ADCRead()
- {
- static u16 res;
- ADC_CONTR|=0x40;//啟動AD轉換
- _nop_(); //等待4個NOP
- _nop_();
- while (!(ADC_CONTR & ADC_FLAG));//等待ADC轉換完成標記ADC_FLAG=2
- ADC_CONTR &= ~ADC_FLAG; //清完成標記
- res=(ADC_RES<<8)|ADC_RESL;
- return res;
- }
- //
- u16 ADC_GET_vcc()//讀取15通道,測供電電壓
- {
- static u16 res;
- static u16 vcc;
- static u8 i;
- //BGV=(u16 idata*)0xef;//從RAM讀取
- BGV=(u16 code*)0x1ff7;//從ROM讀取 ,要勾選“在程序區結束處添加重要參數”
- ADC_Init();
- ES=1;
- ADCRead();ADCRead();//前兩次丟棄
- res=0;
- for(i=0;i<8;i++) //讀8次取平均值
- {
- res+=ADCRead();
- }
- res>>=3;
- vcc=(1023L**BGV)/res; //10位ADC計算VREF電壓,mv
- //vcc=(int)(4096**BGV/RES); //12位ADC計算VREF電壓
- return vcc;
- }
- //
- void LED_Service(void)
- {
- static u32 VCC_Temp=0;
- VCC_Temp=ADC_GET_vcc();
- if(VCC_Temp<3400) P55=OFF; else P55=ON;
- if(VCC_Temp<3500) P54=OFF; else P54=ON;
- if(VCC_Temp<3600) P17=OFF; else P17=ON;
- if(VCC_Temp<3700) P16=OFF; else P16=ON;
- if(VCC_Temp<3800) P15=OFF; else P15=ON;
- if(VCC_Temp<3900) P14=OFF; else P14=ON;
- if(VCC_Temp<4000) P13=OFF; else P13=ON;
- if(VCC_Temp<4100) P12=OFF; else P12=ON;
- }
- //
- void main(void)
- {
- //端口設置
- P1M1=B0000_0000; //00上拉準雙向口/10浮空輸入
- P1M0=B0000_0000; //11開漏輸出/01推挽輸出
- P5M1=B0000_0000; //00上拉準雙向口/10浮空輸入
- P5M0=B0000_0000; //11開漏輸出/01推挽輸出
- ADC_Init();
- while (1)
- {
- LED_Service();
- }
- }
- //
復制代碼
程序:自行復制
51hei.png (3.84 KB, 下載次數: 145)
下載附件
2020-7-8 20:47 上傳
立創PCB json文件:
PCB.rar
(46.48 KB, 下載次數: 140)
2020-7-8 20:22 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|