买了几个4056充电板,一个才几毛钱:
立创EDA网页版画PCB:
带PCB照片转换,5元打样,DIY爱好者的福音,良心立创!
Altium Designer画的原理图和PCB图如下:(51hei附件中可下载工程文件)
拆了一个4056锂电板,把零件搬过来,拨动开关调节电流大小:
看个全貌:
程序:
按下按键,LED显示电池电压:
套上透明热缩管,开始工作了:
单片机源程序如下:
- /******* 充电器_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();
- }
- }
- //
复制代码
程序:自行复制
立创PCB json文件:
PCB.rar
(46.48 KB, 下载次数: 139)
|