研究生嵌入式课程论文——电子时钟设计1.docVIP

研究生嵌入式课程论文——电子时钟设计1.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
研究生课程论文 电子时钟设计    课程名称 嵌入式系统设计 姓 名 学 号 专 业 信号与信息处理 任课教师   开课时间 2010年 教师评阅意见: 论文成绩 评阅日期 课程论文提交时间: 2010年 8 月 1 日 摘要:电子时钟,与传统的机械钟相比,它具有走时准确、显示直观,无机械装置等优点。随着现代数字技术的发展,广泛的应用于各个生活生产领域,如时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备等等。? 本次课程设计具有最简单的计时功能及调整时间的功能。为核心,并以为程序设计为基础,构成一个简单的电子时钟。通过能够准确显示时间,时、分、秒,并且可以通过按键进行校时。 ??关键字:?? 电子时钟??校时 日期设置:通过开发板上的17键数字小键盘修改当前的日期 时间设置:通过开发板上的17键数字小键盘修改当前的时间 2、电子钟 获取系统的当前时间,把系统时间显示在一个文本框中,并可以通过键盘设置修改。 3、表 盘 时钟表盘是通过画一个圆,并对其进行60等分来实现。对圆进行等分是先确定两个坐标点,坐标点的横坐标恰好是对应夹角与半径的正弦值,纵坐标等于对应夹角与半径的余弦值,然后利用API函数来画线和显示刻度值。 4、表针显示和走动 首先通过函数取得时钟的时数,分数和秒数,然后利用当前时间(时,分,秒)相对于零点(12点)的数学关系,分别求出时针,分针,秒针图形长度的终点像素坐标,再用不同颜色通过画线命令以表盘原点为起点分别画出时针,分针,秒针,这样即可在屏幕上显示当前时间。 按钟表走动的原理,设计秒针每隔一秒走动一次,当秒针走完60秒,也就是秒数为零时,分针走动一分,当分针每走5分钟或10分钟的同时,时针走动一下,如此循环就完成了表针的走动操作,实际编程时,先取得秒数,分数,时数,换算成屏幕像数点坐标,再用画线命令显示秒针,分针及时针,显示表针图形走动的同时,还要考虑表针走动后,前一个表针图形不能留在屏幕上,以及表针重合时不能覆盖背景屏幕。 三、操作系统多任务设计: uc/os-Ⅱ操作系统支持多任务,本设计除了主任务Main_Task外,还创建了时钟更新显示的任务,表盘和数字时钟更新显示任务分别为My_Clock_Task、Rtc_Disp_Task。系统主任务完成键盘, LCD刷新等。 电子时钟更新任务程: Rtc_Disp_Task完成系统时钟的日期和时间的更新显示,其程序流程图如下图2-2所示: 图2-2 电子时钟更新显示任务程序流程图 附件: 程序: #include..\ucos-ii\includes.h /* uC/OS interface */ #include ..\ucos-ii\add\osaddition.h #include ..\inc\drv.h #include ..\inc\drv\OSFile.h #include ..\inc\drv\Display.h #include string.h #include math.h #include ..\inc\def.h #pragma import(__use_no_semihosting_swi) // ensure no functions that use semihosting ///******************任务定义***************///一个任务通常是一个无限循环,任务返回参数必须定义为void //主任务 OS_STK Main_Stack[STACKSIZE*8]={0, }; //Main_Test_Task堆栈 void Main_Task(void *Id); //Main_Test_Task #define Main_Task_Prio 12 //实时时钟显示任务 OS_STK Rtc_Disp_Stack[STACKSIZE*4]={0,}; void Rtc_Disp_Task(void *Id); #define Rtc_Disp_Task_Prio 14 //时钟任务 OS_STK My_Clock_Stack[STACKSIZE*4]={0,}; void My_Clock_Task(void *Id); #define My_Clock_Task_Prio 15 ///**************全局变量定义***************//

文档评论(0)

beifanglei + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档