参考基于lcd的电子时钟实验课程设计河海大学常州校区_第1页
参考基于lcd的电子时钟实验课程设计河海大学常州校区_第2页
参考基于lcd的电子时钟实验课程设计河海大学常州校区_第3页
参考基于lcd的电子时钟实验课程设计河海大学常州校区_第4页
参考基于lcd的电子时钟实验课程设计河海大学常州校区_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

河海大学本科课程设计报告河海大学计算机与信息学院(常州)课程设计报告题 目 基于LCD的电子时钟专业学号 0962910109 授课班号 277701 学生姓名 单咸梁 指导老师 梁瑞宇 完成时间 2012.06.07 目 录前 言1第一章系统设计2第一节课题目标及总体方案2第二节软件总流程图2第三节主要程序分析3第二章实验结果与讨论5第三章结论6心得体会7参考文献8附 录922前 言通常我们常用的LCD显示模块,有两种,一是带有驱动电路的LCD显示模块,一是不带驱动电路的LCD显示屏。大部分ARM处理器中都集成了LCD的控制器,所以,针对ARM芯片,一般不使用带驱动电路的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 显示板。实时时钟(RTC)器件是一种能提供日历/时钟、数据存储等功能的专用集成电路,常用作各种计算机系统的时钟信号源和参数设置存储电路。RTC具有计时准确、耗电低和体积小等特点,特别适用于在各种嵌入式系统忠记录事件发生的时间和相关信息,尤其是在通信工程、电力自动化、工业控制等自动化程度较高领域的无人职守环境。随着集成电路技术的不断发展,RTC器件的新品也不断推出。这些新品不仅具有准确的RTC,还有大容量的存储器、温度传感器和A/D数据采集通道等,已成为集RTC、数据采集和存储于一体的综合功能器件,特别适用于以微控制器为核心的嵌入式系统。系统设计 课题目标及总体方案课程设计题目的:基于LCD的电子时钟实验 本实验是基于ARM处理器而设计的实时时钟,综合性较强,涉及到RTC外部中断,C语言编程等知识。需使用到中断,涉及对外部中断进行初始化,其中有规定优先级,中断触发方式,中断地址分配。采用液晶模块LCD显示实时时间,同样要对它进行初始化,包括检查总线忙与闲,传送地址,传送数据及显示函数的编程。【2】 软件总流程图开始程序和芯片初始化页面显示设置时钟计时表盘画线显示结束数字时钟同步显示 主要程序分析1、Dowhile循环实现时钟的计时:doDelay(1200);sec+;Shows(); /表盘上秒针的显示Shouw_Cricle(); /整点显示if (sec = 60) sec = 0; /当计时至60时秒清零 min+; /分针开始计时 Showm(); /表盘上分针的显示 if (min = 60) min = 0; /当计时至60时清零 hour+; /时针开始计时 Showh(); /表盘上时针的显示 if (hour = 24) hour = 0; day+; /天计时 if(day =32) day = 1; mon+; /月计时 if(mon = 13) mon = 1; yea1+; /年份 Set_Font(&GUI_Font8x16); /字体设置Display_Time(130, 160); /时间 日期(数字同步显示)while(1);2、指针表盘显示:void Shows() Set_Color(GUI_GRAY); /擦除上一秒的 Draw_Line(x_line,y_line,*Placex,*Placey); /画线函数 Placex=Placex+1; /指针下移 (x,y)指向下一坐标 Placey=Placey+1; 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=&SpaceXS60&Placey=&SpaceYS60) Placex=&SpaceXS0; Placey=&SpaceYS0; 分针与时针的显示与秒针类似。实验结果与讨论 生成Hex文件后即可用串口连接实验箱观察实验现象。LCD液晶显示出现如下画面:动态显示时钟表盘界面、数字时钟同步显示、显示年月日、小组成员姓名显示。其中时间、日期、小组成员姓名的位置可通过调节坐标改变。结论本实验成功实现了电子时钟的显示,撇除了操作系统,独立实现。本实验程序中还存在一定误差,不过通过中断可以实行改进。但是刚开始的时候,我们小组接触这个课程设计很是头疼,之前嵌入式的学习都是课本知识,都是一些理论,突然让我们完成不小的一个项目,当时确实感到压力大,我和我的组员,翻查书籍,上网查阅别人的程序,从中获得总体设计思想。心得体会回顾整个课程设计过程,感慨颇多,从理论到实践,我学到很多东西,不仅巩固了以前所学过的理论知识,而且学到了很多在书本上学不到的东西。也更深刻得明白ARM的应用领域,我们可以运用ARM技术来做些什么。通过本次课设,增强了动手实践能力,也懂得了,光学习理论知识是远远不够的,必须把它运用到实际中去,充分发挥所学知识的作用。通过此次实时时钟的设计,C语言的编程,我们开始了ARM的实际应用的学习,一方面,是我们养成了遵循ARM的嵌入式系统项目开发步骤的习惯;另一方面,使我们能够利用所学的ARM的知识设计出一些简单的东西,为以后进行更深层次的学习打下基础。参考文献CSDN,/down/1283587/mnz110嵌入式系统原理与设计,王勇,浙江大学出版社,2007程序设计基础(C语言),丁海军 何坤金 王林 景雪琴,2009附 录1、主程序:MAIN.c#include .incconfig.h#define x_line 160#define y_line 80extern 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=11, mon = 6, day = 24;/int TimeCount = 0;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, 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,*Placex=&SpaceXS0,*Placey=&SpaceYS0,*Placexm=&SpaceXM0,*Placeym=&SpaceYM0,*Placexh=&SpaceXH9,*Placeyh=&SpaceYH9; /show svoid Shows() Set_Color(GUI_GRAY); /擦除上一秒的 Draw_Line(x_line,y_line,*Placex,*Placey); Placex=Placex+1; Placey=Placey+1; 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=&SpaceXS60&Placey=&SpaceYS60) Placex=&SpaceXS0; Placey=&SpaceYS0; /show munitevoid 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=&SpaceXM60&Placeym=&SpaceYM60) Placexm=&SpaceXM0; Placeym=&SpaceYM0; /show hourvoid 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=&SpaceXH12&Placeyh=&SpaceYH12) Placexh=&SpaceXH0; Placeyh=&SpaceYH0; void Shouw_Cricle() / 整 点Set_Color(GUI_YELLOW); 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) 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); ChangeForm(DAY, day); ChangeForm(YEA1, yea1); ChangeForm(YEA2, yea2); Disp_String (Hour,x,160); Disp_String (:,x + 16,160); Disp_String (Min,x + 24,160); Disp_String (:,x + 40,160); Disp_String (Sec,x + 48,160); Disp_String (YEA1,x , 180); Disp_String (YEA2,x +16,180); Disp_String (,x + 32,180); Disp_String (MON,x + 40,180); Disp_String (,x + 56,180); Disp_String (DAY,x + 64,180); void Show_Color() Fill_Rect(0,0,319,239); Set_Color(GUI_RED); Set_BkColor (GUI_BLUE); 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(&CHINESE_FONT16); /*- 函数名称 : Task_2(void *pdata)- 函数说明 : GUI任务,优先级为9- 输入参数 : pdata- 输出参数 : 无*/void StartTheSystem(void) for(;) /*全屏颜色设计*时 钟 位 置*/ Show_Color(); Show_ht(); /*点 的 坐 标*/ Shouw_Cricle(); /*设定背景颜色API*/ Set_Color(GUI_RED); sec = 0; Set_Color(GUI_YELLOW); /显示 Draw_Line(x_line,y_line,*Placex,*Placey); Set_Font(&GUI_Font8x16); Display_Time(130, 160);/时间 Set_Font(&CHINESE_FONT16); Disp_String(CN_start实时时钟CN_end,124,10); Set_Font(&CHINESE_FONT16); Disp_String(CN_start嵌入式系统课设CN_end, 128, 10); Set_Font(&CHINESE_FONT16); Disp_String(CN_start陈晨王小孩徐焘CN_end, 110, 210); Set_Color(GUI_YELLOW); /显示do Delay(1200); sec+; Shows(); Shouw_Cricle(); if (sec = 60) sec = 0; min+; Showm(); if (min = 60) min = 0; hour+; Showh(); if (hour = 24) hour = 0; day+; if(day =32) day = 1; mon+; if(mon = 13) mon = 1; yea1+; Set_Font(&GUI_Font8x16); Display_Time(130, 160);/时间 日期while(1);/*主 函 数*/void Main(void) Target_Init(); / ARMII实验系统的初始化,包括CPU板 GUI_Init(); StartTheSystem();2、config.h文件#include #include #include #include .Startup44b0inc44b.h#include .Startup44b0inc44blib.h#include .Startup44b0inctarget.h/#include .UCOSIIINCincludes.h#include .GuiGlibGlib.h3、target.h文件#ifndef _Target_h_#define _Target_h_ #include .INC44b.hvoid StartInterrupt(void); /启动中断函数,44binit.s中定义void Target_Init(void);void Cache_Init(void);void Exep_S3cINT_Init(void);void C_IRQHandler(void);void VIRQ_Relate_Task_Init(void);void Rtc_Tick_Init(void);void Rtc_Tick_ISR(void);#endif、4、44blib.h文件#ifndef _44blib_h_#define _44blib_h_#define NULL 0#define EnterPWDN(clkcon) (void (*)(int)0x20080e0)(clkcon) /?/0xc0080e0void Delay(int time); void *malloc(unsigned nbyte); void free(void *pt);void Port_Init(void);void Cache_Flush(void);void Timer_Start(int divider); int Timer_Stop(void); void ChangePllValue(int m,int p,int s);#ifdef _cplusplus#endif#endif参考: 毕 业 论 文论文题目学 院专 业年 级姓 名指导教师职 称(200 年 月)教务处制毕业设计说明书与毕业论文撰写的规范化要求一篇完整的毕业设计说明书或毕业论文有题目、摘要及关键词、目录、引言(前言)、正文、结论、谢辞、参考文献、附录等几部分构成。要求理工科专业不少于4000字,文科专业不少于6000字。一、毕业设计说明书撰写的主要内容与基本要求一份完整的毕业设计说明书应包括如下主要内容:1题目设计课题名称,要求简洁、确切、鲜明。2中外文摘要及关键词应扼要叙述本设计的主要内容、特点,文字要简练。中文摘要约300字左右;外文摘要约250个实词左右。关键词35个。3目录主要内容的目录。4前言应说明本设计的目的、意义、范围及应达到的技术要求;简述本课题在国内(外)的发展概况及存在的问题;本设计的指导思想;阐述本设计应解决的主要问题。 5正文(1)设计方案论证:应说明设计原理并进行方案选择。应说明为什么要选择这个方案(包括各种方案的分析、比较);还应阐述所采用方案的特点(如采用了何种新技术、新措施、提高了什么性能等)。(2)设计及计算部分:这是设计说明书的重要组成部分,应详细写明设计结果及计算结果。(3)样机或试件的各种实验及测试情况:包括实验方法、线路及数据处理等。(4)方案的校验:说明所设计的系统是否满足各项性能指标的要求,能否达到预期效果。校验的方法可以是理论分析(即反推算),包括系统分析;也可以是实验测试及计算机的上机运算等。6结论概括说明本设计的情况和价值 ,分析其优点、特色,有何创新,性能达到何水平,并指出其中存在的问题和今后的改进方向。7谢辞简述自己通过本设计的体会,并对指导老师和协助完成设计的有关人员表示谢意。8参考文献应列出主要参考文献。9附录将各种篇幅较大的图纸、数据表格、计算机程序等作为附录附于说明书之后。二、毕业论文撰写的主要内容与基本要求1题目题目应该简短、明确,要有概括性,让人看后能大致了解文章的确切内容、专业的特点和学科的范畴。题目的字数要适当,一般不宜超过20字。字体为2中外文摘要及关键词摘要也称内容提要,应当以浓缩的形式概括研究课题的主要内容、方法和观点,以及取得的主要成果和结论,应反映整个论文的精华。中文摘要约300字左右为宜,同时要求写出250个实词左右的外文摘要。关键词3-5个。摘要应写得扼要、准确,一般在毕业论文全文完成后再写摘要。在写作中要注意以下几点:(1)用精练、概括的语言表达,每项内容均不宜展开论证。(2)要客观陈述,不宜加主观评价。(3)成果和结论性意见是摘要的重点内容,在文字上用量较多,以加深读者的印象。(4)要独立成文,选词用语要避免与全文尤其是前言和结论雷同。(5)既要写得简短扼要,又要行文活泼,在词语润色、表达方法和章法结构上要尽可能写得有文采,以唤起读者对全文的阅读的兴趣。3目录(必要时)论文编写完成后,为了醒目和便于读者阅读,可为论文编写一个目录。目录可分章节,每一章节之后应编写页码。4前言前言是全篇论文的开场白,它包括:(1)选题的缘由。(2)对本课题已有研究情况的评述。(3)说明所要解决的问题和采用的手段、方法。(4)概括成果及意义。作为摘要和前言,虽然所定的内容大体相同,但仍有很大的区别。区别主要在于:摘要一般要写得高度概括、简略,前言则可以稍微具体些;摘要的某些内容,如结论意见,可以作为笼统的表达,而前言中所有的内容则必须明确表达;摘要不写选题的缘由,前言则明确反映;在文字量上前言一般多于摘要。5正文正文是作者对自己研究工作的详细表述。它占全文的较多篇幅。主要内容包括研究工作的基本前提、假设和条件;模型的建立,实验方案的拟定;基本概念和理论基础;设计计算的主要方法和内容;实验方法、内容及其结果和意义的阐明;理论论证,理论在实际中的应用等等。根据课题的性质,论文正文允许包括上述部分内容。正文的写作要求:(1)理论分析部分应写明所作的假设及其合理性,所用的分析方法、计算方法、实验方法等哪些是别人用过的,哪些是自己改进的,哪些是自己创造的,以便指导教师审查和纠正。这部分所占篇幅不宜过多,应以简练、明了的文字概略表达。(2)课题研究的方法与手段分别用以下几种方法说明:a用实验方法研究课题,应具体说明实验用的装置、仪器、原材料的性能是否标准,并应对所有装置、仪器、原材料做出检验和标定。对实验的过程或操作方法,力求叙述得简明扼要,对人所共知的或细节性的内容不必详述。b用理论推导的手段和方法达到研究目的的,这方面内容一定要精心组织,做到概念准确,判断推理符合客观事物的发展规律,符合人们对客观事物的认识习惯与程序。换言之,要做到言之有序,言之有理,以论点为中枢,组织成完整而严谨的内容整体。c用调查研究的方法达到研究目的的,调查目标、对象、范围、时间、地点、调查的过程和方法等,这些内容与研究的最终结果有关系,但不是结果本身,所以,一定要简述。但对调查所提供的样本、数据、新的发现等则应详细说明,这是结论产生的依据。若写得抽象、简单、结论就立之不牢,分析就难以置信,写作中应特别予以重视。(3)结果与讨论是全文的心脏,一般要占较多篇幅,在写作时,应对研究成果精心筛选,把那些必要而充分的数据、现象、样品、认识等挑选出来,写进去,作为分析的依据,应尽量避免事无巨细,把所得的结果和盘托出。在对结果作定性和定量分析时,应说明数据的处理方法以及误差分析,说明现象出现的条件及其可观性,交代理论推导中认识的由来和发展,以便别人以此为依据进行核实验证,对结果进行分析后所得的结论和推论,也应说明其使用的条件与范围。恰当运用表和图作结果与分析,是科技论文通用的一种表达方式。6结论结论包括对整个研究工作进行归纳和综合而得出的总结;所得结果与已有结果的比较以及在本课题的研究中尚存在的问题;对进一步开展研究的见解与建议。它集中反映作者的研究成果,表达作者对所研究课题的见解和主张,是全文的思想精髓,是文章价值的体现。一般写得概括、篇幅较短。撰写时应注意下列事项:(1)结果要简单、明确。在措辞上应严密,容易被人领会。(2)结果应反映个人的研究工作,属于前人和他人已有过的结论可不提。(3)要实事求是地介绍自己研究的成果,切忌言过其实,在无充分把握时,应留有余地。因为对科学问题的探索是永无止境的。7注释如有引用他人成果的,一定要有注释。不管在论文的哪一部分,采用到前人的观点、方法、结论、成果时,都必须注明其来源。如不这样做,就有抄袭、剽窃、侵权之嫌。8参考文献与附录参考文献与附录是毕业论文不可缺少的组成部分。它反映毕业论文的取材来源、材料的广博程度及可靠程度。一份完整的参考文献也是向读者提供的一份有价值的信息资料。引用参考文献时,必须注意写法的规范性。此外,有些不宜放在正文中,但有参考价值的内容,可编入论文的附录中,如公式的推演、编写的算法语言程序等。如果论文中引用的符号较多,为了节省论文的篇幅,并且便于读者查对,可以编写一个符号说明,注名符号所代表的意义。 9谢辞谢辞是在论文的结尾处,以简短文字,对课题研究与写作过程中曾给予支持的人员,如指导老师及其他的人员,表示自己的谢意。这不仅是一种礼貌,也是对他人劳动的尊重,是治学者应有的思想作风。三、毕业设计(论文)格式要求:1、内容:标题、署名、中英文摘要、正文。其中署名必须注明学院、专业、学生姓名、指导教师姓名

温馨提示

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

最新文档

评论

0/150

提交评论