之前做的简单设计,无线充电给超级电容充电,并进行检测是否充满,源代码、和一些电路分享给大家看看,水平有限,希望大家多多指教。
程序流程图:
制作出来的实物图如下:
单片机源程序如下:
- /*接好线后记得供地,根据程序来决定采集通道是IN几。开始时的数据是变化的当采集一点
- 电压时就稳定显示采集的电压,采集电压时记得改变基准电压,每个板基准电压都不同。
- AIN0~AIN10为模拟输入端; 为片选端;DIN 为串行数据输入端;
- DOUT为A/D转换结果的三态串行输出端;EOC为转换结束端;CLK为I/O时钟;REF+为正基准电压端;REF-为负基准电压端;VCC为电源;GND为地。
- */
- #include <reg52.h>
- #include "12864.h"
- #include "TLC2543.h"
- #define uint unsigned int
- #define uchar unsigned char
- unsigned long r;
- sbit cek1 = P0^0;
- /*主函数*/
- void main()
- {
- uint V0=0,I=0;
- /*调用 */
- LCD_init(); //液晶初始化
- LCD_display(); //显示函数
- //cek1=0;
- while(1)
- {
- read2543(0x01); //选择通道IN0测量电流
- I=(uint)(read2543(0x00)*50000/4095); //TLC2543采集电压的公式 2的12次方减1=4095 49900是基准电压
- shujuxs(I,1,3);
- read2543(0x02); //选择通道IN1测量电压
- V0=(uint)(read2543(0x01)*50000/4095);
- shujux(V0,2,3);
- if(I<500) //判断电池电压是否充满电流满足
- {
- cek1=1;
- delayms(60000); // 如果充满就断电
- }
- else
- {
- cek1=0; //未满继续充电
- }
- }
- }
复制代码
所有资料51hei提供下载:
无线充电检测.zip
(464.06 KB, 下载次数: 128)
|