排行榜 创业指南

扫一扫关注有惊喜

TOP

基于WindowsCE系统的模拟时钟设计
内容摘要:基于WindowsCE系统的模拟时钟设计

  【摘要】本文介绍了一种基于Windows CE 6.0操作系统的模拟时钟的设计方法,该设计以三星公司的S3C2440为核心,基于MFC编程,实现了钟面上时分秒针的实时显示。本设计编译生成的.exe文件可做为Windows CE系统的一个应用程序使用。

  【关键词】ARM;S3C2440;Windows CE;模拟时钟

  1.引言

  随着科学技术的发展,嵌入式设备广泛应用于商业管理和工业控制等领域。本设计以ARM9嵌入式微处理器S3C2440为核心,基于MFC编程,在开发板的液晶显示屏上显示模拟时钟,实现了时分秒针的实时显示。

  2.硬件平台

  本设计以ARM9嵌入式微处理器S3C2440开发板为核心,主要利用S3C2440内置的RTC模块,通过读取系统时间来实时绘制时针,实现模拟时钟的实时走动。

  3.软件设计

  3.1 对话框设计

  建立工程之后,在Resource View中设计模拟时钟的界面,选定一个与S3C2440触摸屏相符的对话框界面。模拟时钟的显示用程序实现,在对话框下方放置从Toolbox中选择的控件。本设计总共用到九个控件:对话框控件,显示时分秒的静态文本控件,用于显示数字的动态控件,更改时间的控件和确定控件等。

  3.2 程序设计

  首先添加一个OnTimer()函数读取系统时间并用作计时器的消息处理函数,用于通知moniDlg类中的画表盘刻度和指针的函数重新绘图。添加设置时间按钮函数,用于导出软键盘,设置时间;确认按钮函数用于关闭软键盘,此时屏幕刷新。

  3.2.1 表盘刻度画法

  在moniDlg类中添加画表盘刻度的函数。程序创建两种画笔,设置不同的颜色和粗细,来区分整点时刻和分点时刻。

  由于S3C2440开发板显示屏默认的原点在左上角,根据S3C2440触摸屏的大小确定圆心位置,这样就确定了表盘的位置,表盘上的刻度都在以圆心为中心的圆环上。其坐标可以通过三角函数推导出来。设圆心坐标为(X,Y),半径为R,表盘上其他点的坐标为(X1,Y1),该点与圆心X轴夹角为A(0~360度),该点坐标为(X1=X+RcosA,Y1=Y+RsinA)。

  由于我们习惯上使用逆时针的角度,而表针是顺时针转动,即在S3C2440上,坐标跟我们实际用到的坐标方向不同,所以我们应先算出从12点开始的每个刻度的正余弦值,即有60个数组元素的正余弦数组,为计算每个刻度跟时分秒针在表盘中的位置做准备。

  3.2.2 指针画法

  在moniDlg类中添加刻画指针的函数。时分秒针主要用长短和粗细区分,亦可设置指针颜色。绘制指针以角度值为控制变量,根据前面画表盘计算出的校正后的角度值及定义的时分秒针的长度,算出时分秒针起始的坐标值。利用读取的系统时间算出坐标,用函数MoveTo(x1,y1)和LineTo(x2,y2)实现指针的连接并实时显示。为了让模拟时钟看起来更加平滑美观,本文设计每2分钟,时针移动1度;每10秒钟,分针移动1度;秒针则是每秒移动一格即6度。因此要计算时分秒针的坐标位置,还需在校正后角度的三角函数正余弦数组中加入一定的数组元素,构成新的三角函数正余弦数组:

  (1)时针的取值只有1~12这12个数字,本文设计每2分钟,时针移动1度。此处用读取的分钟数和小时数来计算时针的顶点和终点坐标。设读取系统时间的小时数为st.wHour,分钟数为st.wMinute,时针移动的度数为H。由于S3C2440系统时间采用24小时制,当读取系统小时数小于等于12,则H=st.wHour*30+st.wMinute/2;当系统小时数大于12,则H=(st.wHour—12)*30+st.wMinute/2。若得到的H=360,则取H为0;若H<360,则H取式中算出的值。将算出的H代入下列公式,即可算出时针的顶点和终点坐标。其中x和y为表盘圆心坐标,下同。

  (2)分针的取值是60个数字,本设计为每10秒分针移动1度。用读取的分钟数和秒钟数来计算分针的顶点和终点坐标。设读取的分钟数为st.wMinute,秒钟数为st.wSecond,分针移动的度数为M。由于要使得每10秒分针移动1度,因此计算时要加上st.wSecond/10。M=st.wMinute*6+st.wSecond/10,当计算后M=360,则取M为0。将算出的M代入下列公式,即可算出分针的顶点和终点坐标。

  (3)秒针的取值亦为60个数字,本设计为每过1秒钟,秒针移动1格。设读取系统的秒钟数为st.wSecond,秒针移动的度数为S。S=st.wSecond*6,当计算出的S=360时,S取0;否则取计算出的值。将算出的S代入下列公式,即可算出秒针的顶点和终点坐标。

  程序界面设计结构为上方显示模拟钟,下方显示数字钟和时间调整按钮。本设计程序在一个显示界面下实现了模拟钟、数字钟和时间调整的功能。程序运行效果如图3所示。指针和刻度颜色可根据个人喜好设定,笔者设置为黑色。

  5.结语

  本文的设计在Windows CE操作系统下,实现了模拟钟的全部显示功能,同时还具有数字钟的显示和时间调整功能。编译形成的可执行文件,可用于智能手机、PDA、带触屏的开发板等具有Windows CE系统的微型设备中,对嵌入式初学者也有很大的帮助。

  参考文献

  [1]blogercn的专栏 一个模拟时钟[EB/OL],2009—8—9/2012—9—20.

  作者简介:

  侯秋华(1986—),女,硕士研究生,主要研究方向:信号检测与信息处理。

  刘炜(1963—),男,副教授,硕士生导师,主要研究方向:智能仪器。

责任编辑:中宾科技

标签云: 名人百科网,品牌百科网 辅导班开课通知家长群 美术培训班搬迁通知 少儿美术开课通知 艺术培训班开课通知范文 美术班复课通知 培训班开课通知话术 画室开课通知 美术培训班开课通知模板 培训机构上课温馨提示 奶茶店成功营销方案 美容院顾客裂变方法 老客户转介绍激励方案 转介绍的方案和思路 美容院如何快速裂变 美容院如何玩裂变 裂变客户的十种方法 小型餐饮业营销计划方案 餐饮全年营销方案计划表 餐饮行业营销策划的特点 我开早餐店的真实经历做早餐生意的窍门开早餐店的惨痛经历未来早 线下宣传推广策划方案 产品线下推广活动方案 完整的婚礼策划方案 地推的60种方法 电商平台促销活动方案 线上推广的渠道有哪些 推广品牌的策划方案 地推活动策划方案创意 旅游景区营销推广方案
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到QQ空间
分享到: 
上一篇研究设计USB接口数据传输系统 下一篇论述项目驱动的Word编辑排版的教..

相关阅读:

相关栏目

安全提示

最新文章

热门信息

siteMap.txt