LED点阵显示式多功能数字电子钟设计

LED点阵显示式多功能数字电子钟设计

摘要:电子钟在人们生活中应用越来越普遍,越来越智能化,并且融入到了周围的各种电子设备之中。利用高速1T单片机STC12C5A60S2的快速处理速度,配置丰富的内部资源(如AD转换、双串行UART、SPI总线)进行了多功能数字电子钟设计。系统具有时间显示、定时、整点半点报时、时间调整功能,且带有数码管、LCD1602和LED点阵显示功能与语音录放提示功能。设计的电子钟更加智能方便,增强了用户交互体验、体现了人性化设计。

关键词关键词:数字电子钟;LED点阵;单片机STC12C5A60S2

中图分类号:TP319

文献标识码:A 文章编号文章编号:16727800(2014)004009303

基金项目基金项目:华南农业大学青年骨干教师项目(华农人[2011]57)

作者简介作者简介:谢家兴(1979-),男,博士,华南农业大学工程学院讲师,研究方向为光电子。

0 引言

时钟,自从它发明的那天起,就成为人类的朋友,每个

人都离不开它。从机械钟表到电子钟,一直伴随着我们的生活[12]。本方案通过认真了解机械钟表和电子钟的原理,设计了多功能数字电子钟,将机械钟表和电子钟结合在一起,以数字模拟机械、实现优势互补为重要理念,增加用户交互和人性化设计。

本文通过加入自动适应环境模块、矩阵按键模块、语音录放模块增加了时钟与用户交互的方式和方便性,实现人性化设计。

1 系统功能

本多功能数字电子钟具有如下功能:①显示时间、调整时间、报时、定时;②带LED点阵模拟显示机械钟表;③带语音录放功能;④带按键输入控制;⑤电池供电。

本设计分为以下8个模块:①单片机控制模块:电子钟控制核心;②时间管理模块:利用时钟芯片获取当前时间更新信息;③LED点阵显示模块:利用数字电路控制方式实现对机械钟表的模拟和功能增强;④语音录放模块:通过耳机收集音乐数据、话筒收集语音信息完成提示音录入;⑤时间显示模块:由数码管显示时分秒;液晶LCD1602显示年月日星期和自定义的待办事项;⑥按键输入控制模块:利用4×4矩阵按键输入数字、字母和部分控制信号;⑦动力支持模块:利用电池提供电源;⑧语音与信息存储模块:将录入的语音信息存储至芯片中。

系统整体功能框图如图1所示。

图1 系统整体功能框图

2 硬件电路制作

结合电子钟的整体结构和电路设计,电子钟三层电路板整体设计如下:

(1)顶层电路板。该层是电子钟的显示模块,如图2所示。包括数码管、LCD1062和LED点阵[3]。

(2)中间层电路板。该层是电子钟的控制核心和语音录放等模块,如图3所示。

(3)底层电路板。该层是电子钟的动力支持模块和键盘输入控制模块,如图4所示。

3 软件设计与实现

根据各个模块功能又可分为以下几个子程序流程:

单片机控制(Mcu_Control)、串口(UART)、时钟(Timer)、显示(Display)、报时定时(Time_Alarm)。

图2 顶层电路板

图3 中间层电路板

图4 底层电路板

(1)单片机控制(Mcu_Control)。这是整个软件设计中的主程序,流程如图5所示。电子钟启动时

STCAA12C5A60S2将周期性地从时钟芯片DS1302中获取时间信息更新时间。在获取了时间信息后,通过串口传输数据

给AT89C2051显示时间,同时检测定时报时和待办事项是否发生,若发生则进行定时报时和待办事项提示。在两次获取时间信息的指令之前可以接受中断或者其它形式的触发,但在获取时间信息过程中为保证时间准确将屏蔽所有触发[4]。

(2)串口(UART)。串口传输的程序流程如图6所示。

图5 单片机控制流程图6 串口传输的程序流程

在每1次发送数据之前需检测从设备是否准备好,若准备好则开始传输数据;传输完成之后则等待从设备发出接收完成标志,若已接收则可发送下一数据。

(3)时钟(Timer)。时钟程序流程说明了时钟芯片DS1302与STC12C5A60S2之间通信的时序,如图7所示。

在DS1302工作时,若主电源电压小于备用电池电压,则切换至备用电池。

(4)报时定时(Time_Alarm)。报时定时流程如图8所示,检测设定时间点及待办事项,整点及半点进行提示。

图7 时钟程序流程图8 报时定时流程

(5)显示(Display)。显示流程如图9所示,说明了数码管、LCD1602和LED点阵显示时间的过程。

图9 显示流程

4 调试及功能演示

(1)时间获取。通过时钟芯片DS1302获取时间信息,写好它与单片机通信用的三线式驱动时序,在程序中分别使

用单字节和触发模式进行传输测试,注意不要把DS1302的主电源和备用电源引脚装反。

(2)显示(数码管显示时分秒、液晶显示年月日星期、点阵模拟机械时分秒针)。进行这一部分的调试,可以用基本的功能测试函数来完成,如:让六位数码管分别静态显示从0-9不断变化的字符,之后以很慢的速度进行一次动态显示;让LCD1602完成初始化,即设置显示模式、清屏、设置光标闪烁和位置;对于LED点阵,首先通过IO口输出高电平让点阵全亮,并测试总的输入电流、记录亮度情况,接着让点阵的水平和竖直径向上的LED全亮,最终验证点阵显示的图形和字符编码是否相同[5]。

(3)串行UART接口。串行口是控制核心STC12C5

A60S2 和扩展控制AT89C2051之间的通信接口,调试前应保证定时器设置和串口中断设置正确、单片机晶振符合串行通信要求。对于STC12C5A60S2,可编写串行发送数据程序至电脑的超级终端或其它串口调试软件,对于AT89C2051,可编写串行接收数据程序接收来自超级终端等数据并显示。

相关文档
最新文档