文章节选自:《ARM Cortex-M0从这里开始》 作者:zhaojun_xf https://bbs.eeworld.com.cn/thread-324656-1-1.html
1 概述
数字时钟是一种用数字电路技术实现年、月、日、时、分、秒、星期等计时的装置。与机械式时钟相比具有更高的准备性和直观性,且无机械装置,具有更长的使用寿命,因此得到了广泛的使用。
2 数字时钟功能实现
本章设计的数字时钟功能非常简单,只实现了基本的时钟显示和时钟设置功能。不过由于时钟采用TFT彩屏和专业字体的显示,使得时钟简洁、漂亮、大方。
1. 时钟显示
时钟显示分为三行,第1行显示年月日,第2行显示时间,第3行显示星期,具体格式如图8-1所示。时钟采用多种字体显示,而彩屏并不带字库,所以下面会介绍怎样制作字库和使用字库显示。
2. 时钟设置
时钟设置采用两种方式:一种是按键输入;另一种是红外遥控输入。
(1)按键输入
按键输入采用6个按键实现,其功能设置如下:
K1(KEY_OK):首次按下此键,进入时钟设置状态,再次按下此键,完成设置功能,并更新时间;
K2(KEY_VOLM):设置项值减一;
K3(KEY_VOLP):设置项值加一;
K4(KEY_UP) : 向前移动设置选项;
K5(KEY_DOWN):向后移动设置选项;
K6(KEY_EXIT):在设置状态下,按下此键,退出设置状态,放弃更改设置值。
(2)红外遥控
红外遥控使用的是频率为38KHz载波,实现的功能与按键是一一对应的。如图8-2所示为数字时钟使用的红外遥控。
表8-1所示为红外遥控对应的解码值,表中值都是采用十六进制表示。
要获取遥控的解码值非常简单,只需要在程序中的调用红外解码函数IrDecode()。并且在如图8-3所示的地方打上断点,然后按下遥控按键,当程序运行到断点时,就可以在irCom数组中获取按键解码值了。需要注意的是,数值irCom[2]才是真正的按键解码值。
3 数字时钟结构框图
数字时钟主要是由LPC1114主控、电源模块、数字时钟、按键输入、SD卡、红外遥控和TFT显示模块等七个部分组成,如图8-4所示。LPC1114主控、电源模块、TFT显示以及SD卡部分在前面已经介绍,在这一章中将不再累述,读者可以参阅第7章中的内容。下面将分别介绍数字时钟、按键和红外遥控。