嵌入式课程设计报告---基于LCD的电子时钟.doc_第1页
嵌入式课程设计报告---基于LCD的电子时钟.doc_第2页
嵌入式课程设计报告---基于LCD的电子时钟.doc_第3页
嵌入式课程设计报告---基于LCD的电子时钟.doc_第4页
嵌入式课程设计报告---基于LCD的电子时钟.doc_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

河海大学本科课程设计报告河海大学本科课程设计报告 - 1 - 河河海海大大学学计计算算机机及及信信息息工工程程学学院院(常常州州) 课课程程设设计计报报告告 题题 目目 基基于于lcd 的的电电子子时时钟钟 专专业业学学号号 电电子子信信息息工工程程 0962610222 授授课课班班号号 277701 学学生生姓姓名名 王王宁宁 指指导导教教师师 梁梁瑞瑞宇宇 完完成成时时间间 2012.5.18 河海大学本科课程设计报告河海大学本科课程设计报告 - 2 - 课程设计(报告)任务书课程设计(报告)任务书 (理(理 工工 科科 类)类) 、课程设计(报告)题目: 基于基于 lcd 的电子时钟实验的电子时钟实验 、课程设计(论文)工作内容 一、课程设计目标一、课程设计目标 1、培养综合运用知识和独立开展实践创新的能力; 2、培养学生将理论知识与实际应用结合在一起; 3、培养学生的自我学习能力和解决问题的能力; 4、培养学生的协作意识和团队合作能力; 5、培养学生的总结经验的能力。 二、研究方法及手段应用二、研究方法及手段应用 1、问题解决模块化,将任务分成若干模块,分模块调试和完成任务; 2、查阅网上的相关素材,查阅相关论文资料,进行比较、研究; 3、在独立思考的基础上,请教老师,和同组同学讨论、学习; 4、反复调试、总结经验、排除差错; 5、连接 pc 和 el-arm-830 实验箱,完成整个实验环境搭建; 6、运用 code warrior for arm 编译软件编译汇编语言和进行调试; 7、使用 h-jtag 下载至硬件进行观察、调试。 三、课程设计预期效果三、课程设计预期效果 1、在液晶屏上显示表盘,和时间点和时、分、秒针; 2、在液晶屏上显示时、分、秒、年、月、日; 3、在液晶屏上实现指针的动态图像; 4、可以实现自己设定的初始时间。 学生姓名: 王宁 专业年级: 09 电子信息工程 河海大学本科课程设计报告河海大学本科课程设计报告 - 3 - 目目录录 前言前言4 4 第一章系统设计第一章系统设计5 5 第一节课题目标及总体方案第一节课题目标及总体方案5 5 第二节相关组件说明第二节相关组件说明5 5 第三节项目设计模块描述及流程图第三节项目设计模块描述及流程图7 7 1.1.主函数模块主函数模块8 8 2.2.时钟表盘的构建模块时钟表盘的构建模块8 8 3.3. 表盘下日期的显示模块表盘下日期的显示模块9 9 4.4.任务运行模块任务运行模块 10 第二章第二章结果与显示结果与显示1111 结果显示结果显示1111 心得体会心得体会1212 参考文献参考文献1313 附附 录录1313 河海大学本科课程设计报告河海大学本科课程设计报告 - 4 - 前前 言言 近年来,随着计算机技术及集成电路技术的发展,嵌入式技术日渐普及, 在通讯、网络、工控、医疗、电子等领域发挥着越来越重要的作用。嵌入式系 统无疑成为当前最热门最有发展前途的 it 应用领域之一。 实时时钟(rtc)器件是一种能提供日历/时钟、数据存储等功能的专用集 成电路,常用作各种计算机系统的时钟信号源和参数设置存储电路。rtc 具有 计时准确、耗电低和体积小等特点,特别适用于在各种嵌入式系统忠记录事件 发生的时间和相关信息,尤其是在通信工程、电力自动化、工业控制等自动化 程度较高领域的无人职守环境。随着集成电路技术的不断发展,rtc 器件的新 品也不断推出。这些新品不仅具有准确的 rtc,还有大容量的存储器、温度传 感器和 a/d 数据采集通道等,已成为集 rtc、数据采集和存储于一体的综合功 能器件,特别适用于以微控制器为核心的嵌入式系统。 关键字:嵌入式系统、实时时钟 rtc 河海大学本科课程设计报告河海大学本科课程设计报告 - 5 - 第一章系统设计第一章系统设计 第一节课题目标及总体方案第一节课题目标及总体方案 随着嵌入式技术的发展,我们身边充斥着各类各样的嵌入式电子产品。实 时时钟(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 单扫描模式。 河海大学本科课程设计报告河海大学本科课程设计报告 - 6 - 二、项目文件说明二、项目文件说明 本实验使用实验教学系统的 cpu 板,液晶显示器(lcd) ,在 lcd 下方, 有一个可调电阻,标号为 vr2,它用来调整 lcd 的对比度及亮度。在 lcd 的 右下方,有一个黄头的按键,它用来开关 lcd,它的标号为 lcd_on/off。 该项目添加了包含 lcd 驱动程序的文件夹 gui,其中,包括四个文件夹, font 中存放的是字体文件,glib 中存放绘图的中层和上层的函数,上层函 数是直接供用户调用的 api,init 中存放 gui 初始化的函数,lcddriver 中 存放的是 lcd 的底层驱动函数。以及对 lcd 控制器的初始化函数。把 lcd 驱动程序加入的过程,也就是把整个 gui 文件夹加入该项目里,同时,还 要在 applicationinc 目录下的 config.h 文件中,加入 gui 程序的头文件, #include “guiglibglib.h“,这是为了在应用中方便调用画图的 api 函数。如果,要在 lcd 上显示英文或汉字,还要在 applicationsrcmain.c 中声明引用的是 extern gui_font chinese_font12;等外部定义过的字体。 图 1 河海大学本科课程设计报告河海大学本科课程设计报告 - 7 - 第三节项目设计模块描述及流程图第三节项目设计模块描述及流程图 1.1.模块描述:模块描述:我先进行了整个系统的规划,将整个系统分为四大模块:第一, 主函数模块;第二,时钟表盘的构建模块,包括:设置液晶全屏背景色、绘制 时钟表盘形状并着色、绘制表盘内 12 个点的形状并着色以及绘制表盘内指针的 形状并着色;第三,表盘下日期的显示模块,包括:定位表盘下时间和日期的 坐标和日期显示函数的编写;第四,任务运行模块。 2 2.流程图流程图: 河海大学本科课程设计报告河海大学本科课程设计报告 - 8 - 一、主函数模块一、主函数模块 二、时钟表盘的构建模块二、时钟表盘的构建模块 (1)绘制时钟表盘形状并着色 (2)绘制表盘内 12 个点的形状并着色 河海大学本科课程设计报告河海大学本科课程设计报告 - 9 - (3)绘制表盘内指针的形状并着色(以秒针为例) 三、表盘下日期的显示模块三、表盘下日期的显示模块 (1)定位表盘下时间和日期的坐标(仍以秒计时为例) (2)日期显示函数的编写 河海大学本科课程设计报告河海大学本科课程设计报告 - 10 - 四、任务运行模块四、任务运行模块 河海大学本科课程设计报告河海大学本科课程设计报告 - 11 - 第二章第二章结果与结果与显示显示 结果显示结果显示 1.经过多次的调试和排查,以及总结,使用编译器编译,编译器提示编 译文件正确,没有出现任何错误,没有出现任何警告,而且编译出文件容 量很小,下载迅速,符合软件设计要求。 河海大学本科课程设计报告河海大学本科课程设计报告 - 12 - 2.下面的图片是从实验箱上的 lcd 屏幕上显示的图像拍下来的,也就是 我本次课程设计的成果。从图片显示上可以看出,所有预计实现的功能和 界面都实现了。表盘显示在相对中央的地方,整个屏幕以白色为基调,表 盘底色为灰色,指针为红、绿、黄三种颜色,点数为绿色,表盘下方显示 当前时间、日期,同时界面很漂亮,色彩对比很鲜明。 图 2效果显示图 心得体会心得体会 说实话, 刚开始拿到课设题目的时候感觉 毫无头绪,即使在查阅了大 量相关资料的基础上。后来,手上有了一份参考程序,打开一看,顿时懵了。 当时想如果纯粹靠我自己或者和同学讨论,恐怕很难完成这次课设吧。于是, 实验室刚开放,我就立刻去调试程序,通过观察试验箱上显示的结果来理解 程序。一个模块一个模块对应的理解下去之后,思路开始清晰起来。每当遇 河海大学本科课程设计报告河海大学本科课程设计报告 - 13 - 到一行程序不懂或者有疑问时,比如这行程序起什么作用、可不可以删掉或 者可不可以换个位置,我都通过程序的相关改动结合实验结果的观察将这些 疑问解决掉了。同时,同学的帮助也给了我很多的启发,非常感谢他们。 但不得不承认,关于 c/os-ii 操作系统方面理解的很不透彻。验收时, 我只是把时钟界面的构建部分理解了,没有过多的加深对操作系统c/os- ii 的学习,所以验收时对于老师的提问也是磕磕绊绊。因而,在编写这份报 告前,我又认真地上网搜索了 c/os-ii 操作系统的简介,尤其是它的优点 和任务调度方面。在写这份报告时,我也许还没能完全弄懂c/os-ii 操作 系统,但我相信,只要努力过,总会有收获。 参考文献参考文献 吴学智, 基于 arm 的嵌入式系统设计与开发 人民邮电出版社, 2007 金建设, 嵌入式系统基础实验大连理工大学出版社, 2009 王晓薇, 嵌入式硬件基础实验与习题解答电子工业出版社, 2009 附附录录 河海大学本科课程设计报告河海大学本科课程设计报告 - 14 - 1.软件清单: 1)code warrior for arm 编译软件; 2)axd debugger 调试软件; 3)h-jtag 软件; 2.硬件: pc 和 el-arm-830 实验箱; 程序清单: #include “incconfig.h“ #define x_line 160 #define y_line 80 extern gui_font chinese_font12; extern gui_font chinese_font16; extern gui_font gui_font8x16; i8 hour3,min3,sec3; i8 hour = 9, min = 0, sec = 0,ms; i8 yea13,yea23,mon3,day3; int yea1 = 20,yea2=12, mon = 5, day = 18; i8 xh13,xh23,xh33,xh43,xh53,xh63,xh73; int xh1=9,xh2=62,xh3=61; int xh4=02,xh5=19,xh6=22,xh7=23; 河海大学本科课程设计报告河海大学本科课程设计报告 - 15 - /spacexs61、spacys61分别表示秒针的横坐标、纵坐标 /spacexm61、spacexm61分别表示分针的横坐标、纵坐标 /spacexh13、spacyh13 分别表示时针的横坐标、纵坐标 int spacexs61=160,165,170,175,180,185, 189,193,197,201,205, 206,207,208,209,210, 209,208,207,206,205, 201,197,193,189,185, 180,175,170,165,160, 155,150,145,140,135, 131,127,123,119,115, 114,113,112,111,110, 111,112,113,114,115, 119,123,127,131,135, 140,145,150,155,160, , spaceys61=30,31,32,33,34, 35,39,43,47,51, 55,60,65,70,75, 80,85,90,95,100, 105,109,113,117,121, 125,126,127,128,129, 130,129,128,127,126, 125,121,117,113,109, 105,100,95,90,85, 80,75,70,65,60, 55,51,47,43,39, 35,34,33,32,31,30, spacexm61=160,164,168,172,176,180,183,186,189,192, 195,196,197,198,199,200,199,198,197,196, 河海大学本科课程设计报告河海大学本科课程设计报告 - 16 - 195,192,189,186,183,180,176,172,168,164, 160,156,152,148,144,140,137,134,131,128, 125,124,123,122,121,120,121,122,123,124, 125,128,131,134,137,140,144,148,152,156, 160 , spaceym61=40,41,42,43,44,45,48,51,54,57, 60,64,68,72,76,80,84,88,92,96, 100,103,106,109,112,115,116,117,118,119, 120,119,118,117,116,115,112,109,106,103, 100,96,92,88,84,80,76,72,68,64, 60,57,54,51,48,45,44,43,42,41, 40 , spacexh13=160,175,185,190,185,175,160,145,135,130,135,145,160, spaceyh13=50,55,65,80,95,105,110,105,95,80,65,55,50, /当前要显示的时间的 3 个指针的坐标取地址。 *placex= /显示学号函数 void display_xh1(char xx1,char yy1); void display_xh2(char xx2,char yy2); void display_xh3(char xx3,char yy3); /show s and m and h void shows() set_color(gui_gray); /擦除上一秒的 draw_line(x_line,y_line,*placex,*placey); placex=placex+1; placey=placey+1; 河海大学本科课程设计报告河海大学本科课程设计报告 - 17 - set_color(gui_yellow); /显示下一秒的 draw_line(x_line,y_line,*placex,*placey); set_color(gui_red); /显示下一分的 draw_line(x_line,y_line,*placexm,*placeym); set_color(gui_green); /显示下一时的 draw_line(x_line,y_line,*placexh,*placeyh); if(placex= placey= /show munite and hour void showm() set_color(gui_gray); /擦除上一分的 draw_line(x_line,y_line,*placexm,*placeym); placexm=placexm+1; placeym=placeym+1; set_color(gui_red); /显示下一分的 draw_line(x_line,y_line,*placexm,*placeym); set_color(gui_green); /显示下一时的 draw_line(x_line,y_line,*placexh,*placeyh); if(placexm= placeym= /show hour void showh() set_color(gui_gray); /擦除上一时的 draw_line(x_line,y_line,*placexh,*placeyh); placexh=placexh+1; placeyh=placeyh+1; set_color(gui_green); /显示下一时的 draw_line(x_line,y_line,*placexh,*placeyh); if(placexh= placeyh= void shouw_cricle() / 整 点 set_color(gui_green); fill_circle (160, 30,2); / 12 点(x,y,r) fill_circle (135, 35,2); / 11 点(x,y,r) fill_circle (115, 55,2); / 10 点(x,y,r) fill_circle (110, 80,2); / 9 点(x,y,r) fill_circle (115, 105,2); / 8 点(x,y,r) 河海大学本科课程设计报告河海大学本科课程设计报告 - 19 - fill_circle (135, 125,2); / 7 点(x,y,r) fill_circle (160, 130,2); / 6 点(x,y,r) fill_circle (185, 125,2); / 5 点(x,y,r) fill_circle (205, 105,2); / 4 点(x,y,r) fill_circle (210, 80,2); / 3 点(x,y,r) fill_circle (205, 55,2); / 2 点(x,y,r) fill_circle (185, 35,2); / 1 点(x,y,r) /表盘背景色 void show_ht() set_color(gui_gray); fill_circle (160,80,54); void delay(int time); void changeform(char time,char time) time0 = time / 10 + 48; time1 = time % 10 + 48; time2 = 0; void display_time(char x,char y) changeform(hour, hour); changeform(min, min); changeform(sec, sec); changeform(mon, mon); 河海大学本科课程设计报告河海大学本科课程设计报告 - 20 - changeform(day, day); changeform(yea1, yea1); changeform(yea2, yea2); /disp_string(const i8 *s, i16 x, i16 y),s:char ,x:x_label position y:y_label position disp_string (hour,x,160); disp_string (“:“,x + 18,160); disp_string (min,x + 28,160); disp_string (“:“,x + 46,160); disp_string (sec,x + 56,160); disp_string (yea1,x -5, 180); disp_string (yea2,x +11,180); disp_string (“.“,x + 27,180); disp_string (mon,x + 35,180); /40 disp_string (“.“,x + 51,180); /56 disp_string (day,x + 59,180);/64 void display_xh1(char xx1,char yy1) changeform(xh1, xh1); changeform(xh2, xh2); changeform(xh3, xh3); changeform(xh4, xh4); changeform(xh5, xh5); disp_string (xh1,xx1,yy1); disp_string (xh2,xx1+16,yy1); disp_string (xh3,xx1+32,yy1); disp_string (xh4,xx1+48,yy1); disp_string (xh5,xx1+64,yy1); 河海大学本科课程设计报告河海大学本科课程设计报告 - 21 - void display_xh2(char xx2,char yy2) changeform(xh1, xh1); changeform(xh2, xh2); changeform(xh3, xh3); changeform(xh4, xh4); changeform(xh6, xh6); disp_string (xh1,xx2,yy2); disp_string (xh2,xx2+16,yy2); disp_string (xh3,xx2+32,yy2); disp_string (xh4,xx2+48,yy2); disp_string (xh6,xx2+64,yy2); void display_xh3(char xx3,char yy3) changeform(xh1, xh1); changeform(xh2, xh2); changeform(xh3, xh3); changeform(xh4, xh4); changeform(xh7, xh7); disp_string (xh1,xx3,yy3); disp_string (xh2,xx3+16,yy3); disp_string (xh3,xx3+32,yy3); disp_string (xh4,xx3+48,yy3); disp_string (xh7,xx3+64,yy3); void show_color() 河海大学本科课程设计报告河海大学本科课程设计报告 - 22 - set_color( gui_white ); /填充矩形函数 fill_rect(0,0,319,239); set_color(gui_red); set_bkcolor (gui_white); fill_rect(0,0,319,2); fill_rect(0,0,2,239); fill_rect(0,237,319,239); fill_rect(317,0,319,239); set_color(gui_red); set_font( /* * * - 函数名称 : startthesystem(void) - 函数说明 : 启动系统 - 输入参数 : 无 - 输出参数 : 无 * * */ void startthesystem(void) 河海大学

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论