河南城建学院本科毕业设计(论文) 基于单片机的太阳能充电器系统的硬件设计
本设计采用4位LED数码管段数为7段另加一个小数点即8段数码管,数
码管有共阴和共阳两种,本设计使用共阴数码管,8段发光二极管的阴极接在一起接地,若某段发光二极管的阳极为高电平,则该段二极管被点亮。设计时可根据需要显示的数字让某一组合的数码管的阳极置高。
3.8锂电池充电原理
锂电池额定电压视生产厂家的不同而不同,有3.6V和3.7V两种;额定容量C从几百毫安时到几安时;充电终止电压根据样机材料有4.1V和4.2V两种;充电电流常以C的百分比来衡量,充电电流过小会导致充电时间过长,充电电流过大会使电池过热,导致电池损坏。本设计根据锂电池的充电特点,采用由预充电、恒流充电、恒压充电、涓流充电四阶段组成的充电模式。锂蓄电池的充电特性曲线如图3.10所示:
图3.10锂电池充电特性曲线
为保证安全充电,开始充电时若锂电池电压VBAT<3.0V,则以IPRE(一般取
0.01C A)的小电流对其进行充电;当电池电压VBAT>3.0V后,则以IREF(0.5C A)的恒流进行充电;当VBAT上升至VREF时,转入恒定电压充电阶段;随着电池电量的不断升高,充电电流逐渐降低,当充电电流小于IFULL后,电池电量全部恢复,充电过程结束。为克服电池自放电,系统继续以IFULL的电流进行涓流充电。C为电池容量。
16
河南城建学院本科毕业设计(论文) 基于单片机的太阳能充电器系统的软件设计
4 基于单片机的太阳能充电器系统的软件设计
4.1 设计思想
主程序包含两个部分,一部分为初始化段,另一部分为循环主体段。 在主程序循环体中,并不是直接执行程序,而是去调用一个个任务模块。每个任务都是一个子函数,这些任务的调度机制为轮询机制。即:这些子函数功能的执行与否取决于其条件标志是否满足。比如:当某个子函数被主程序调用时,会先判断其执行条件是否成立(标志位是否有效),如果有效则执行实际功能语句,否则不执行任何动作直接返回。PWM的控制调节和A/D采样速度不宜太快,用200ms调用一次,因为它会影响到数码管刷屏,调节和采样太快,数码管上的数值会跳变的厉害。按键处理则为10ms调用一次。
子程序可分为初始化程序,按键采集程序,信号采集与转换程序,显示程序,PWM波程序;也可以按照系统能实现的功能分为充电子程序、电源子程序,其中充电子程序和电源子程序都要用到初始化子程序、按键采集子程序、PWM波子程序、信号采集与转换子程序和显示子程序。
PWM波的生成采用了输出在高电平与低电平的延时及转换,本设计中PWM波用来调节开关管的占空比,当输出为高电平时,将输出信号放大驱动开关管开通,当输出信号为低电平时,开关管关断,用高电平与低电平的时间的比值来表示PWM波的占空比,以此来控制开关管的占空比。
本设计及检测电压又检测电流,单片机采用STC89C52芯片,内部没有AD转换模块,单片机需外接转换模块,本设计采用ADC0809(第三章硬件电路设计中也有介绍)因此模拟信号输入有两路,一路是电压信号,一路是电流信号。ADC0809 在对多路输入的模拟量进行模数转换时采用分时复用的方法,即AD转换器对两路信号轮换采集转换。轮换周期根据模数转换时间和控制的情况设定。
17
河南城建学院本科毕业设计(论文) 基于单片机的太阳能充电器系统的软件设计
4.2 基于单片机的太阳能充电器系统的整体程序设计
本设计整体工作主要由单片机程序控制实现,其工作过程为:电路启动初始化,电路功能选择,输出选择并确定输出,单片机采集计算输出PWM信号,定时采集数据并处理调节PWM信号占空比等,程序整体框架如图4.1所示。
开始 初始化 Yes 电池充电 No 充电子程序 电源子程序 结束
图4.1 程序整体框架流程
18
河南城建学院本科毕业设计(论文) 基于单片机的太阳能充电器系统的软件设计
4.3 基于单片机的太阳能充电器系统的子程序的设计
4.3.1电路启动初始化
初始化是为单片机的运行设置初始的运行环境,主要完成以下工作:清片内,每次单片机加电时,都将引起单片机的上电复位操作。复位操作完成以后,单片机的寄存器会被置以不同的值,这些值中有相当一部分是未知的值。这些未知的值在单片机复位完成,正式运行以后,会产生无法让程序设计人员掌握的后果,甚至会造成系统的损坏。因此,在单片机运行后,首先清0使之置初始参数设定,便于程序设计人员掌握,以利系统的工作。设置系统运行所需的各个参数,设置定时器和中断设定。图4.2为初始化程序流程。
开始 清片内RAM 初始参数设定 AD设定 定时器设定 中断设定 返回
图4.2 初始化程序流程
19
河南城建学院本科毕业设计(论文) 基于单片机的太阳能充电器系统的软件设计
4.3.2按键采集程序
键盘子程序用于探测开关、是否处在有效的开关状态,以决定是否启动系统运转。读线、读取、相连的端口,并将其值判断处理后存于相关缓存中。其中读取端口后要做一定的延时以排除键抖引起的误动作。图4.3为按键子程序结构流程图。
入口 读I/O口 延时 N Y 处理后存入缓存 返回
图4.3按键子程序结构流程图
20
相关推荐: