2024年8月9日发(作者:)

a叶技2011年第24卷第4期 

Electronic Sci.&Tech./Apr.15.2010 

基于ARM9的带农历实时时钟LCD显示设计 

彳 能 

(西安电子科技大学电子工程学院,陕西西安

摘要

710071) 

以ARM9处理器¥3C2440和液晶显示屏WXCAT35为基础,设计实现了带农历的实时时钟显示电路。通 

过串1:7与¥3C2440通信,实现更改时间和设置报警时间的功能,应用公历转换为农历的算法,实现实时时钟和农历在 

液晶显示屏上的显示。 

关键词ARM9;实时时钟;农历;LCD 

TP311.53 文献标识码A 文章编号1007—7820(2011)o4—096一o4 中图分类号

Design of a Real-time Clock LCD Display System 

Shi Xiong 

th the Lunar Calendar Base on ARM9 

(School of Electronic Engineering,Xidian University,Xi’an 7 1 007 1,China) 

Abstract Based on the ARM9 core processor¥3 C2440 and the WXCAT35 liquid crystal display(LCD),a 

real-time clock(RTC)display circuit with the lunar calendar is designed.Communication with¥3C2440 through a 

serial port enables the function of changing the time and setting the alarm time to be achieved.By the algorithm for 

the transform between the Gregorian calendar and lunar calendar,real—time clock(RTC)and lunar calendar display 

on the liquid crystal display(LCD)panel are realized. 

Keywords ARM9;real—time clock;lunar calendar;LCD 

¥3C2440A是Samsung公司为手持设备应用提供 

的低功耗、高性价比芯片。¥3C2440A基于ARM920T 

内核,并在ARM920T内核基本功能的基础上集成了 

丰富的外围功能模块,如UART、RTC、LCD控制器 

外部晶体振荡器,外部晶体振荡器与¥3C2440A的连 

接如图1所示。XTIae和XTOrte分别是RTC的 

32.768 kHz晶体振荡器输入和输出,2个22 pF电容 

是晶体振荡器的匹配电容,只有在外部所接电容为匹 

配电容的情况下,晶体振荡器频率才能保证在标称频 

率附近的误差范围内 。 

等外围器件,从而降低了嵌人式应用系统的成本。本 

文采用¥3C2440A和WXCAT35液晶显示屏模块,搭 

建以两者为基础的嵌入式液晶系统工作平台。在此平 

台基础上,详细讨论带农历的实时时钟在液晶显示屏 

上的显示以及更改时间和设置报警时间的方法,并给 

出了具体的实现程序…。 

CND 

1 系统硬件设计 

图1¥3C2440A和RTC外部晶体振荡器连接图 

1.1 实时时钟(RTC)模块 

¥3C2440A集成了具有日历功能的RTC模块,它 

1.2通用异步接收传输(UART)模块 

¥3C2440A的UART提供了3个独立的异步串行 

可以在系统关闭的情况下使用备用电池工作。RTC使 

用STRB/LDRB ARM操作传输二进制编码的十进制 

数(BCD)的8位数据给CPU。数据包括年、月、日、 

星期、小时、分钟、秒的时间信息。此外,RTC模块 

I/O端口,每个端口都可以在中断模式或者DMA模 

式下操作。UART使用系统时钟可以支持最高 

l15.2 kb・S 的速率。在对UART进行操作时,数 

据接收帧和发送帧的格式都是可编程的,它包含1个 

还可以实现报警功能。RTC模块采用32.768 kHz的 

收稿日期:2010.11.29 

作者简介:石熊(1985一), 

男,硕士研究生。研究方向:电 

路与系统。 

96 

开始位,5~8个数据位,1个可选的奇偶位和1或2 

个停止位,这些都是通过线性控制器(ULCONn)设 

置。本文采用UART更改时间和设置报警时间,串口 

通信连接图如图2所示。 

WWW.r_lianzikeji.orcj 

石熊:基于ARM9的带农历实时时钟LCD显示设计 

C , VDD33V 

_-{l} I__一 Cl+ 

Q:! E 

1 2 

VDD 

+ 

BCDDATE,BCDMON和BCDYEAR分别存储了当前 

3 

1 IX F 

 

的秒,分,小时,星期,日,月和年,表示时间的数 

4 

一L—II 一 C + — 

1 IX F 

5 

值都是BCD码。这些寄存器的内容可读可写。在进 

行读写操作时,必须将RTC控制寄存器RTCCON的 

1 F 

D.1

BXD 

 LLF C 

一 

GND 个Xn1 

GND 

!IX 

尺I1N l RXn 

第0位置1_4-5]。实现读写功能的程序如下。 

jBI 

10uT 

尺1ouT 

j 王SQ T20uT 2lN 

nRTS

nCTS 

 

写RTC内部寄存器: 

R 2IN 2ouT 

void RTC

_

Time

_

Set(void)//写操作 

SP3232EEN 

{rRTCCON=1;//RTC读写使能 

图2 串口通信连接图 

rBCDYEAR=data[0];//年 

1.3 LCD显示模块 

rBCDMON=data[1];//月 

¥3C2440A的LCD控制器的作用是将LCD图像数 

rBCDDATE=datal 2 1.//日 

据从系统存储器中的视频缓冲区传送到外部LCD驱 

rBCDDAY:data[3];//星期 

动器。LCD控制可以通过编程实现屏幕的不同要求, 

rBCDHOUR=data[4];//小时 

比如:水平和垂直像素的数量、接口时钟、刷新率 

rBCDMIN=data[5];//分 

等。¥3C2440A与WXCAT35液晶显示屏模块的连接 

rBCDSEC=data[6];//秒 

电路如图3所示。 

rRTCCON=0;//RTC读写无效 

} 

VFRAME IVS 

读RTC内部寄存器: 

VLINE IHS 

void RTC

Time

__

VCLK DCLK 

Get(void)//读操作 

VM DEN 

{rRTCCON=1;//RTC读写使能 

VD。-VD 23 口 23 

data[0]=rBCDYEAR;//年 

S3C

VDD IN 

2440A __( 巫卜 cWXc CAT35 

data[1]=rBCDMON;//月 

datal 2 l=rBCDDATE;//日 

图3¥3C2440A和LCD接口连接图 

data[3]=rBCDDAY;//星期 

图中LCD控制器接口信号的意义: 

data[4]=rBCDHOUR;//小时 

VFRAME:LCD控制器与LCD驱动器之间的帧 

data[5]=rBCDMIN;//分 

同步信号,它通知LCD屏新一帧的显示,LCD控制 

data[6]=rBCDSEC;//秒 

器在一个完整帧的显示后发出VFRAME信号,开始 

rRTCCON=0;//RTC读写无效 

} 

新一帧显示。 

2.2更改时间和设置报警时间 

VLINE:LCD控制器与LCD驱动器之间的同步 

采用¥3C2440A的UART,在PC机上实现对实时 

脉冲信号,LCD驱动器通过它来将水平移位寄存器的 

时钟的更改和设置报警时间。其通讯协议为:当从 

内容显示到LCD屏上。 

PC机上发送0xaa时,分别将年、月、日、星期、小 

VCLK:LCD控制器与LCD驱动器之间的像素时 

时、分和秒写到实时时钟数据寄存器中。当 

钟信号。 

¥3C2440A接收到数据后发送Oxaa以示确认,调用前 

VM:LCD驱动器所使用的交流信号。LCD驱动 

面的写操作函数,从而实现对实时时钟的更改;当从 

器使用VM信号改变用于打开或者关闭像素的行和列 

PC机上发送0xbb时,分别将预置的报警时间 

电压的极性,从而控制像素点的显示或熄灭。 

ALMYEAR(年)、ALMMON(月)、ALMDATE(日)、 

VD。~VD:,:LCD像素数据输出端口。 

ALMHOUR(小时)、ALMMIN(分)和ALMSEC(秒)写 

2 软件设计 

到报警时间数据寄存器中,当¥3C2440A接收到数据 

后发送0xl ̄b以示确认,调用设置报警时间设置函数, 

2.1 读写RTC操作 

从而实现对报警时间的设置。通过设置报警控制寄存 

¥3C2440内部集成了RTC模块,其内部的寄存 器RTCALM,即可实现报警,程序流程图如图4 

器 BCDSEC, BCDMIN, BCDHOUR, BCDDAY, 

所示L6 J。 

WWW.[1ianzik[, ̄ji 1511’q—— 97 

石熊:基于ARM9的带农历实时时钟LCD显示设计 

表2公历年对应的农历数据的第2 Byte 

第2 Byte 位 描述 

第7位表示5月份的大小,第6位表 

农历5一l2月的大小[7:0]示6月份的大小,以此类推。 

0:小月29天;1:大月30天。 

表3公历年对应的农历数据的第3 Byte 

第3 Byte 位 描述 

农历 个月的 耋 。噘。 

春节所在的公历月份[6:5]十六进制表示。 

春节所在的公历日期[4:o]十六进制表示。 

公历转农历的算法框图如图5所示。 

农历年份等于公历年 

份减1,根据当年公历 

年有无闰月和农历大 

小月判定公历月和日 

所对应的农历月和日 

开始 

图4 串口通信流程图 

2.3农历显示设计 

读取公历年的 

年、月、日 

位组一一籍工 工箍 取在明一一算年, 

Y 

农历年份与公历年份 

相同,根据当年公历 

年有无闰月和农历大 

小月判定公历月和日 

所对应的农历月和日 

¥3C2440的实时时钟模块没有提供农历的时间信 

息,因此采用公历转农历的方式,实现对农历的显 

示。公历转换为农历的算法是:首先建立公历年对应 

的农历数据,并将其存放人数组中,然后通过查表的 

方式实现公历与农历的转换。 

建立公 了年对应的农历数据,每年用3个字节表示。 

公历年对应的农历数据的第1 Byte的高4位表示 

结束 

农历闰年月份,低4位表示农历1~4月的大小,其 

具体含义如表1所示。第2 Byte表示农历5~12月的 

图5公历转农历框图 

大小,其具体含义如表2所示。第3 Byte的最高位表 

示农历第13个月的大小,第7位和第6位表示春节 

所在的公历月份,低5位表示春节所在的公历日期, 

2.4实时时钟的显示 

通过调用字符显示函数,将读取的实时时钟显示 

其具体含义如表3所示。 

以2010年为例,农历无闰月,农历1月和3月是 

在LCD屏幕上。本文将要显示的实时时钟字符转换 

成字模,把所得的字模放在数组中,读取实时时钟寄 

存器,调用字符显示函数显示数字和汉字,从而将实 

时时钟显示在LCD屏幕上。最后显示效果图如图6 

所示。 

大月,2月和4月是小月,故而第1 Byte为00001010 

(即0x0A);农历的5月、8月、10月和12月是大月, 

6月、7月、9月和11月是小月,故而第2 Byte为 

10010101(即0x95);由于2010年的农历没有闰月,所 

以也就没有第13个月,故而第3 Byte的第7位为0, 

2010年春节所在的公历2月14日,故而第3 Byte的第 

6一O位为1001110,即第3 Byte为Ox4E。 

表1 公历年对应的农历数据的第1 Byte 

第1 Byte 位 描述 

农历闰年月份 [7:4] 

0:无闰月;1:有闰月。 

第3位表示1月份的大小,第2位表 

农历1—4月的大小[3:0] 示2月份的大小,以此类推。 

0:小月29天;1:大月30天。 

图6实验显示效果图 

www.dianzik[- ̄ji。0rq 

石熊:基于ARM9的带农历实时时钟LCD显示设计 

北京:北京航天航空大学出版社,2008. 

黄智伟,邓月明,王彦等.ARM9嵌入式系统基础教程 

[M].北京:北京航天航空大学出版社,2008. 

冯乔.基于单片机的实时时钟设计[J].机械制造与自 

动化,2009,38(6):141—142. 

3 结束语 

设计了基于Samsung公司ARM9处理器S3C2440 

和液晶显示屏WXCAT35的带农历实时时钟显示电 

路。为了能够实现RTC的实时显示,采用¥3C2440A 

中提供的RTC时间节拍中断,让它每秒钟中断一次, 

每次中断读取时间,刷新一次实时时钟。此外,在通 

周高伟,万军.基于ARM和LCD模块的中英文字符显 

示[J].科技信息,2009(34):625—626. 

郑丽丽,谢磊,李清宝.一种公历到农历日期转换算法 

的实现[J].微计算机信息,2005,21(2):74—76. 

Samsung Electronics Co.Ltd.¥3C2440A 32一BIT RISC 

过UART对RTC进行修改后,采用外部按键中断实 

现对实时时钟的更新,从而完成对时间的修改。设计 

通过软件形式使得不带农历实时时钟芯片能够实现对 

Microprocessor User'S Manual[Z].Korea:Revision 0. 

农历的显示,增强了芯片的应用范围,为在需要农历 

12,Samsung Electronics Co.Ltd.,2004. 

时钟作为参考的工作环境提供了便利。 

Wanxin Image.WXCAT35 T丌

LCD Product Speciifca— 

tions[z]. Shenzhen:Vision 1.2,Wanxin Image 

参考文献 

Inc.,2007. 

[1] 王黎明,陈双骄.ARM9嵌入式系统开发与实践[M]

]●-]j 1J 1J 

 

+- 

(上接第84页) 

3结束语 

参考文献 

针对当前FPGA+DSP的信号处理平台现状,提 

[1] 丁鹭飞,耿富录.雷达原理[M].西安:西安电子科技 

出一种通用的硬件结构,该结构不仅将两种处理器的 

大学出版社,2002. 

优点集于一身,兼顾速度和灵活性而且可以应用在不 

[2] 

刘书明,罗勇江.ADSP TS20XS系列DSP原理与应用设 

计[M].北京:电子工业出版社,2007. 

同雷达信号处理系统中,具有很强的通用性。分别介 

[3] 

袁鑫.单脉冲跟踪雷达信号处理机设计与实现[D].西 

绍了此平台在连续波雷达以及脉冲雷达中的一种应 

安:西安电子科技大学,2009. 

用,并且这些方法已经成功应用于雷达信号处理机 

[4] 

AnMog Devices,Inc.ADSP—TS201 TigersHARc⑧Pro- 

cessor Programming Reference[z].USA:Analog De- 

中。除了文中列举的方法外由于本结构硬件连通的灵 

vices,Inc,2005. 

活性,本结构可以根据需要应用于各种雷达处理系 

[5] 

Analog Devices,Inc.ADSP—TS201 TigerSHARC⑧Pro— 

统中。 

cessor Hardware Reference l z 1.USA:AnMog Devices, 

Inc,2005. 

(上接第91页) 

区问题和在大电流情况下,对电子设备的安全稳定工 

电源的设计[J].电力电子技术,2007,41(10):74—76. 

作实施了有效保护,能为后级电路提供稳定的电压输 

[2] 胡彬,周有庆,钟选书,等.电子式电流互感器高压侧 

出。通过实验验证了该方法的可行性,能够使工作在 

电源的研究与实现[J].电气应用,2006,25(5): 

架空输电线的电子设备连续稳定工作,有效地解决了 

99—102. 

高压侧电子设备的供能问题。 

[3] 

邱关源.电路[M].北京:高等教育出版社,2006. 

[4] 修荣垄,叶军旭,温渤婴.智能型线路故障检测器的研 

参考文献 

制[J].电力自动化设备,2009,29(2):132—135. 

[5] 上海如韵电子有限公司.CN3058[z].上海:上海如 

[1]高迎霞,毕卫红,刘丰.电子式电流互感器高压端供能 

韵电子有限公司,2008. 

www.dianzik ̄ji.0rq