课程设计(论文)-基于LCD的电子时钟_第1页
课程设计(论文)-基于LCD的电子时钟_第2页
课程设计(论文)-基于LCD的电子时钟_第3页
课程设计(论文)-基于LCD的电子时钟_第4页
课程设计(论文)-基于LCD的电子时钟_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

Ⅰ、课程设计(报告)题目:基于LCD的电子时钟实验Ⅱ、课程设计(论文)工作内容一、课程设计目标1、锻炼学生的编程能力、用计算机解决实际问题的能力;2、促进学生的综合运用知识和创新的能力的提高;4、掌握内置LCD控制器驱动编写方法。3、掌握LCD与ARM的LCD的控制器的接口原理;二、研究方法及手段应用1、将任务模块化,在网上和图书馆查阅相关资料,分模块调试和完成任务;2、学习并使用使用ADS1.2编译汇编语言和C语言,连接生成Hex文件和Axf文件。3、联合PROTEUS7.1仿真,选用ARM7LPC2106芯片和LCD12864,导入Hex文件,进行软件仿真调试。4、将AXF文件下载到S3C44B0试验箱,通过LCD现场调试程序,实现电子时钟计时功能。5、小组讨论丰富时钟界面,使其在实际中更人性化。三、课程设计预期效果1、搭建实验环境;2、模块调试程序,并通过编译;3、将各个模块组合起来,整体调试;4、在仿真软件上运行调试程序;5、在试验箱上实现LCD电子时钟。学生姓名:专业年级:08626103河海大学本科课程设计报告-PAGE19-目录前言………………1第一章系统设计…………………2第一节课题目标及总体方案………………2第二节proteus7.1和S3C44B0X实验系统简介……………2第三节LCD显示原理和电子时钟流程图…………………….3第四节proteus7.1仿真电路………...………….5第五节程序代码分模块介绍……………..……6第二章实验(测试)结果及讨论……….……….11第一节proteus7.1仿真调试……………..……………..……..11第二节S3C44B0X系统板调试………….……11第三章结论………………………11心得体会……………13参考文献…………………………14附录…………………………15主函数源程序……………………15前言计算机技术及集成电路技术有了飞速发展,嵌入式技术日渐普及,在通讯、网络、工控、医疗、电子等领域发挥着越来越重要的作用。嵌入式系统无疑成为当前最热门最有发展前途的IT应用领域之一。实时时钟(RTC)器件是一种能提供日历/时钟、数据存储等功能的专用集成电路,常用作各种计算机系统的时钟信号源和参数设置存储电路。RTC具有计时准确、耗电低和体积小等特点,特别适用于在各种嵌入式系统中记录事件发生的时间和相关信息,尤其是在通信工程、电力自动化、工业控制等自动化程度较高领域的无人职守环境。随着集成电路技术的不断发展,RTC器件的新品也不断推出。这些新品不仅具有准确的RTC,还有大容量的存储器、温度传感器和A/D数据采集通道等,已成为集RTC、数据采集和存储于一体的综合功能器件,特别适用于以微控制器为核心的嵌入式系统。通过S3C44B0X实验系统板实现LCD电子时钟的设计,可以增强我们的自学能力和思考能力,掌握科学研究的方法,提高信息检索的能力以及获取与时俱进知识的能力。同时,使我们深刻学习了ARM的相关知识,增强对实际电路的感性认识,提高了分析问题,处理问题的能力。

第一章系统设计第一节课题目标及总体方案运用ads1.2编译汇编语言和C语言,连接生成Hex文件和Axf文件。使用PROTEUS7.1仿真,选用ARM7LPC2106芯片和LCD12864,导入Hex文件,然后进行软件仿真调试。将Axf文件下载到S3C44B0试验箱上,通过LCD实物调试程序,完成电子时钟计时功能。第二节proteus7.1和S3C44B0X实验系统简介一、proteus7.1简介Proteus软件是英国Labcenterelectronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等。在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。在PROTEUS绘制好原理图后,调入已编译好的目标代码文件:*.HEX,可以在PROTEUS的原理图中看到模拟的实物运行状态和过程。PROTEUS不仅可将许多单片机实例功能形象化,也可将许多单片机实例运行过程形象化。前者可在相当程度上得到实物演示实验的效果,后者则是实物演示实验难以达到的效果。它的元器件、连接线路等却和传统的单片机实验硬件高度对应。这在相当程度上替代了传统的单片机实验教学的功能,例:元器件选择、电路连接、电路检测、电路修改、软件调试、运行结果等。二、S3C44B0X实验系统简介EL-ARM-830型教学实验系统属于一种综合的教学实验系统,该系统采用了目前在国内普遍认同的ARM7TDMI核,32位微处理器,实现了多模块的应用实验。它是集学习、应用编程、开发研究于一体ARM实验教学系统。用户可根据自己的需求选用不同类型的CPU适配板,在不需要改变任何配置情况下,完成从ARM7到ARM9的升级,同时,实验系统上的Tech_V总线能够拓展较为丰富的实验接口板。用户在了解Tech_V标准后,更能研发出不同用途的实验接口板。除此之外,在实验板上有丰富的外围扩展资源(数字、模拟信号发生器,数字量IO输入输出,语音编解码、人机接口等单元),可以完成ARM的基础实验、算法实验和数据通信实验、以太网验。其功能框图如下所示。第三节LCD显示原理和电子时钟流程图一、LCD显示原理一般情况下,我们经常使用的LCD显示模块,有两种,一是带有驱动电路的LCD显示模块,一是不带驱动电路的LCD显示屏。大部分ARM处理器中都集成了LCD的控制器,所以,针对ARM芯片,一般不使用带驱动电路的LCD显示模块。S3C44B0X中具有内置的LCD控制器,它能将显示缓存(在SDRAM存储器中)中的LCD图像数据传输到外部的LCD驱动电路上的逻辑功能。它支持单色、4级、16级灰度LCD显示,以及256彩色LCD显示。在显示灰度时,它采用时间抖动算法(time-basedditheringalgorithm)和帧率控制(FrameRateControl)方法,在显示彩色时,它采用RGB的格式,即RED、GREEN、BLUE,三色混合调色。通过软件编程,可以实现233或332的RGB调色的格式。对于不同尺寸的LCD显示器,它们会有不同的垂直和水平象素点、不同的数据宽度、不同的接口时间及刷新率,通过对LCD控制器中的相应寄存器写入不同的值,来配置不同的LCD显示板。LCD控制器包含REGBANK,LCDCDMA,VIDPRCS,和TIMEGEN。REGBANK具有18个可编程寄存器,用于配置LCD控制器。LCDCDMA为专用的DMA,它可以自动地将显示数据从帧内存中传送到LCD驱动器中。通过专用DMA,可以实现在不需要CPU介入的情况下显示数据。VIDPRCS从LCDCDMA接收数据,将相应格式(比如4/8位单扫描和4位双扫描显示模式)的数据通过VD[7:0]发送到LCD的驱动器上。TIMEGEN包含可编程的逻辑,以支持常见的LCD驱动器所需要的不同接口时间和速率的要求。TIMEGEN部分产生VFRAME,VLINE,VCLK,VM等信号。320x240像素的8位数据的256彩色LCD屏,显示一屏所需的显示缓存为320x240x8bit,即76800字节,在显示缓存中每个字节,如图2-38最右面的图所示,都对应着屏上的一个象素点,因此,8位256彩色显示的显示缓存与LCD屏上的象素点是字节对应的。每个字节中又有RGB格式的区分,既有332的RGB,又有233的RGB格式,这因硬件而定。在彩色图像显示时,首先要给显示缓存区一个首地址,这个地址要在4字节对齐的边界上,而且,需要在SDRAM的4MB字节空间之内。它是通过配置相应的寄存器来实现的。之后,接下来的76800字节,就为显示缓存区,这里的数据会直接显示到LCD屏上去。屏上图像的变化是由于该显示缓存区内数据的变化而产生的。这样,通过正确配置S3C44B0X的LCD控制器相应的寄存器,就能正确启动LCD的显示。二、电子时钟流程图LCD显示时钟界面的流程图如下:第四节proteus7.1仿真电路使用proteus进行仿真,电路如下图。尽管实验板上使用的是三星的arm7核,但proteus中没有这款芯片,因此选用与其内核相同的LPC2106。第五节程序代码分模块介绍一、S3C44B0X硬件平台的初始化对arm硬件进行初始化的函数文件如下:二、LCD硬件的初始化初始化S3C44B0的LCD控制器的程序如下。#define M5D(n) ((n)&0x1fffff)#define SCR_XSIZE (320)#define SCR_YSIZE (240)#define LCD_XSIZE (320)#define LCD_YSIZE (240)#define HOZVAL_COLOR (LCD_XSIZE*3/8-1)//确定水平尺寸#define LINEVAL (LCD_YSIZE-1) //确定垂直尺寸#define MVAL (13)#define CLKVAL_COLOR (5) //确定VCLK的频率 #defineVideo_StartBuffer 0x0c000000 //LCD的帧缓冲区开始地址U16LCD_Init(U8Lcd_Bpp){switch(Lcd_Bpp){case8: //关闭LCD控制器,8位单扫描,WDLY=8clk,WLH=8clkrLCDCON1=(0)|(2<<5)|(0x1<<8)|(0x1<<10)|(CLKVAL_COLOR<<12); //LINEBLANK=10rLCDCON2=(LINEVAL)|(HOZVAL_COLOR<<10)|(10<<21); //256-color,LCDBANK,LCDBASEUrLCDSADDR1=(0x3<<27)|(((U32)Video_StartBuffer>>22)<<21)|M5D((U32)Video_StartBuffer>>1);rLCDSADDR2=M5D((((U32)Video_StartBuffer+(SCR_XSIZE*LCD_YSIZE))>>1))|(MVAL<<21)|1<<29;rLCDSADDR3=(LCD_XSIZE/2)|(((SCR_XSIZE-LCD_XSIZE)/2)<<9); rREDLUT=0xfdb96420; //使用的8种红色 rGREENLUT=0xfdb96420; //使用的8种绿色 rBLUELUT=0xfb40; //使用的4种蓝色 rDITHMODE=0x0; rDP1_2=0xa5a5; //抖动模式占空比值 rDP4_7=0xba5da65; //抖动模式占空比值 rDP3_5=0xa5a5f; //抖动模式占空比值 rDP2_3=0xd6b; //抖动模式占空比值 rDP5_7=0xeb7b5ed; //抖动模式占空比值 rDP3_4=0x7dbe; //抖动模式占空比值 rDP4_5=0x7ebdf; //抖动模式占空比值 rDP6_7=0x7fdfbfe; //抖动模式占空比值 rDITHMODE=0x12210; //抖动模式寄存器 //打开LCD控制器,8位单扫描,WDLY=8clk,WLH=8clkrLCDCON1=(1)|(2<<5)|(MVAL_USED<<7)|(0x3<<8)|(0x3<<10)|(CLKVAL_COLOR<<12); break; default: return1; } return0;}三、时钟界面绘制函数LCD显示的时钟界面包括:静止不动的圆形钟面和一直在走动的时钟指针。所以需要构建三个重要的函数,分别实现画圆、画直线和画点功能。以下为画圆函数:该算法是通过X变量的自增,补偿1修正正方形控制Y变量自减,找到距中心恒定距离的点,其中rs=45,X自0加1增至45。和原点坐标运算,可以在第一象限找到一点,再通过折叠对称找到其他象限的三个点,通过画点函数描绘出。再画他的45度镜像。画线函数:Draw_Line(unsignedintx1,unsignedinty1,unsignedintx2,unsignedinty2,unsignedchardraw)以中心的坐标为起点,使用while函数与指针最外圈的点比较,不断延长直至相等,所以事先计算出时针,分针和秒针三个同心圆最外圈点的坐标,以便带入函数。也同圆类似,要考虑不同象限点的情况,根据不同的位置带参数到画点函数中描绘。画点函数:第二章实验(测试)结果及讨论第一节proteus7.1仿真调试但在应用这个软件的过程中发现了我们写好的程序在上面老是出现编译错误,在处理之后还是有4个错误,使我们无法编译通过,我们在网上搜索资料,其他同志在使用时也遇到类似的错误,很多人都说是兼容性问题。我们就把时间花在了实验想的调试上面。第二节S3C44B0X系统板调试我们将编译软件ADS1.2生成的axf文件烧写到S3C44B0系统板上,效果如下页图所示。该LCD电子时钟能够动态显示当前的时间,包括:年、月、日、时、分、秒,时针、分针和秒针为动态实时指示当前的时间。并且可以显示我们组三个同学的信息且具有变色功能(一秒呈蓝色,下一秒呈白色,如此循环)第三章结论心得体会课程设计完成了,在这个过程中我学到了很多东西。首先在做测试技术的实验前,我以为不会难做,就像以前做物理实验一样,做完实验,然后两下子就将实验报告做完.直到做完测试实验时,我才知道其实并不容易做,但学到的知识与难度成正比,使我受益匪浅.。在做实验前,一定要将课本上的知识吃透,因为这是做实验的基础,否则,在老师讲解时就会听不懂,这将使你在做实验时的难度加大,浪费做实验的宝贵时间。这将使你极大地浪费时间,使你事倍功半.做实验时,一定要亲力亲为,务必要将每个步骤,每个细节弄清楚,弄明白,实验后,还要复习,思考,这样,你的印象才深刻,记得才牢固,否则,过后不久你就会忘得一干二净,这还不如不做.做实验时,老师还会根据自己的亲身体会,将一些课本上没有的知识教给我们,拓宽我们的眼界,使我们认识到这门课程在生活中的应用是那么的广泛.通过这次测试技术的实验,使我学到了不少实用的知识,更重要的是,做实验的过程,思考问题的方法,这与做其他的实验是通用的,真正使我们受益匪浅.。课程知识的实用性很强,因此实验就显得非常重要。刚开始做实验的时候,由于自己的理论知识基础不好,在实验过程遇到了许多的难题,也使我感到理论知识的重要性。但是我并没有气垒,在实验中发现问题,自己看书,独立思考,最终解决问题,从而也就加深我对课本理论知识的理解,达到了“双赢”的效果。在这次实验中,我学到很多东西,加强了我的动手能力,并且培养了我的独立思考能力。特别是在做实验报告时,因为在做数据处理时出现很多问题,如果不解决的话,将会很难的继续下去。还有动手这次实验,使测试技术这门课的一些理论知识与实践相结合,更加深刻了我对这门课的认识,巩固了我的理论知识。这次的实验跟我们以前做的实验不同,因为我觉得这次我是真真正正的自己亲自去完成。所以是我觉得这次实验最宝贵,最深刻的。就是实验的过程全是我们学生自己动手来完成的,这样,我们就必须要弄懂实验的原理。在这里我深深体会到哲学上理论对实践的指导作用:弄懂实验原理,而且体会到了实验的操作能力是靠自己亲自动手,亲自开动脑筋,亲自去请教别人才能得到提高的。在实验过程中,我们应该尽量减少操作的盲目性提高实验效率的保证,有的人一开始就赶着做,结果却越做越忙,主要就是这个原因。我也曾经犯过这样的我们做实验不要一成不变和墨守成规,应该有改良创新的精神。实际上,在弄懂了实验原理的基础上,我们的时间是充分的,做实验应该是游刃有余的,如果说创新对于我们来说是件难事,那改良总是有可能的在实验的过程中我们要培养自己的独立分析问题,和解决问题的能力。这种能力的前题是你对每次实验的态度。如果你在实验这方面很随便,抱着等老师教你怎么做,拿同学的报告去抄,尽管你的成绩会很高,但对将来工作是不利的。在这次的实验中,我对一些测试硬件、软件及其使用有了更深刻的认识。

参考文献[1]谢自美,电子线路设计、实验、测试,华中理工大学出版社,2003。[2]宋春荣,通用集成电路速查手册,山东科学技术出版社,1995。[3]ArnoldBerger,嵌入式系统设计,吕骏译,北京:电子工业出版社,2002[4]桑楠.嵌入式系统原理及应用开发技术,北京:北京航空航天大学出版社,2002

附录主函数源程序#include"..\inc\config.h"#definex_line160#definey_line80externGUI_FONTCHINESE_FONT12;externGUI_FONTCHINESE_FONT16;externGUI_FONTGUI_Font8x16;OS_EVENT*Key_Mbox;I8Hour[3],Min[3],Sec[3];I8hour=0,min=0,sec=0,ms;I8YEA1[3],YEA2[3],MON[3],DAY[3];intyea1=20,yea2=11,mon=07,day=05;I8XH0[3],XH1[3],XH2[3],XH3[3];I8XH4[3],XH5[3],XH6[3],XH7[3];intxh0=0x08,xh1=62,xh2=61,xh3=01;intxh4=03,xh5=31,xh6=04,xh7=20;intSpaceXS[61]={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, }, SpaceYS[61]={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}, SpaceXM[61]={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 }, SpaceYM[61]={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 }, SpaceXH[13]={160,175,185,190,185,175,160,145,135,130,135,145,160}, SpaceYH[13]={50,55,65,80,95,105,110,105,95,80,65,55,50}, *Placex=&SpaceXS[0],*Placey=&SpaceYS[0],*Placexm=&SpaceXM[0],*Placeym=&SpaceYM[0], *Placexh=&SpaceXH[0],*Placeyh=&SpaceYH[0];voidDisplay_xh(charx,chary);voidDisplay_xh1(charxx1,charyy1);voidDisplay_xh2(charxx2,charyy2);voidDelay(inttime);voidshow(I8s){ if(s%4==0) { Set_Color(GUI_BLUE); Set_Font(&CHINESE_FONT16); Disp_String(CN_start"陈燚刘海波谭晶晶"CN_end,48,210); Set_Font(&GUI_Font8x16); Display_xh2(240,210); Display_xh1(240,190); Display_xh(240,170); Set_Color(GUI_RED); Set_Font(&CHINESE_FONT16); Disp_String(CN_start"陈燚"CN_end,48,210); Set_Color(GUI_BLACK); Disp_String(CN_start"嵌入式系统课程设计"CN_end,90,5);Set_Font(&GUI_Font8x16); Display_xh(240,210);}elseif(s%4==1){Set_Color(GUI_BLUE); Set_Font(&CHINESE_FONT16); Disp_String(CN_start"陈燚"CN_end,48,210); Set_Color(GUI_YELLOW); Set_Font(&CHINESE_FONT16); Disp_String(CN_start"谭晶晶"CN_end,48,210); Disp_String(CN_start"嵌入式系统课程设计"CN_end,90,5); Set_Font(&GUI_Font8x16); Display_xh1(240,210);}elseif(s%4==2){ Set_Color(GUI_BLUE); Set_Font(&CHINESE_FONT16); Disp_String(CN_start"谭晶晶"CN_end,48,210); Set_Color(GUI_WHITE);Set_Font(&CHINESE_FONT16); Disp_String(CN_start"刘海波"CN_end,48,210); Set_Color(GUI_WHITE); Set_Font(&GUI_Font8x16); Display_xh2(240,210); }elseif(s%4==3){ Set_Color(GUI_BLUE); Set_Font(&GUI_Font8x16); Set_Font(&CHINESE_FONT16); Disp_String(CN_start"谭晶晶"CN_end,48,210); Set_Color(GUI_LIGHTMAGENTA);Set_Font(&CHINESE_FONT16); Disp_String(CN_start"陈燚刘海波谭晶晶"CN_end,48,210); Set_Color(GUI_BLACK); Set_Font(&GUI_Font8x16); Display_xh2(240,210); Display_xh1(240,190); Display_xh(240,170); }} voidShows(){ show(sec); 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==&SpaceXS[60]&&Placey==&SpaceYS[60]){ Placex=&SpaceXS[0]; Placey=&SpaceYS[0];}}voidShowm(){ 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==&SpaceXM[60]&&Placeym==&SpaceYM[60]) { Placexm=&SpaceXM[0]; Placeym=&SpaceYM[0]; } }voidShowh(){ 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==&SpaceXH[12]&&Placeyh==&SpaceYH[12]) { Placexh=&SpaceXH[0]; Placeyh=&SpaceYH[0]; }}voidShouw_Cricle()//整点{ Set_Color(GUI_YELLOW);Fill_Circle(160,30,2);//12点(x,y,r)Disp_String(CN_start"开始"CN_end,145,40);//Disp_String("start",145,40);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)}voidShow_ht(){ Set_Color(GUI_GRAY); Fill_Circle(160,80,54);}//voidDelay(inttime);voidChangeForm(charTime[],chartime){Time[0]=time/10+48;Time[1]=time%10+48;Time[2]='\0';}voidDisplay_Time(charx,chary){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,y);Disp_String(":",x+16,y);Disp_String(Min,x+24,160);Disp_String(":",x+40,160);Disp_String(Sec,x+48,160);Set_Color(GUI_BLUE);Disp_String(Sec,x+64,160);Disp_String(Sec,x+80,160);Set_Color(GUI_GREEN);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);Set_Color(GUI_BLUE);Disp_String(DAY,x+80,180);}voidDisplay_xh(charx,chary){ ChangeForm(XH0,xh0); ChangeForm(XH1,xh1); ChangeForm(XH2,xh2); ChangeForm(XH3,xh3); ChangeForm(XH5,xh5); Disp_String(XH0,x,y); Disp_String(XH1,x+16,y); Disp_String(XH2,x+32,y); Disp_String(XH3,x+48,y); Disp_String(XH5,x+64,y);}voidDisplay_xh1(charxx1,charyy1){ ChangeForm(XH0,xh0); ChangeForm(XH1,xh1); ChangeForm(XH2,xh2); ChangeForm(XH4,xh4); ChangeForm(XH6,xh6); Disp_String(XH0,xx1,yy1); Disp_String(XH1,xx1+16,yy1); Disp_String(XH2,xx1+32,yy1); Disp_String(XH4,xx1+48,yy1); Disp_String(XH6,xx1+64,yy1);}voidDisplay_xh2(charxx2,charyy2){ ChangeForm(XH0,xh0); ChangeForm(XH1,xh1); ChangeForm(XH2,xh2); ChangeForm(XH3,xh3); ChangeForm(XH7,xh7); Disp_String(XH0,xx2,yy2); Disp_String(XH1,xx2+16,yy2); Disp_String(XH2,xx2+32,yy2); Disp_String(XH3,xx2+48,yy2); Disp_String(XH7,xx2+64,yy2);}vo

温馨提示

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

评论

0/150

提交评论