标题: TL2543 AD采电压电流 无线充电检测与控制电路+单片机程序 [打印本页]

作者: 我思故我在i    时间: 2019-7-6 16:22
标题: TL2543 AD采电压电流 无线充电检测与控制电路+单片机程序
之前做的简单设计,无线充电给超级电容充电,并进行检测是否充满,源代码、和一些电路分享给大家看看,水平有限,希望大家多多指教。

程序流程图:

制作出来的实物图如下:


单片机源程序如下:
  1. /*接好线后记得供地,根据程序来决定采集通道是IN几。开始时的数据是变化的当采集一点
  2. 电压时就稳定显示采集的电压,采集电压时记得改变基准电压,每个板基准电压都不同。

  3.   AIN0~AIN10为模拟输入端; 为片选端;DIN 为串行数据输入端;
  4.   DOUT为A/D转换结果的三态串行输出端;EOC为转换结束端;CLK为I/O时钟;REF+为正基准电压端;REF-为负基准电压端;VCC为电源;GND为地。

  5. */

  6. #include <reg52.h>
  7. #include "12864.h"
  8. #include "TLC2543.h"
  9. #define  uint   unsigned int
  10. #define  uchar  unsigned char
  11. unsigned long r;
  12.   sbit cek1 = P0^0;
  13. /*主函数*/
  14. void main()
  15. {
  16.    uint V0=0,I=0;
  17.    /*调用        */                        
  18.    LCD_init();               //液晶初始化
  19.    LCD_display();           //显示函数
  20.    //cek1=0;
  21.    while(1)
  22.    {
  23.       read2543(0x01);                                //选择通道IN0测量电流
  24.       I=(uint)(read2543(0x00)*50000/4095);         //TLC2543采集电压的公式 2的12次方减1=4095  49900是基准电压
  25.           shujuxs(I,1,3);
  26.           read2543(0x02);                         //选择通道IN1测量电压
  27.       V0=(uint)(read2543(0x01)*50000/4095);
  28.            shujux(V0,2,3);
  29.        if(I<500)                          //判断电池电压是否充满电流满足
  30.         {
  31.                    cek1=1;
  32.                    delayms(60000);                                          // 如果充满就断电
  33.                      }
  34.                    else
  35.                       {
  36.                       cek1=0;                                      //未满继续充电
  37.                     }        
  38.                  }
  39.    }
复制代码

所有资料51hei提供下载:
无线充电检测.zip (464.06 KB, 下载次数: 128)


作者: 772967380    时间: 2021-4-15 14:32
楼主能详细说一下硬件部分工作原理吗




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1