基于WindowsCE系统的模拟时钟设计
- 格式:doc
- 大小:24.50 KB
- 文档页数:2
基于Windows CE系统的模拟时钟设计
侯秋华;刘炜
【期刊名称】《电子世界》
【年(卷),期】2012(000)018
【摘要】本文介绍了一种基于Windows CE 6.0操作系统的模拟时钟的设计方法,该设计以三星公司的S3C2440为核心,基于MFC编程,实现了钟面上时分秒针
的实时显示.本设计编译生成的.exe文件可做为Windows CE系统的一个应用程序使用.
【总页数】3页(P97-98,99)
【作者】侯秋华;刘炜
【作者单位】北方民族大学电气信息工程学院;北方民族大学电气信息工程学院【正文语种】中文
【相关文献】
1.基于SPCE061A单片机的多功能实时时钟系统的设计 [J], 谷瑞光;檀业健
2.基于LabWindows CVI和Access的学生成绩管理系统的设计 [J], 王瑜;闫沫
3.基于Windows CE模拟器的GPS定位程序设计 [J], 王浩
4.嵌入式 Windows CE 系统下基于 LabVIEW Mobile模块的储液罐监控系统快速设计 [J], 潘世豪;王瑞波;王君丽;王永庆
5.基于Windows CE与FP GA的空情模拟系统的设计 [J], 关进辉;石春和;赵寰
因版权原因,仅展示原文概要,查看原文内容请购买。
《基于Windows CE数控系统软件的设计与实现》一、引言随着现代工业自动化技术的飞速发展,数控系统作为制造业中不可或缺的组成部分,其重要性和应用范围日益扩大。
Windows CE作为一种专为嵌入式系统设计的操作系统,具有体积小、运行效率高、可定制性强等特点,广泛应用于数控系统软件的开发中。
本文将详细介绍基于Windows CE数控系统软件的设计与实现过程。
二、系统需求分析在系统设计之初,我们首先需要对数控系统软件的需求进行深入分析。
需求分析包括明确系统的功能需求、性能需求以及用户界面需求等。
功能需求主要涉及数控系统的基本操作,如加工路径规划、机床控制、参数设置等;性能需求则关注系统的响应速度、稳定性以及数据处理能力;用户界面需求则要求软件界面友好、操作便捷。
三、系统设计根据需求分析结果,我们进行系统设计。
设计阶段主要包括总体架构设计、模块划分、数据库设计以及界面设计等。
1. 总体架构设计:采用模块化设计思想,将系统划分为多个功能模块,如加工模块、控制模块、通信模块等。
每个模块负责特定的功能,便于后期维护和升级。
2. 模块划分:根据功能需求,将系统划分为若干个功能模块。
每个模块内部实现特定的功能,模块之间通过接口进行通信,实现信息的传递和共享。
3. 数据库设计:为了实现对加工参数、机床状态等数据的存储和管理,需要设计相应的数据库。
数据库应具备高可靠性、高效率和可扩展性等特点,以便支持大量数据的存储和查询。
4. 界面设计:界面设计应遵循简洁、直观、易操作的原则,使用户能够快速上手并方便地进行操作。
同时,界面应具备良好的交互性,以便用户能够及时获取系统状态和操作反馈。
四、系统实现在系统实现阶段,我们根据设计阶段的结果,使用C、C++等编程语言,结合Windows CE开发环境,进行具体的编程实现。
1. 编程语言选择:C和C++是Windows CE开发中常用的编程语言。
C具有语法简单、易于上手的特点,而C++则具有强大的功能扩展性和灵活性。
在Windows CE .NET 4.1 平台上实现坚固的Windows CE 计时器发布日期:11/10/2004 | 更新日期:11/10/2004Michel VerhagenMicrosoft Windows Embedded MVPPTS Software, The Netherlands适用于:Microsoft Windows CE .NET 4.1摘要本文为系统开发人员提供了使用仅限于软件的解决方案在 Windows CE 平台上实现坚固的CE 计时器的指导原则。
本页内容简介QueryPerformanceCounter对计时器进行重新编程关于作者缩略语和术语简介Windows CE .NET 是来自Microsoft 的嵌入式组件化OS,它具有1 微秒(ms) 的内部计时器信号分辨率。
对于大多数项目而言,2 ms 的精确度就足够了,但某些项目却需要较高分辨率的非阻塞计时器。
CE API 没有提供此类现成功能,但通过对OAL 加以略微修改,我们可以获得分辨率高于2ms 的坚固的非阻塞计时器。
返回页首QueryPerformanceCounterWindows 确实通过QueryPerformanceCounter API 为高分辨率计时器提供了现成的解决方案。
如果您必须延迟一小段时间,则使用该API 非常有效,但如果您希望等待一小段时间,又该如何呢?延迟和等待之间的差别在于:延迟比等待消耗更多的CPU 时间。
等待意味着系统中的其他(优先级较低或相等的)线程可以在等待期间执行。
LARGE_INTEGER liDelay;// Query number of ticks per secondif (QueryPerformanceFrequency(&liDelay)){// 1ms delayliDelay.QuadPart /= 1000;LARGE_INTEGER liTimeOut;// Get current ticksif (QueryPerformanceCounter(&liTimeOut)){// Create timeout valueliTimeOut.QuadPart += liDelay.QuadPart;LARGE_INTEGER liCurrent;do{// Get current ticksQueryPerformanceCounter(&liCurrent);// Delay until timeout} while (liCurrent.QuadPart<liTimeOut.QuadPart);}}以最高优先级(优先级0)运行上述代码将在延迟期间阻塞整个OS。
基于WindowsCE系统的模拟时钟设计作者:侯秋华刘炜来源:《电子世界》2012年第18期【摘要】本文介绍了一种基于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触摸屏的大小确定圆心位置,这样就确定了表盘的位置,表盘上的刻度都在以圆心为中心的圆环上。
以下是一个简单的使用Python和turtle库来创建一个模拟时钟的代码。
这个时钟将显示当前的时间,并且每秒更新一次。
python复制代码import turtleimport timewin = turtle.Screen()win.setup(width=600, height=600)win.bgcolor("black")# 创建一个新的Turtle对象clock_turtle = turtle.Turtle()clock_turtle.hideturtle()# 循环每秒更新一次时间while True:# 获取当前时间current_time = time.strftime("%H:%M:%S")# 清空屏幕win.clear()# 画时钟的边框clock_turtle.penup()clock_turtle.goto(-200, -200)clock_turtle.pendown()clock_turtle.circle(400)# 画时钟的小时数clock_turtle.penup()clock_turtle.goto(-100, -150)clock_turtle.pendown()clock_turtle.setheading(0)clock_turtle.forward(200)clock_turtle.setheading(90)clock_turtle.forward(100)clock_turtle.setheading(180)clock_turtle.forward(200)clock_turtle.setheading(270)clock_turtle.forward(100)# 画时钟的分钟数clock_turtle.penup()clock_turtle.goto(-50, -150)clock_turtle.pendown()clock_turtle.setheading(0)clock_turtle.forward(150)clock_turtle.setheading(90)clock_turtle.forward(100)clock_turtle.setheading(180)clock_turtle.forward(150)clock_turtle.setheading(270)clock_turtle.forward(100)# 画时钟的秒钟数clock_turtle.penup()clock_turtle.goto(0, -150)clock_turtle.pendown()clock_turtle.setheading(0)clock_turtle.forward(120)clock_turtle.setheading(90)clock_turtle.forward(100)clock_turtle.setheading(180)clock_turtle.forward(120)clock_turtle.setheading(270)clock_turtle.forward(100)# 显示时间文本clock_turtle.penup()clock_turtle.goto(-150, -80)clock_turtle.pendown()clock_turtle.color("white")clock_turtle.write(current_time, font=("Arial", 24, "normal")) # 显示时间文本,字体大小为24,正常样式显示文本。
《Windows CE嵌入式系统》课程设计报告题目:Windows CE设备应用程序开发——图像处理专业名称:电子信息工程班级:学号:姓名:二零一零年五月Windows CE设备应用程序开发——图像处理中文摘要:众所周知图像处理在我们的生活中演绎着重要的角色,而基于windows mobile操作系统的图像处理软件相对较少,毫无疑问手机上的应用软件可以带给我们更大的方便,本设计就是基于Visual Studio2005环境中语言开发出来适合在手机上运行的图像处理软件,可以对特定的图像进行特殊处理,使图像显得更加生动、有趣。
关键词:浮雕柔化反转 1.1.1设计环境Windows XPVisual Studio20051.1.2设计目标利用Visual Studio 2005开发出适合在有windows mobile操作系统手机上运行的图像处理软件,软件应包括对图像的浮雕、柔化、反转等处理;为人们的生活提供方便。
1.2设计过程1.2.1浮雕处理在图像中烘托图形的边缘,淡化平淡区就产生了浮雕的效果。
要实现浮雕效果,可以用像素及其相邻像素之间的差值来替换该像素的值。
对于图像中的边缘,差值较大,产生的效果变得比较突出,而对于图像中的平坦部分,差值很小接近于0,图像变的很黑而看不清一次在算法中给每个差值加上一个常数,使图像整体变亮。
设计代码如附件中的浮雕处理部分;运行后的效果如下:1.2.2柔化处理柔化后图像比原图更加柔和,有点像降低图像的对比度效果。
要实现柔化,可以用像素周围相邻像素的平均值作为该图像的新值,即可减少像素间的差别,从而带到柔化的效果。
例如,相邻像素的访问可以取3*3像素块,计算平均值时,用像素块的9哥像素计算平均。
若要增加柔化效果可取较大的像素块。
设计代码如附件中的柔化处理部分;运行后的效果如下:1.2.3发转处理反转处理就是将图像中的每个像素的颜色改为其互补色。
例如,黑色的互补色为白色,彩色的互补色是将其红、绿、蓝三色分别计算互补色。
《基于Windows CE数控系统软件的设计与实现》一、引言随着制造业的快速发展,数控系统在工业生产中扮演着越来越重要的角色。
Windows CE作为一种专为嵌入式系统设计的操作系统,具有体积小、功耗低、运行稳定等优点,被广泛应用于数控系统软件开发中。
本文将详细介绍基于Windows CE数控系统软件的设计与实现过程。
二、系统需求分析在开始设计之前,我们需要对数控系统软件的需求进行详细的分析。
这些需求包括但不限于:系统的稳定性、可扩展性、用户界面友好性、硬件兼容性等。
同时,还需要考虑到数控系统的具体应用场景,如加工中心、车床、铣床等。
通过对这些需求的深入分析,我们可以为后续的设计和实现工作提供明确的指导。
三、系统设计1. 整体架构设计:基于Windows CE的数控系统软件整体架构包括硬件层、操作系统层、应用软件层和用户界面层。
硬件层负责与数控机床的硬件设备进行通信;操作系统层为Windows CE;应用软件层负责实现数控系统的核心功能;用户界面层则提供友好的操作界面。
2. 数据库设计:为满足数控系统的数据管理需求,我们需要设计一套合适的数据库系统。
该数据库应能存储加工工艺、设备参数、产品信息等数据,并支持数据的查询、修改、删除等操作。
3. 模块化设计:为提高系统的可维护性和可扩展性,我们采用模块化设计方法。
将系统划分为若干个功能模块,每个模块负责实现特定的功能,模块之间通过接口进行通信。
四、系统实现1. 开发环境搭建:在搭建开发环境时,我们需要安装Windows CE操作系统、开发工具(如Visual Studio)以及必要的驱动程序和库文件。
2. 硬件通信:通过编写驱动程序或使用现有的通信协议,实现数控系统软件与硬件设备的通信。
这包括与PLC(可编程逻辑控制器)、伺服电机、传感器等设备的通信。
3. 功能实现:根据需求分析结果和整体架构设计,实现数控系统的各项功能。
这包括加工工艺管理、设备参数设置、产品信息查询、程序编辑等。
案例五模拟时钟应用程序以实例为背景学习基于MFC的WINDOWS应用程序设计,编写一个模拟时钟程序,此程序在屏幕左边有一个指针式钟面,右方有两个矩形框,上面以数字方式显示日期和时间,该时间应与指针显示的时间一致,下方的矩形框作为秒表。
用菜单选项或按钮设置时间和秒表。
时间不必与机器系统时间相同,可任意设置。
模拟时钟示意图1 编程要求(1)为该程序设计一个美观大方的图标。
(2)程序界面设计合理,色彩得体大方,显示正确。
(3)时针、分针和秒针形象美观,即使各指针重合也可辨认。
(4)各指针运动规律正确。
为便于演示,时钟速度应比实际时间快20倍,即1小时相当于3分钟。
(5)数字式时钟的时间显示与指针式时钟显示一致。
(6)按下设置时间按钮或菜单项可弹出一对话框,用于设置当前的时间和日期。
(7)按下秒表控制按钮后,秒表显示窗中显示从0开始的时间,单位为百分之一秒。
再次按下秒表控制按钮后计时停止,该窗口显示累计时间。
2 问题分析本题主要涉及到的知识点有:时钟指针运动算法、屏幕重绘方法、定时器消息、鼠标消息、菜单命令、对话框、画笔/画刷、显示文字等。
指针运动算法和屏幕重绘方法是本程序主要难点所在。
不论何种指针,每次转动均以π/30弧度(一秒的角度)为基本单位,且都以表盘中心为转动圆心。
计算指针端点(x, y)的公式如下:x =圆心x坐标+ 指针长度* cos (指针方向角)y =圆心y坐标+ 指针长度* sin (指针方向角)注意,指针长度是指自圆心至指针一个端点的长度(是整个指针的一部分),由于指针可能跨越圆心,因此一个指针需要计算两个端点。
三个指针的运动是相关联的,秒针转一圈引起分针运动一格,分针转一圈引起时针运动一格,因此应该使用一个定时器消息来处理指针的运动。
若用三个定时器消息分别处理时针、分针和秒针的运动,就会使问题复杂化且不易实现三个指针联动的正确规律。
采用一个定时器消息可以很容易实现指针联动算法。
由于屏幕的重绘速度很快(50 ms一次),如果采用全屏删除式重绘则闪烁十分明显,显示效果不佳。
《基于Windows CE数控系统的运动与PLC控制器的设计与实现》一、引言随着工业自动化技术的快速发展,数控系统在制造业中扮演着越来越重要的角色。
Windows CE数控系统以其强大的功能、灵活的配置和友好的界面,逐渐成为现代制造业的首选。
本文将详细介绍基于Windows CE数控系统的运动与PLC控制器的设计与实现过程。
二、系统概述本系统基于Windows CE操作系统,结合数控技术和PLC控制技术,实现机床的精确运动控制和自动化生产。
系统主要由运动控制模块、PLC控制器模块、人机交互界面以及通信模块等部分组成。
三、运动控制模块设计1. 硬件设计:运动控制模块主要包括电机驱动器、传感器、执行器等硬件设备。
电机驱动器负责驱动机床的运动,传感器用于检测机床的实时状态,执行器则根据控制指令进行动作。
2. 软件设计:软件部分主要负责控制算法的实现。
通过编写控制程序,实现对机床的精确运动控制。
同时,软件还需与PLC 控制器进行通信,实现数据共享和协同工作。
四、PLC控制器模块设计1. 硬件设计:PLC控制器模块主要包括CPU、内存、输入输出接口等硬件设备。
CPU负责执行程序指令,内存用于存储程序和数据,输入输出接口则用于与外部设备进行通信。
2. 软件设计:软件部分主要包括PLC编程软件和控制程序。
编程软件用于编写和控制PLC的逻辑程序,控制程序则根据机床的运动状态和工艺要求,对PLC进行控制。
五、人机交互界面设计人机交互界面是系统的重要组成部分,主要用于显示机床的实时状态和接收操作人员的指令。
界面设计应考虑到易用性、直观性和灵活性等因素,以提供良好的用户体验。
六、通信模块设计通信模块负责系统各部分之间的数据传输和通信。
采用适当的通信协议和接口,确保数据传输的可靠性和实时性。
同时,还需考虑通信速度和抗干扰能力等因素,以满足工业现场的需求。
七、系统实现1. 硬件实现:根据设计要求,选择合适的硬件设备,完成电路板的制作和组装。
基于Win CE的嵌入式虚拟仪表显示系统研制摘要:本文研究和设计一种能够应用在WinCE设备平台的OBD 汽车虚拟仪表方案,将OBD的诊断结果以虚拟仪表图形的方式在WinCE平台上显示。
通过对OBD系统所使用的通信协议、九种诊断模式,以及WinCE平台的系统架构和应用程序结构的研究,为设计方案打下基础。
关键词:车载诊断系统WINCE 汽车虚拟仪表OBD是英文On Board Diagnostics的缩写,中文翻译为“车载诊断系统”[1],装载OBD协议的汽车能够自动监测汽车各项运行参数,具有很高的安全性。
WindowsCE是微软公司嵌入式、移动计算平台的基础,它是一个开放的、可升级的32位嵌入式操作系统,是基于掌上型电脑类的电子设备操作系统,它是精简的Windows 95,Windows CE的图形用户界面相当出色。
本文介绍一种能够应用在WinCE设备平台的OBD汽车虚拟仪表设计方案。
1 需求分析与总体设计OBD系统能够输出汽车ECU(Electronic Control Unit)电子控制单元通过车载传感器获得的燃油系统、温度系统、点火系统、动力系统以及废气控制辅助装置系统运行状态数据,在发生故障的情况下则输出故障码。
硬件设计方面,设计了以ELM327为主控芯片的硬件连接电路和以PL2303芯片为主控芯片的电平转换电路,扩展OBD接口的功能,与OBD接口通信,解析报文数据流,将OBD接口输出信号转换为WinCE 平台设备能够识别的信号并输入。
软件设计方面,本文具体阐述了在WinCE SDK环境下开发的设计方案。
采用模块化的设计方法,将虚拟仪表软件分为通信初始化模块、OBD数据解析模块、计算与显示模块进行设计和研究,实现了将发动机状态、发动机转速、当前时速、剩余油量、发动机温度等行车信息在WinCE平台上以汽车虚拟仪表图形显示。
2 硬件连接器设计2.1 连接器设计连接器的作用时信号转换,因为系统终端与ECU的通信码均为串口信号,只是与RS-232标准串口信号的电压不同,标准串口信号的“1”用-12V表示,“0”用+12V表示,而K线的“0”用0~1.3V表示,“1”用12V表示,所以需要设计一块转换卡,把K线的串口信号转换为标准的串口信号,即可实现利用计算机串口来读取嵌入式系统终端与ECU 的通信码。
《基于Windows CE数控系统的运动与PLC控制器的设计与实现》一、引言随着制造业的快速发展,数控系统在自动化生产线上扮演着越来越重要的角色。
而基于Windows CE数控系统的运动与PLC 控制器的设计与实现,更是成为了现代制造业的关键技术之一。
本文将详细介绍该系统的设计思路、实现方法以及应用效果。
二、系统设计1. 运动控制设计运动控制是数控系统的核心部分,主要涉及到电机驱动、传感器检测以及运动轨迹规划等方面。
在Windows CE数控系统中,我们采用了高性能的电机驱动器和传感器,配合精确的运动控制算法,实现了高精度的运动控制。
同时,我们利用了多线程技术,使得运动控制和系统界面能够并行工作,提高了系统的响应速度。
2. PLC控制器设计PLC控制器是实现自动化生产线的关键部分。
在Windows CE数控系统中,我们采用了先进的PLC控制器设计理念,实现了高度的可配置性和可扩展性。
我们采用了模块化设计,将PLC 控制器的各个功能模块化,使得系统在满足基本功能的同时,还能根据实际需求进行定制化开发。
此外,我们还采用了实时操作系统,保证了PLC控制器的实时性和稳定性。
三、实现方法1. 硬件实现在硬件方面,我们选用了高性能的处理器、内存和存储设备,以保证系统的运行速度和数据处理能力。
同时,我们还选用了高精度的电机驱动器和传感器,以确保运动控制的精度和稳定性。
此外,我们还采用了工业级的设计和制造工艺,保证了系统的可靠性和稳定性。
2. 软件实现在软件方面,我们采用了Windows CE操作系统作为系统的核心平台。
我们根据实际需求,开发了相应的驱动程序和应用程序,实现了运动控制和PLC控制器的功能。
同时,我们还采用了图形化界面设计,使得操作人员能够直观地了解系统的工作状态和运行情况。
此外,我们还开发了相应的调试和维护工具,方便操作人员进行系统的调试和维护。
四、应用效果基于Windows CE数控系统的运动与PLC控制器的设计与实现,在实际应用中取得了显著的效果。
基于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个数组元素的正余弦数组,为计算每个刻度跟时分秒针在表盘中的位置做准备。
校正后的角度值,按顺时针重新排列三角函数值,得到如下正余弦数组:
时钟表盘画法流程图:见图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:///Blog/Detail_RD.Blog_blogercn_20940.html,2009—8—9/2012—9—20.
刘炜(1963—),男,副教授,硕士生导师,主要研究方向:智能仪器。