湖北科技学院学士学位论文 4.2 电路启动初始化
初始化是为单片机的运行设置初始的运行环境,主要完成以下工作:清片内,每次单片机加电时,都将引起单片机的上电复位操作。复位操作完成以后,单片机的寄存器会被置以不同的值,这些值中有相当一部分是未知的值。这些未知的值在单片机复位完成,正式运行以后,会产生无法让程序设计人员掌握的后果,甚至会造成系统的损坏。因此,在单片机运行后,首先清0使之置初始参数设定,便于程序设计人员掌握,以利系统的工作。设置系统运行所需的各个参数,设置定时器和中断设定。图4-2为初始化程序流程。
定时器设定 AD设定 初始参数设定 清片内RAM 开始 中断设定 返回
图4-2 初始化程序流程
26
4 太阳能充电器软件设计 4.3 按键采集程序
键盘子程序用于探测开关、是否处在有效的开关状态,以决定是否启动系统运转。读线、读取、相连的端口,并将其值判断处理后存于相关缓存中。其中读取端口后要做一定的延时以排除键抖引起的误动作。图4-3为按键子程序结构流程图。
入口 读I/O口
N 延时
Y
处理后存入缓存
反回
图4-3 按键子程序结构流程图
27
湖北科技学院学士学位论文 4.4 数据采集及模数转换程序
数据采集主要由单片机控制ADC0809完成,程序分为数据初始化,发送启动转换命令,等待转换结束,接收数据,处理并存入缓存程序。
数据采集主要由单片机控制ADC0809完成,程序分为数据初始化,发送启动转换命令,等待转换结束,接收数据,处理并存入缓存,程序流程如图4-4所示。
28
入口 初始化 启动转化 N N 转换结束? Y Y 处理存储 返回 4-4 数据采集子程序结构流程图
图4 太阳能充电器软件设计 4.5充电子程序的设计
充电过程分两阶段进行,第一阶段为恒流充电,充电电流可设定,当充电电压达到4V时转入第二阶段,即4.2V的恒压充电方式,恒压充电电流会随着时间的推移而逐渐降低,待充电电流降到0.1mA时,表明电池已充到额定容量的93%~95%,此时即可认为基本充满,如果继续充下去,充电电流会慢慢降低到零,电池完全充满。充电过程中,“充电”指示灯亮;充满时,“充饱”指示灯亮,“充电”指示灯灭。充电子程序流程图如图4-5所示。
入口 采集电压电流 N Y 电压>4V? Y 电流<0.1mA 恒压充电 N 恒流充电 充电结束 返回 图4-5 充电子程序结构流程图
29
湖北科技学院学士学位论文 4.6 电源子程序的设计
本太阳能手机充电器与传统充电器相比,最大的优点就是不仅能直接给电池充电,还能作为普通的直流电源使用,其中的5V直流输出也可以直接给手机充电,或作为MP3等其他小电子设备的供电电源,并有完善的过流保护功能,从而确保电子产品的安全使用。电源子程序流程图如图4-6所示。
入口 采集电压电流 N 过电流? Y 小 输出电压判断 相等 增大占空比 跳过 大 关断输出 减小占空比 返回 图4-6 电源子程序结构流程图
30