- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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)