第一章系统设计
第一节课题目标及总体方案
随着嵌入式技术的发展,我们身边充斥着各类各样的嵌入式电子产品。实时时钟(RTC)就是一种在现代电子设备中应用非常普遍,可以帮助人们实时、准确的掌握时间的器件,如手机、PDA及一些智能仪表都提供了时钟显示。
我们本次课题的目标就是要基于S3C44BOX芯片设计出一个实时时钟,编写汇编语言可以通过Code Warrior for ARM软件调试,然后下载至实验箱内进行观察。在试验箱中的LCD液晶屏幕上显示出时钟的圆盘和动态的指针,并在时钟下方显示出当前的年份和日期。另外,我们将要实现的系统分为几个模块实现,每个模块间相对独立而又相互联系,在主函数中进行调用。
第二节相关组件说明
一、LCD显示原理
S3C44B0X 中具有内置的LCD 控制器,它能将显示缓存(在SDRAM存储器中)中的LCD图像数据传输到外部的LCD驱动电路上的逻辑功能。它支持单色、4级、16级灰度LCD显示,以及256彩色LCD显示。在显示灰度时,它采用时间抖动算法(time-based dithering algorithm)和帧率控制 (Frame Rate Control)方法,在显示彩色时,它采用RGB的格式,即RED、GREEN、BLUE,三色混合调色。通过软件编程,可以实现233或332的RGB调色的格式。对于不同尺寸的LCD显示器,它们会有不同的垂直和水平象素点、不同的数据宽度、不同的接口时间及刷新率,通过对LCD 控制器中的相应寄存器写入不同的值,来配置不同的LCD 显示板。本次课设的显示模式设置为8bit单扫描模式。
- 5 -
二、项目文件说明
本实验使用实验教学系统的CPU板,液晶显示器(LCD),在LCD下方,有一个可调电阻,标号为VR2,它用来调整LCD的对比度及亮度。在LCD的右下方,有一个黄头的按键,它用来开关LCD,它的标号为LCD_ON/OFF。
该项目添加了包含LCD驱动程序的文件夹Gui,其中,包括四个文件夹,Font中存放的是字体文件,Glib中存放绘图的中层和上层的函数,上层函数是直接供用户调用的API,Init中存放GUI初始化的函数,Lcddriver中存放的是LCD的底层驱动函数。以及对LCD控制器的初始化函数。把LCD驱动程序加入的过程,也就是把整个GUI文件夹加入该项目里,同时,还要在Application\\INC目录下的config.h文件中,加入GUI程序的头文件,#include \,这是为了在应用中方便调用画图的API函数。如果,要在LCD上显示英文或汉字,还要在Application\\SRC\\Main.c
中声明引用的是extern GUI_FONT
CHINESE_FONT12;等外部定义过的字体。
图1
- 6 -
第三节项目设计模块描述及流程图
1.模块描述:我先进行了整个系统的规划,将整个系统分为四大模块:第一,
主函数模块;第二,时钟表盘的构建模块,包括:设置液晶全屏背景色、绘制时钟表盘形状并着色、绘制表盘内12个点的形状并着色以及绘制表盘内指针的形状并着色;第三,表盘下日期的显示模块,包括:定位表盘下时间和日期的坐标和日期显示函数的编写;第四,任务运行模块。
2.流程图:
- 7 -
一、主函数模块
二、时钟表盘的构建模块
(1)绘制时钟表盘形状并着色
(2)绘制表盘内12个点的形状并着色
- 8 -