镍镉电池充电器(电路及C程序).doc

日期: 2024-05-25 08:09:09|浏览: 73|编号: 69292

友情提醒:信息内容由网友发布,请自鉴内容实用性。

镍镉电池充电器(电路及C程序).doc

镍镉电池充电器(电路及C程序)最近做了一个镍镉电池充电器,要求不高,能用,拿出来分享给大家。主控芯片用到的,制作充电器的电路其实在网站上的应用例子中已经有了。当然我只是为了好玩才做的,所以没有完全按照他的电路来,我做了些修改,提高性能,只做了一个充电通道,但是提高了充电电压,用两节电池串联充电。当然这个可以根据使用需要进行修改。镍镉电池充电的原理就不用我多说了,相信大家上网一搜就能找到一大堆。哎呀!又在胡说八道了。 原理图: 程序: /******************充电器程序 ******************************: 镍镉电池充电器资料: 2009-05-::.blog.: V1.5 配置选项如下: : 5.::18DIP-AWake-UpPA0~7:Non-Wake--high:PA0~7:Pull--high:PB0~3:Pull--high:PD:Pull-::::::/4OSC: #“.h”#//电池电压#//充电电流电压#//PWM脉冲输出#//放电端口#//红灯#//黄灯#//绿灯#//电池电压最低,0.3V#//电池电压放电值下限,2V#//电池电压预充电,2.5v#//电池电压放电值上限,2.6V#//电池电压额定值,3V#//3.1V#//电池电压最大​​值,3.2V#//电池电压限制值,4V; 当电压高于此值时,表示电池已超出本充电器的充电范围##//35mA电流转换AD###//80mA电流转换AD###//500mA电流转换AD##;;//电池电压电流采样值g05s;;//,;;;;;;//;//********************初始化********************************//=0x02;//系统频率除以=0x10;//通道0,1_tmr=0x64;//=0x87;//内部定时器模式,128分频_intc=0x05;//使能定时器及总中断标志_pd=0x00;_pdc=0x00;//PD0作为PWM输出_pa=0x00;_pac=0x00;//PA输出低 =0x00;_pbc=0x03;//PB0,PB1作为AD采样输入=0;=0;=0;//=0;flag=0;=0;=0;=0;//=0;();=1;(20000);();(20000);();(20000);();(20000);();(20000);();(20000);();(20000);();(20000);();(20000);5s++;=!;if(==100)//05s时间到=0;++;//++;=!;//if(==1200)//=1;if(==36000)//300m时间到=1;//********************AD转换子程序************************//;//AD转换结果高位;//AD转换结果低位1//()=0;//adcr寄存器定义AD开始转换=1;=0;//读取_adrh、_adrl寄存器()adrh=0x00;adrl=0x00;adrh=_adrh;adrl=_adrl&0x80;//获取bit7//AD转换子程序;_eocb=0;//adcr寄存器定义adrh=0xff;adrl=0xff;();while(_eocb);//等待AD =(); (+++)/4; 采样三次,取平均值if()//采样电压低于,说明没有电池();flag=0; =0; =0; Green=0; Red=1; //红灯亮,说明充电器通电_ton=0; =0; if()//电压大于时,说明电池电压过高,不适合用此充电器充电做报警处理();flag=1; =0; =1; Green=0; Red=0; _ton=0; =0; if(flag==0)if(=) if((=)&&(==0))//当采样值大于等于时,放电 (5000);(); PwmOn=0; _ton=1; //启动=0; //切换到通道0 while(=) //放电到下面值后,结束放电 (5000);(); =1; Red=; //红灯以1Hz频率闪烁=; =;

提醒:请联系我时一定说明是从浚耀商务生活网上看到的!