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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3743|回復: 0
打印 上一主題 下一主題
收起左側

CH4226鋰電池充電單片機控制程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:229196 發表于 2017-8-24 19:16 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  1. /*
  2.   CH4226
  3.   電池包充電控制程序
  4.   2017/03/11      
  5. */
  6. //頭文件
  7. #include <hic.h>
  8. //全局變量
  9. unsigned char Cnt @0x3f;
  10. unsigned int  ADV;               //AD監測輸出電壓值
  11. unsigned int  ADI;               //AD監測輸出電流值
  12. unsigned char COUNT;
  13. //標志位聲明
  14. sbit  t400ms_fg;
  15. //函數聲明
  16. void delay(unsigned int n);
  17. unsigned int GetADC(unsigned char chl);
  18. void Sys_unit(void);
  19. //宏定義
  20. #define     CLRWDT() __Asm CWDT
  21. //常量定義
  22. #define    CurrentOpenLimit   60                     //判定有充電電流限制值
  23. #define    CurrentShutLimit   30                     //判定沒有充電電流限制值
  24. #define    StopChargeLimit    2770                   //判定停止充電電壓限制值
  25. #define    KongZaiLimit       2820                   //判定進入空載限制值
  26. #define    ChargeLimit        2730                   //判定開始充電限制值
  27.       
  28. void main()
  29. {   
  30.     unsigned char K0count,K1count,K2count,K3count,K4count,upcount,downcount;    //狀態標志位定義
  31.         Sys_unit();       //初始化
  32.         PA5=1;            //開機紅燈綠燈全滅
  33.         PA4=1;
  34.         PA1=0;            //控制口置零
  35.         delay(1000);      //開機延時
  36.    while(1)
  37.    {
  38.                 ADV=GetADC(0);         //將AD監測到的值
  39.                 ADI=GetADC(2);
  40.                   
  41.       
  42.        //判斷當前狀態
  43.            ///*
  44.             if( ADI > CurrentOpenLimit)           //有充電電流   
  45.             {
  46.                         if((ADV-ADI)>StopChargeLimit)     //且電池電壓超過停止充電電壓限制值,有電流時檢流電阻存在壓降進行補償,電阻1.1歐姆
  47.                         {
  48.                              PA1=1;                       //停止充電,綠燈亮,紅燈滅
  49.                                  PA4=1;
  50.                                  PA5=0;
  51.                         }
  52.                     else                              //且電池電壓沒有超過停止充電電壓限制值
  53.                         {
  54.                              PA1=0;                       //紅燈亮,不停止充電
  55.                                  PA4=0;                       
  56.                                  PA5=1;
  57.                         }
  58.                 }
  59.                 else  if(ADI < CurrentShutLimit)      //無充電電流
  60.                 {
  61.                     if(ADV > KongZaiLimit)            //且電池電壓達到空載限定值,判定進入空載
  62.                         {
  63.                              PA1=1;                       //停止充電,綠燈亮
  64.                          PA4=1;                  
  65.                                  PA5=0;
  66.                         }
  67.                         else if(ADV<ChargeLimit)          //且電池電壓小于開始充電電壓限定值
  68.                         {
  69.                              PA1=0;                       //開始充電,兩燈皆滅
  70.                              PA4=1;
  71.                                  PA5=1;
  72.                         }
  73.                 }      
  74.                 //*/
  75.         while(t400ms_fg == 0) CLRWDT();          //每4ms一個循環
  76.             t400ms_fg = 0;
  77.          
  78.    }}
復制代碼


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表