基于单片机的电动车电池充放电电量显示功能方案.docVIP

基于单片机的电动车电池充放电电量显示功能方案.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
___疯子鱼 敬上 QQ:328292074 LED显示:用4PCS 绿色LED显示,充电时电量显示分别是 40% 60% 80% 100%LED灯依次亮起,放电时通过按键显示LED100% 80% 60% 40% 依次熄灭,当电池电压在34V时20%LED 不停闪烁(低压报警)到30V时熄灭。 总电压时42V 34V——20% 36V——40% 38V——60% 40V——80% 42V——100% 注:以下电路是模块电路,需要中间加一元件进行切换(充电与充电完成后切换 根据个人喜好加上相应的元件进行切换) 1:根据电压不同,555输出的频率与脉宽不同而设计,以下电路为理论上的电路,已通过仿真,元件根据自己调试的为准. 因555元件的电压输入范围在4-15V,因此根据分压原理把42-30V的电压分成在此范围内的电压(由图上R9与R11确定). 因输入电压不同,555输出频率不同,从而确定所检测电压的大小. EG:30V-----分压后----10V-----对应555频率----113HZ 34V-----分压后----11.3V-----对应555频率----123HZ 36V-----分压后----12V-----对应555频率----127HZ 38V-----分压后----12.6V-----对应555频率----131HZ 40V-----分压后----13.3V-----对应555频率----135HZ 42V-----分压后----14V-----对应555频率----138HZ 放电时电路: 充电时电路: 程序代码: #includereg51.h //用12M晶振 bit int_flag; //定时器0 1S到标志位 unsigned char volatile int_count; //定时器0中断次数 unsigned char volatile T1count; //定时器1中断次数 unsigned int LED_0 = 0; sbit inpe = P1^1; unsigned long sum; //1S内脉冲总个数 //软件延时 void delay(unsigned int cnt) { while(--cnt); } //定时器0初始化 void init_t0(void) { TMOD=(TMOD0xF0)||0x01; //定时器0工作于方式1 TH0=(65536-50000)/256; //定时50ms TL0=(65535-50000)%256; } // 定时器1初始化 void init_t1(void) { TMOD=(TMOD0x0F)|0x50; //timer 1 for count TH1 =0x00; TL1 =0x00; } //显示当放电时的状况 void disp(void) { if(sum =113) //如果电压小于30V,LED(相对的LED)熄灭 { P2=0xff;//取显示数 } // else if((sum113)(sum =123) )//如果电压为34V时,LED不停的闪烁 else if((sum113)(sum 124) ) { P2=0x00;//取显示数 delay(1000); P2 = 0xff; delay(1000); } // else if((sum123)(sum =127))//如果电压为36V时,LED(相对的LED)亮 else if((sum126)(sum 128) ) { P2=0xf9;//取显示数 } // else if((sum127)(sum =131))//如果电压为38V时,LED(相对的LED)亮 else if((sum130)(sum 132) ) { P2=0xf1;//取显示数 } //else if((sum131)(sum =135))//如果电压为40V时,LED(相对的LED)亮 else if((sum134)(sum 136) ) { P2=0xe1;//取显示数 } //else if((sum135)(sum =138) )//如果电压为42V时,LED(相对的LED)亮 else

文档评论(0)

000 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档