太阳能电子钟电子时钟被广泛应用于家庭、 公共场所、以及工业测控中, 是生活中的必需品市面上的电子钟种类很多但是大多数时钟都是使用一次性电池作为电源,当电池电量耗尽后, 就需要进行更换电池, 很不方便因此有必要设计一款太阳能供电的电子钟, 电池电量较低时, 只需放在有阳光的地方便可进行充电让它继续工作本设计能够准确显示时间、环境温度温度 (通过按键切换显示 );自行检测环境光线,并能够自动调节显示亮度一段时间无操作时自动进入掉电模式,关闭显示;外型美观大方,可作为室内装饰品1 设计思路(1)、主控电路:采用 STC12C5608ad作为主控芯片,这款单片机具有丰富的内部资源时间采集部分使用专门的时钟芯片 DS1302采用 DS18b20 做为温度采集元件另外接一个光敏电阻来检测环境光线 外接红外线一体化接收头来接收红外线2)、显示部分:用 4 个数码管显示时间, 第三个数码管倒置后的小数点位与第二个数码管的小数点正好构成一个冒号作为分隔, 冒号以前显示小时, 冒号以后显示分钟3)、外壳部分:鉴于数码管与太阳能电池板的主体颜色为黑色, 故本设计采用黑色木片作为外壳, 前面为数码管显示, 后面为太阳能电池板。
太阳能电池板与水平面的夹角为 32 度,与本地区太阳能最佳倾角相近这样既方便人们查看,又不需要调节倾角2 硬件电路设计本设计中需要检测的物理量有温度、光线、时间、红外线四种对应传感器的外围电路比较简单, 不过像用光敏电阻检测光线时需要用到单片机的内部模数转换功能,而这个功能并不是所有的 IO 口都具备重点为各传感器接口与单片机功能引脚相匹配,各个传感器在电路板上位置的选取等2.1 主控电路图 7 中采用 STC12C5608AD 主控芯片从右上脚逆时针依次是: 按键电路,DS18b20 温度采集电路, DS1302 时间采集电路,单片机晶振电路,复位电路,显示接口,电源接口2.2 按键电路图 8 为 5 路按键电路 其中 10k 电阻用来保护单片机 IO 口的,在没有按键按下的时候, IO 口与 VCC 相接,为高电平;按键按下后, IO 短接到地,为低电平系统上电后,判断 IO 口状态,若 IO 口被拉低则说明有按键按下,读取端口值,从而判断是哪个按键按下按键从上到下为 S1-S5S1 负责掉电唤醒,和进入调节时间模式; S2 定义为 “+”键,按 S3 为“—按”键; S4 作为时间 /光线强度之间的切换。
S5 按键第一次按下显示当前环境 温度,第二次按下显示年份,月日,再按一次返回时间显示2.3 数据采集电路DS1302 芯片介绍DS1302 是一款低功耗时钟芯片,可对年月日时分秒进行精确计时,具有自动进行闰年补偿功能 并且这款芯片的外围电路简单, 使用方便, 工作电压范围宽( 2.5v-5.5v),芯片自身具备为备用电源进行充电的功能,可大幅提高备用电池使用时间,使系统更稳定单片机与时钟芯片之间采用 3 线串行通讯,复位 /通讯允许管脚接到单片机 P2.5 引脚 RST=1 允许, RST=0 禁止,通讯输入 SCLK 接到单片机 P3.5 口,数据输入 /输出 I/0 管脚接到单片机 P3.4 口X1 、X2 是晶振接口,此处需要接一个 32.768Khz 的晶振 Vcc2 与单片机共电源, Vcc1 为备用电源,外接可充电纽扣电池DS1302 内部的 12 个寄存器中,有 7 个与时间相关,存放 BCD 格式数据,其地址与内容如下图所示 寄存器第七位为暂停控制为, 为 1 暂停时钟, DS1302 进入低功耗模式, 为 0 启动时钟小时寄存器中第七位是 12 小时 /24 小时方式选择。
如果在 12 小时方式下,小时寄存器第五位为上午 /下午选择 [8] DS18b20 是一种数字温度传感器, 采用单总线方式与 MCU 进行通讯其 1、 3 脚为电源端口,与系统主电源连接数据端口 DQ 与单片机 P1.7 连接DS18b20需严格按照时序协议运行,确保数据采集准确其中通讯信号有 :复位信号、存在信号、写 1、写 0、读 1、读 0单片机与 DS18b20 通讯前要进行初始化温度转换完成后,测量结果以二进制补码形式放在片内暂存器中, 低字节放在 LSB 暂存器,高字节放在 MSB 暂存器2.4 数码管显示电路使用 4 个七段数码管作为显示器件, 具有亮度高,显示稳定,成本低的优点数码管是由八个独立的 led 共阴极连接后封装而成,显示特定数字时,则将对应的 led 点亮即可当加在数码管两端的电压超过 2.5V,电流达到 2mA 以上,就可发光图中电阻阻值为 330 欧姆,起到分压限流的作用每个数码管由一个 74hc595 驱动,四个 74hc595 之间采用级联方式连接,另外每片芯片旁边要加电容器滤波2.5 电源电路本产品使用规格为 5V、 80mA 太阳能滴胶板接收太阳能,由专门充电芯片 CN3083 将采集的能量传输给锂电池, 锂电池输出电能由 DC-DC 升压为 5V 给系统供电。
另外,DS1302 芯片需要一块备用电源, 来保证在主电源断电的情况下,仍能保持精确计时3 软件电路设计显示程序 :本设计中使用 4 个 74hc595 级联驱动数码管数据传输函数一次写入 4 个字节数据, 再统一输出显示 为消除数据传输中的残影, 在进入函数时首先将使能端 OE 置 1,关闭数码管显示, 当 4 个字节的数据传输完毕, 再把 OE 端拉低显示按键程序 :按键程序分为三段,按键扫描判断,判断标志位,键值散转具体处理过程为对 5 个按键进行轮流扫描, 如果有按键按下,将对应标志位置 1然后根据标志位进行键值处理最后根据键值执行相应的程序DS18b20 程序设计 :DS18b20 转换温度需经过初始化、 ROM 操作命令、存储器操作命令、数据处理等操作程序应严格按照数据手册提供的时序进行设计设计中在进入 DS18b20 温度采集程序时屏蔽中断,完成采集后再开启中断,以避免中断对 DS18b20 数据采集产生影响光线采集程序设计 :此部分是对单片机内部 AD 的设计,需注意在于相关 SFR寄存器的设置4 制作注意事项设计中使用黑色薄木片作为外壳,便于加工计算好数码管与太阳能电池板的夹角,设计图纸。
将电路与电池片拼接好后需要用胶水粘牢图 11 效果图5 小结经过反复尝试,最终完成了太阳能电子钟的设计实现了上述基本要求开机默认显示当前时间, 20 秒内无操作进入休眠状态,关闭显示通过按键5 切换显示内容按键 4 显示当前光线值按键 1、2、3 调节时间等功能本产品在实时性还有欠缺,需要继续改进。