基于嵌入式系统的LCD电子时钟方案设计书.docx

上传人:b****2 文档编号:2456168 上传时间:2022-10-29 格式:DOCX 页数:22 大小:467.07KB
下载 相关 举报
基于嵌入式系统的LCD电子时钟方案设计书.docx_第1页
第1页 / 共22页
基于嵌入式系统的LCD电子时钟方案设计书.docx_第2页
第2页 / 共22页
基于嵌入式系统的LCD电子时钟方案设计书.docx_第3页
第3页 / 共22页
基于嵌入式系统的LCD电子时钟方案设计书.docx_第4页
第4页 / 共22页
基于嵌入式系统的LCD电子时钟方案设计书.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

基于嵌入式系统的LCD电子时钟方案设计书.docx

《基于嵌入式系统的LCD电子时钟方案设计书.docx》由会员分享,可在线阅读,更多相关《基于嵌入式系统的LCD电子时钟方案设计书.docx(22页珍藏版)》请在冰豆网上搜索。

基于嵌入式系统的LCD电子时钟方案设计书.docx

基于嵌入式系统的LCD电子时钟方案设计书

院系:

物理工程学院

年级:

2009级

专业:

测控技术与仪器

学号:

20092240111

姓名:

雷亚东

指导老师:

田增国

基于嵌入式系统的LCD电子时钟设计

前言…………………………………………1

第一章课题目标及总体方案…………………2

第二章系统设计……………………………………3

1、系统结构原理…………………………………3

2、硬件组成与设计………………………………4

3、软件组成与设计…………………………………4

第三章实验结果……………………………………5

心得体会……………………………………5

参考文献……………………………………5

附录…………………………………………6

 

 

前言

嵌入式系统反映了当代最新的技术水平。

嵌入式系统不仅和一般的PC机上的应用系统不同,就是针对不同的具体应用而设计的嵌入式系统之间差别也很大。

嵌入式系统一般功能单一,简单而且兼容性方面要求不高,但是在大小和成本方面限制较多。

在本实验中以arm7处理器S3C44B0X和液晶显示屏LRH9J515XASTN/BW为基础,设计实现了带农历的实时时钟电路。

当有外部中断产生时,串口与S3C44B0X进行通信,实现更改时钟时间,且应用公历转农历的算法,实现将农历时间实时显示在LCD上。

另外还具有闹铃、星期提示功能,基本上能够满足人们的需求。

 

关键字:

arm7S3C44B0XLCD农历串口

 

第一章课题目标及总体方案

一、目的

●了解实时时钟的硬件控制原理及设计方法。

●掌握S3C44B0X处理器的RTC模块程序设计方法。

●初步掌握液晶显示屏的使用及其电路设计方法。

●掌握S3C44B0X处理器的LCD控制器的使用。

●通过实验掌握液晶显示文本和图形的方法以及程序设计的方法。

二、设备

1.硬件:

EmbestEDUKIT—Ⅱ/Ⅲ实验平台,EmbestARM标准/增强型仿真器套件,PC机。

2.软件:

EmbestIDEPro2004集成开发环境,Windows98/2000/NT/XP操作系统。

三、内容

通过运用S3C44B0X的RTC模块、串口模块和LCD模块,编写应用程序,在LCD上实时显示当前时间及农历时间。

四、研究方法

1.将任务分成若干模块,查阅相关论文资料,分模块调试和完成任务。

2.连接PC和EmbestEDUKIT—Ⅱ/Ⅲ实验箱,进行整个实验环境搭建。

第二章系统设计

1、系统结构原理图

本实验电子时钟的设计主要是将RTC模块中的时间传到LCD上进行实时显示;此外,通过串口与PC机通信,设置RTC模块中当前时间及报警时间,并把当前公历时间转换为农历时间一起在LCD上进行显示,其结构框图如右图所示:

LCD显示

 

2、硬件组成与设计

2.1实时时钟RTC模块

S3C44B0X实时时钟单元是处理器集成的片内外设,由开发板上的后备电池供电,可以在系统电源关闭的情况下运行,RTC发送8位BCD码数据到CPU。

传送的数据包括秒、分、时、星期、日期、月份和年份。

RTC单元时钟源频率由外部32.768kHz晶振提供,可以实现闹钟(报警)功能及时间片中断、置0计数功能。

2.2串口通信模块

S3C44B0X串行通信单元UART提供2个独立的异步串行通信口,皆可工作于中断和DMA模式。

最高波特率达115200b/s。

每个UART单元包含一个16字节FIFO,用于数据接收和发送。

此外,每个UART模块还包含可编程波特率、红外发送/接收、1个或2个停止位、5/6/7/8位数据宽度和奇偶校验。

通过初始化好串口,与RTC进行通信,来设置RTC当前时间及报警时间。

2.3液晶显示LCD模块

S3C44B0X处理器集成了LCD控制器,支持4位单扫描、4位双扫描和8位单扫描工作方式。

处理器使用内部RAM区作为显示缓存,并支持屏幕水平和垂直滚动显示。

数据的传送采用DMA(直接内存访问)方式,以达到最小延迟。

根据实际硬件水平和垂直像素点数、传送数据位数、时间线和帧速率方式等进行编程,以支持多种类型的显示屏。

LCD控制器主要液晶屏显示数据的传送、时钟和各种信号的产生与控制功能。

3、软件组成与设计

3.1读写RTC模块

S3C44B0X内部集成了RTC模块,通过读取RTC模块中寄存器BCDSEC、BCDMIN、BCDHOUR、BCDDAY、BCDDATE、BCDMON和BCDYEAR的值得到当前的相应的时间值。

还可以往这些寄存器里写值以设置当前的时间值。

3.2串口通信UART模块

采用S3C44B0X的UART模块,利用PC机进行当前时钟时间和时钟报警时间的设置。

其通信协议如下:

首先S3C44B0X发送字符串命令询问是否要设置报警时间值,若回复'y'或'Y',则从PC机上的键盘上发送报警时间值传递给报警寄存器ALMYEAR、ALMMON、ALMDAY、ALMHOUR、ALMMIN、ALMSEC;然后,

S3C44B0X发送命令询问是否要重新设置当着时间,若回复'y'或'Y',则发送新的时间值到BCDYEAR、BCDMON、BCDDAY、BCDHOUR、BCDMIN、BCDSEC,从而实现对报警时间及当前时钟时间的设置。

程序流程图如下:

 

3.3农历显示设计

S3C44B0X中RTC模块中没有提供农历的时间信息,因此采用公历转农历的方式来显示农历信息。

公历转农历的算法是:

首先建立公历年对应的农历数据,将其存入数组中,然后查找数组,实现公历到农历的转换并在LCD上显示。

公历转农历算法框图如下所示:

3.4液晶屏LCD显示设计

使用液晶屏显示最基本的是像素控制数据的使用。

像素控制数据的存放与传送形式决定了显示的效果。

图形显示可以直接使用像素控制函数实现。

把像素控制数据按一定形式存入即可实现字符显示。

本工程通过调用字符显示函数,将读取的实时时钟显示在LCD屏幕上。

 

第三章实验结果

心得体会

通过本次的实验操作,不仅使我深刻体会打了嵌入式系统的广阔的应用前景,而且也是我对课本知识的一次较深的回顾与体悟。

温故而知新,只有通过自己动手操作才能掌握真正的技术。

在有限的课时内我们掌握的知识也是相当有限的,我们对嵌入式系统的硬件和软件的基本原理,特点有了更深的认识。

这些知识对于本次实验是不够的。

我自己查找了许多资料,同时也参考了过去的课题,取长补短。

经过不断的努力,在老师和同学们的帮助之下,我顺利的完成了课程设计,对嵌入式系统的硬件/软件有了更深的了解,也深入掌握了嵌入式系统设计的基本方法,达到了预期的目的。

不仅这一次,以后我要更加努力的学习嵌入式系统,以期能够有更大的进步。

参考文献

1.林志琦ARM微控制器与液晶屏接口的研究[J].长春大学学报,2010,20

(2):

71-74.

2.耿辉.S3C44B0X数据手册,2006.

3.田泽ARM7嵌入式开发实验与实践北京:

北京航空航天大学出版社2010

4.郑丽丽,谢磊,李清宝.一种公历到农历日期转换算法的实现[J].微计算机信息,2005,21

(2):

74-76.

5.石熊基于ARM9的带农历实时时钟LCD显示设计[D]陕西西安电子科技大学2011

6.EL-ARM-830实验系统的资源介绍,2000.

附录

1.电路原理图

 

 

 

 

S3C44B0X处理器的LCD控制器框图

 

2.主要程序代码

/*******************************************************************************************

*File:

lcd.c

*Author:

embest

*Desc:

LCDcontrolanddisplayfunctions

*History:

*********************************************************************************************/

#include"lcd.h"

#include"bmp.h"

#include"44b.h"

#defineXWIDTH6

#defineLCD_STN256_COLOR

#defineASCII6x8

UINT32Tg_unLcdActiveBuffer[LCD_YSIZE][LCD_XSIZE/4]。

volatileexternintdata[]={0x2012,0x12,0x17,0x2,0x12,0x30,0x00}。

volatileexternchar*f_szdate[8]={"","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"}。

externUINT8Tg_ucAscii8x16[]。

externconstUINT8Tg_ucHZK16[]。

voidlcd_init(void)//LCD初始化函数

{

rDITHMODE=0x12210。

rDP1_2=0xa5a5。

rDP4_7=0xba5da65。

rDP3_5=0xa5a5f。

rDP2_3=0xd6b。

rDP5_7=0xeb7b5ed。

rDP3_4=0x7dbe。

rDP4_5=0x7ebdf。

rDP6_7=0x7fdfbfe。

rLCDCON1=(0x0)|(2<<5)|(MVAL_USED<<7)|(0x3<<8)|(0x3<<10)|(CLKVAL_COLOR<<12)。

rLCDCON2=(LINEVAL)|(HOZVAL_COLOR<<10)|(10<<21)。

rLCDCON3=0。

rLCDSADDR1=(0x3<<27)|(((unsignedint)g_unLcdActiveBuffer>>22)<<21)|M5D((unsignedint)g_unLcdActiveBuffer>>1)。

rLCDSADDR2=M5D((((unsignedint)g_unLcdActiveBuffer+(SCR_XSIZE*LCD_YSIZE))>>1))|(MVAL<<21)。

rLCDSADDR3=(LCD_XSIZE/2)|(((SCR_XSIZE-LCD_XSIZE)/2)<<9)。

rREDLUT=0xfdb96420。

//11111101101110010110010000100000

rGREENLUT=0xfdb96420。

//11111101101110010110010000100000

rBLUELUT=0xfb40。

//1111101101000000

rLCDCON1=(0x1)|(2<<5)|(MVAL_USED<<7)|(0x3<<8)|(0x3<<10)|(CLKVAL_COLOR<<12)。

rPDATE=rPDATE&0x0e。

lcd_clr()。

}

voidlcd_clr(void)

{

UINT32Ti。

UINT32T*pDisp=(UINT32T*)g_unLcdActiveBuffer。

for(i=0。

i<(SCR

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1