基于WindowsCE系统的模拟时钟设计

来源 :电子世界 | 被引量 : 0次 | 上传用户:fl908720
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  【摘要】本文介绍了一种基于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个数组元素的正余弦数组,为计算每个刻度跟时分秒针在表盘中的位置做准备。校正后的角度值,按顺时针重新排列三角函数值,得到如下正余弦数组:
  时钟表盘画法流程图:见图1。
  画表盘核心代码:
  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代入下列公式,即可算出秒针的顶点和终点坐标。
  时钟指针画法流程图:见图2。
  绘制指针的核心代码:
  程序界面设计结构为上方显示模拟钟,下方显示数字钟和时间调整按钮。本设计程序在一个显示界面下实现了模拟钟、数字钟和时间调整的功能。程序运行效果如图3所示。指针和刻度颜色可根据个人喜好设定,笔者设置为黑色。
  5.结语
  本文的设计在Windows CE操作系统下,实现了模拟钟的全部显示功能,同时还具有数字鐘的显示和时间调整功能。编译形成的可执行文件,可用于智能手机、PDA、带触屏的开发板等具有Windows CE系统的微型设备中,对嵌入式初学者也有很大的帮助。
  参考文献
  [1]blogercn的专栏 一个模拟时钟[EB/OL].http://www.52rd.com/Blog/Detail_RD.Blog_blogercn_20940.html,2009—8—9/2012—9—20.
  作者简介:
  侯秋华(1986—),女,硕士研究生,主要研究方向:信号检测与信息处理。
  刘炜(1963—),男,副教授,硕士生导师,主要研究方向:智能仪器。
其他文献
健康教育对做好结核病控制工作起着相当重要的作用,通过开展健康教育可以向广大民众宣传有关结核病的防病、治病知识,增强其自我保护意识和保护能力,同时也可以提高结核病病
目的:探讨对照超声弹性成像与常规超声诊断甲状腺良恶性结节的价值。方法回顾性分析40例甲状腺患者的超声弹性成像和常规超声特征,对比两者准确性。结果前者的准确性明显高于常
有人说,开发区仅仅是一块土地,在这块土地上,有很好的设施和密集的企业,并且实行一些优惠政策吗?是,却不尽然。
3月29—30日,中国科技金融促进会风险投资专业委员会在江苏省丹阳市召开了“2010年全国风险投资行业年会暨第五届风险投资模式创新高峰论坛”。原国务委员、全国政协副主席、
2009年对于包头稀土高新区来说是硕果丰盈的一年,面对金融危机的冲击,包头稀土高新区提前谋划,积极应对,综合经济实力大幅提升。据初步统计,2009年实现工业总产值905亿元,总收入879
移动目标的实时捕获与跟踪系统是集信号采集、视频传输、计算处理、控制显示为一体的完备处理系统,具有巨大的应用意义和发展潜力。应使用对象对系咎应用成本低廉化、系统徽缩
北京灵之秀茶文化有限公司种植加工的黄芩茶、酸枣芽茶、山杏扁、核桃4种食品,在经过材料申报、专家审查、实地检查、审查评估等认证程序后,日前获得国家有机食品认证证书。这
目的 选择不同根管充填剂对急性牙髓炎患者进行根管充填,对比其效果。方法 192例急性牙髓炎患者,按照患者入院顺序不同分为对照组与观察组,各96例。对照组患者选择氧化锌丁香
在中国的社会中商人阶层一直是被忽略的群体,但是翻开历史的记载,每一个时代的商人阶层却与当地经济的发展有着丝般的密切联系。本文就是以清代闽台对渡时期的郊商为例。以区域
营改增在试点地区实行以来,大多数行业实现了税负的下降,而交通运输业因其行业的特殊性却暴露出许多问题,本文主要探讨存在于该行业的营改增带来的部分企业税负增加问题,并提出了