模拟时钟应用程序

合集下载

【毕业论文】基于LabVIEW的多功能秒表设计(计时器+倒计时+节拍器+日历+时钟)

【毕业论文】基于LabVIEW的多功能秒表设计(计时器+倒计时+节拍器+日历+时钟)

基于LabVIEW的秒表设计摘要数字式秒表是一种常用的计时工具,广泛用于各种比赛以及各类实验测量中。

随着生活节奏的加快,人们时间观念的加强,各种计时器已经成为人们日常生活中不可或缺的一部分,并且人们已经不能满足于单一的某一种功能了。

而如何在秒表的基础上,根据人们生活的需要增加相应的功能以方便人们的生活,便成为秒表设计方面的重点。

我基于LabVIEW设计的的秒表,具有秒表计时器、倒计时器、节拍器、时钟和闹钟的功能。

其具有界面美观,简单易用,功能强大,精确度高等特点。

此秒表的所有功能均可以独立运行,互不干扰,具有很好的用户体验。

关键词:秒表,计时,LabVIEWStopwatch design based on LabVIEWAbstractDigital stopwatch is a commonly used tool for timing.It is widely used in various competitions and a variety of experimental measurements.With the accelerated pace of life and the strengthening of the concept of time,variety timer has become an indispensable part of everyday life,and it has been unable to meet on a single feature of a certain kind.It has become the focus of the stopwatch design that how to add the corresponding function according to the needs of people's lives based on the stopwatch to convenience to people's lives.Stopwatch witch I designed based on LabVIEW, is with a stopwatch timer, countdown timer, metronome, clock and alarm functions.It has a beautiful interface, easy to use, powerful, high precision characteristics.This stopwatch’s all functions can be run independently, means can without disturbing each other, and with good user experience.Keywords: stopwatch, timer, LabVIEW目录1.绪论 (1)1.1 引言 (1)1.2虚拟仪器的概念及特点 (1)1.2.1虚拟仪器 (1)1.2.2 虚拟仪器的特点 (1)2. 图形化编程和LabVIEW (2)2.1 图形化编程简介 (2)2.2 LabVIEW简介 (2)2.2.1前面板 (2)2.3.2 程序框图 (2)3.秒表介绍及程序设计 (3)3.1 概述 (3)3.2 秒表的发展 (3)3.3 秒表的功能设计 (5)3.3.1.正计时 (5)3.3.2 倒计时 (6)3.3.3.节拍器 (6)3.3.4.时钟与闹钟 (6)4. 程序实现 (7)4.1秒表计时器 (7)4.1.1 流程图 (7)4.1.2程序设计 (8)4.2 倒计时器 (21)4.2.1流程图 (21)4.2.2程序设计 (22)4.3节拍器 (25)4.3.1流程图 (25)4.3.2 程序设计 (26)4.4时钟及闹钟 (28)4.4.1流程图 (28)4.4.2 程序设计 (28)总结 (31)致谢 (33)1.绪论1.1 引言LabVIEW是一种程序开发环境,由美国国家仪器(NI)公司研制开发的,类似于C和BASIC开发环境,但是LabVIEW与其他计算机语言的显著区别是:其他计算机语言都是采用基于文本的语言产生代码,而LabVIEW使用的是图形化编辑语言G编写程序,产生的程序是框图的形式。

毕业设计(论文)-基于单片机多功能电子时钟的设计与仿真(含程序仿真)[管理资料]

毕业设计(论文)-基于单片机多功能电子时钟的设计与仿真(含程序仿真)[管理资料]

程序仿真等全套设计,联系153893706第1章绪论二十一世纪的今天,最具代表性的计时产品就是电子万年历,它是近代世界钟表业界的第三次革命。

第一次是摆和摆轮游丝的发明,相对稳定的机械振荡频率源使钟表的走时差从分级缩小到秒级,代表性的产品就是带有摆或摆轮游丝的机械钟或表。

第二次革命是石英晶体振荡器的应用,发明了走时精度更高的石英电子钟表,使钟表的走时月差从分级缩小到秒级。

第三次革命就是单片机数码计时技术的应用(电子万年历),使计时产品的走时日差从分级缩小到1/600万秒,从原有传统指针计时的方式发展为人们日常更为熟悉的夜光数字显示方式,直观明了,并增加了全自动日期、星期、温度以及其他日常附属信息的显示功能,它更符合消费者的生活需求!因此,电子万年历的出现带来了钟表计时业界跨跃性的进步……我国生产的电子万年历有很多种,总体上来说以研究多功能电子万年历为主,使万年历除了原有的显示时间,日期等基本功能外,还具有闹铃,报警等功能。

商家生产的电子万年历更从质量,价格,实用上考虑,不断的改进电子万年历的设计,使其更加的具有市场。

本设计为软件,硬件相结合的一组设计。

在软件设计过程中,应对硬件部分有相关了解,这样有助于对设计题目的更深了解,有助于软件设计。

基本的要了解一些主要器件的基本功能和作用。

除了采用集成化的时钟芯片外,还有采用MCU的方案,利用AT89系列单片微机制成万年历电路,采用软件和硬件结合的方法,控制LED数码管输出,分别用来显示年、月、日、时、分、秒,其最大特点是:硬件电路简单,安装方便易于实现,软件设计独特,可靠。

AT89C52是由ATMEL公司推出的一种小型单片机。

95年出现在中国市场。

其主要特点为采用Flash存贮器技术,降低了制造成本,其软件、硬件与MCS-51完全兼容,可以很快被中国广大用户接受。

本文介绍了基于AT89C52单片机设计的电子万年历。

选题背景及研究的目的与意义设计的目的电子钟已成为人们日常生活中必不可少的物品,广泛用于个人家庭以及车站码头、剧院、办公室等公共场所,给人们的生活、学习、工作、娱乐带来了极大的方便。

测试反应时间模拟系统

测试反应时间模拟系统

测试反应时间模拟系统摘要随着电子技术的飞速发展,微型计算机已经全面渗透了人类生活各领域,并革命性地改变着人们的生活。

因此,可以说了解微型计算机的基本工作原理对于每个人都十分必要。

而对于即将从事电子行业的工作者来说,熟悉掌握微机原理并在其上进行软硬件的开发设计则是一项必须掌握的基本技能。

为此,在学习微型计算机技术以及其应用的过程中,我设计了一个能测试人体反应时间的模拟系统。

该系统以8088微处理器为核心,结合8255可编程并行通信接口、8253可编程定时/计数器、8259中断控制器等芯片以及LED等辅助电路,来测试人的反应时间,并将其反映在数码管上。

通过此仪器不仅能够真实地测试出人的反应时间,而且还可以锻炼和提高个人对外界突发事件的处理能力。

关键词:反应时间、8086/8088、汇编、8255simulationsystemoftestingreactiontimeAbstractWiththerapiddevelopmentofelectronictechnology,themicro-computerhasimpactedonalmo steveryareaofhumanlifeandmakesthepeople’sliveschangingrevolutionary.So,it’s verynec puterprincipleandhowtod osomehardwareandsoftwaredevelopmentonthecomputershouldbemasteredbythepeoplethatwillw orkinthefieldofelectronicsindustry.Forthisreason,duringstudyingmicro-computertechnol ogyanditsapplication,asystemusedtotestaperson’sreactiontimeisdeveloped.Thesystemtak esthe8088microprocessorasacoreandcombinesIntegratedCircuitssuchas8255ProgrammablePar allelInterface,8253ProgrammableIntervalTimer,8259AProgrammableInterruptControllerand etc,whichteststhereactiontimeanddisplaysitontheLED.Thisequipmentcannotonlytesttherea ctiontimecorrectly,butalsoimprovethehandlingcapacityofsuddeneventsoftheoutsideworldb ytraining.Keywords:reactiontime;8086/8088、assemblelanguage、8255目录摘要 (I)Abstract (II)目录 (III)1.前言 (1)2.设计方案论证 (2)2.1概述 (2)2.2本设计使用的设备介绍 (2)2.2.1TDN86/88+系统简介 (2)2.3设计原理和方法 (3)2.3.1设计原理 (3)2.3.2设计方法 (4)2.3.3程序流程图及其问题 (4)3.本设计中各芯片的工作原理及编程 (13)3.1本设计中8255A芯片的工作原理 (13)3.1.18255A的内部结构 (13)3.1.28255A的控制字及工作方式 (14)3.1.3本设计中8255A的应用编程 (14)3.2本设计中8259A芯片的编程结构和应用编程 (15)3.2.18259A的编程结构 (15)3.2.28259A初始化流程图 (16)3.2.3本设计中8259A的应用编程 (17)3.3本设计中8253A芯片的工作方式和应用编程 (18)3.3.18253的工作方式 (18)3.3.2本设计中8253的应用编程 (19)4.调试过程与总结 (20)4.1程序的调试过程 (20)4.2硬件的调试过程 (28)4.3总结 (29)致谢 (30)参考资料 (31)附录一:测试反应时间模拟系统总电路图 (32)附录二:测试反应时间模拟系统程序 (33)附录三:硬件实物图及实物与TDN86/88+系统的连接图 (45)1.前言近几十年来,微型计算机的应用已经全面渗透进人类生活的各个角落,大到航空航天领域,小至嵌入式家庭用器,无处不见其踪影,无处不让人深刻感受到其对人类生活的革命性变革。

简单的数字时钟(verilog设计)

简单的数字时钟(verilog设计)
Verilog作为一种硬件描述语言,可用于设计和实现数字系统,包括数字时钟。 通过Verilog设计数字时钟,可以加深对数字系统和Verilog语言的理解,并提高 设计能力。
设计目标与要求
设计一个简单的数字 时钟,能够显示时、 分、秒。
时钟应具有可靠性、 稳定性和可扩展性。
要求使用Verilog语 言实现,并能够在 FPGA或ASIC上实现。
设计思路及流程
• 设计思路:采用模块化设计方法,将数字时钟划分为不同的模 块,如计数器模块、显示模块等。每个模块负责实现特定的功 能,并通过接口与其他模块进行通信。
设计思路及流程
设计流程 1. 确定设计需求和目标。 2. 制定设计方案和计划。
设计思路及流程
3. 编写Verilog代码,实现各个模块的功能。 5. 根据测试结果进行调试和优化。
未来改进方向探讨
提高计时精度
通过改进算法或采用更高 性能的硬件平台,提高数
字时钟的计时精度。
降低资源占用
优化代码结构,减少不 必要的资源占用,提高 时钟系统的运行效率。
增加实用功能
拓展应用领域
考虑增加闹钟、定时器 等实用功能,使数字时 钟更加符合用户需求。
探索将数字时钟应用于 更多领域,如智能家居、
数据类型与运算符
Verilog中的数据类型包括
整型、实型、时间型、数组、结构体等。
Verilog中的运算符包括
算术运算符、关系运算符、逻辑运算符、位运算符等。
顺序语句与并行语句
Verilog中的顺序语句包括
赋值语句、条件语句、循环语句等,用于描述电路的时序行为。
Verilog中的并行语句包括
模块实例化、连续赋值语句、门级电路描述等,用于描述电路的并行行为。

52单片机时钟课程设计

52单片机时钟课程设计

52单片机时钟课程设计一、课程目标知识目标:1. 学生能理解并掌握52单片机的基本原理及其在时钟设计中的应用。

2. 学生能描述时钟电路的工作原理,包括时钟晶振、分频器等组成部分。

3. 学生能运用C语言编写程序,实现对时钟的显示、调整和时间计算功能。

技能目标:1. 学生能独立完成52单片机的时钟电路连接和程序编写。

2. 学生通过实验操作,培养动手能力和问题解决能力,能够调试并优化时钟程序。

3. 学生能够运用所学知识,结合实际需求,设计简单的时钟应用项目。

情感态度价值观目标:1. 学生通过学习单片机时钟设计,培养对电子技术和编程的兴趣,激发创新意识。

2. 学生在团队协作中,学会分享、交流和合作,提高沟通能力。

3. 学生认识到科技对社会生活的影响,增强社会责任感和时代使命感。

课程性质:本课程为实践性较强的电子技术课程,结合理论教学和实验操作,旨在培养学生的动手能力、编程能力和创新能力。

学生特点:学生已具备一定的电子技术基础知识,对编程有一定了解,但对单片机应用尚处于起步阶段。

教学要求:教师需结合学生特点,注重理论与实践相结合,关注个体差异,引导学生主动探究,培养其解决问题的能力。

通过课程学习,使学生能够将所学知识应用于实际项目中。

二、教学内容本课程教学内容主要包括以下几部分:1. 52单片机基础知识:介绍52单片机的结构、工作原理、引脚功能等,结合教材相关章节,让学生对单片机有基本的认识。

2. 时钟电路原理:讲解时钟电路的组成,包括时钟晶振、分频器等,分析时钟信号的产生、传输和作用。

3. C语言编程:复习C语言基础知识,重点讲解与52单片机编程相关的内容,如寄存器操作、I/O口编程、中断处理等。

4. 时钟程序设计:详细讲解如何利用52单片机实现时钟功能,包括时钟显示、调整和时间计算等,结合教材实例,让学生动手实践。

5. 实验操作与调试:指导学生进行时钟电路的连接、程序下载和调试,培养学生动手能力和问题解决能力。

时钟系统汇编语言程序设计

时钟系统汇编语言程序设计

时钟系统汇编语言程序设计1 总体方案设计1.1设计目的1)进一步建立微机系统的概念,加深对系统的理解和认识,培养学生应用微型计算机解决实际问题的能力;2)进一步学习和掌握汇编语言程序的编写和应用的方法,通过较大规模程序的编写,提高编写汇编语言程序的水平和学习程序调试方法。

3)进一步熟悉微机最小系统的构成及常用接口芯片的使用,提高系统设计的能力。

1.2设计任务与要求课程设计任务:系统时钟汇编语言程序设计设计初始条件:1)采用16位微处理器 8086 CPU以及86系列微型计算机的指令系统;2)软件设计平台为多功能微型计算机实验软件MFS中的微机原理实验集成环境MF2KP。

课程设计要求:1)设计一个计时器界面,形式为:时:分:秒;2)单击”ESC”键退出程序。

根据功能要求绘制程序流程图、编写完整的汇编语言程序并上机调试1.3设计方案本次设计中,要实现时间的显示,并在此基础上附加上一个功能,在时间显示后,单机“ESC”键时,退出显示界面。

在本次设计中,可以加入一个功能,当单击其他键时,显示界面并不退出,即界面不变,没有反应,再单击“ESC”键时,退出显示界面。

在设计时,时钟的实现有很多方法,可以采用DOS系统功能调用语句INT 21h 直接调用系统时间,再在着基础上加上推出的功能;也可以采用延时的方法,设计一个延时器,每隔一秒,计数器加一,采用六十进制。

在此基础上再加上附加功能。

在本次课程设计中,采用调用系统时间的方法,方法比较简单明了,功能实现比较好,能和系统时间跳动保持一致,故选用此种方法。

2 程序流程图设计2.1主流程图设计由方案设计分析可知,此次设计比较简单,先初始化程序,然后设立光标,在光标移动时,不断地取时,取分,取秒,并不断的循环。

在循环的过程中,当按下ESC键时退出程序;当按下其它键时,程序继续运行,并显示时间界面,再按下ESC键时,程序又将退出。

流程图设计:当初始化后,设定一个光标用来显示时间的时、分、秒,并将光标隐藏。

单片机设计时钟实训报告

单片机设计时钟实训报告

一、引言随着科技的不断发展,单片机技术在电子领域得到了广泛的应用。

为了提高学生的实践能力,培养实际工程应用能力,我们进行了单片机设计时钟实训。

本实训以AT89C51单片机为核心,通过学习时钟电路的设计、编程和调试,使学生掌握单片机在时钟设计中的应用,提高学生的动手能力和创新思维。

二、实训目的1. 掌握单片机的基本原理和编程方法;2. 熟悉时钟电路的设计和调试;3. 培养学生的实际工程应用能力和创新思维;4. 提高学生的团队协作能力和沟通能力。

三、实训内容1. 硬件设计(1)单片机选型:选用AT89C51单片机作为核心控制单元;(2)时钟电路:采用晶振电路作为时钟源,实现1Hz的基准时钟;(3)显示电路:采用LCD1602液晶显示屏,实现时间、日期和星期等信息显示;(4)按键电路:设计4个按键,分别用于设置时间、日期、星期和闹钟功能;(5)复位电路:采用上电复位和按键复位两种方式,保证系统稳定运行。

2. 软件设计(1)系统初始化:初始化单片机,设置波特率、定时器等;(2)时间显示:通过读取实时时钟芯片(如DS1302)的数据,显示时间、日期和星期;(3)按键处理:根据按键输入,实现时间、日期、星期和闹钟的设置与修改;(4)闹钟功能:当设定的时间到达时,通过蜂鸣器发出提示音。

3. 调试与优化(1)调试方法:使用Proteus软件进行仿真调试,观察程序运行状态,分析故障原因;(2)优化方法:针对仿真过程中出现的问题,优化程序代码,提高程序运行效率。

四、实训过程1. 硬件制作(1)按照设计图纸,焊接电路板;(2)连接晶振、LCD显示屏、按键和蜂鸣器等元器件;(3)调试电路,确保各元器件正常工作。

2. 软件编写(1)使用Keil C51软件编写程序,实现时钟显示、按键处理和闹钟功能;(2)编译程序,生成HEX文件。

3. 调试与优化(1)使用Proteus软件进行仿真调试,观察程序运行状态;(2)针对仿真过程中出现的问题,优化程序代码,提高程序运行效率;(3)将优化后的程序烧录到单片机中,进行实际运行测试。

三菱PLC时钟比较指令TCMP的编程应用

三菱PLC时钟比较指令TCMP的编程应用
第四,根据施工需求对压力钢管的品质采用质量检测体 系进行把关, 合格后方可进行全面施工安装。 布置安装完成 后,对整体布局进行初步检测,以保证改造的安全稳定性。
78 LD X0 79 SET S20 81 STL S20 82 LD X23 83 SET S21 85 STL S21 86 OUT Y20 87 OUT Y22 88 LD X20 89 SET S22 91 STL S22
关键词:三菱PLC;时钟数据写入;时钟比较指令
1 系统构成及控制要求
1.1 系统构成 亚龙YL-235A型机电一体化实训考核装置由铝合金导轨
式实训台、机电一体化设备的机械部件、三菱PLC模块单元、 MCGS触摸屏模块单元、三菱变频器模块单元、按钮模块单元、 电源模块单元、接线端子排和传感器组成,分拣系统的结构如 图1所示。
Y12 A位置气缸伸出
X16 B推料杆推出到位
Y14 B位置气缸伸出
X20 电感传感器(检测金属)
X22 光纤传感器(检测塑料)
X23 电容传感器(检测进料口)
使用变频器对三相异步电机进行速度控制时,需要对变 频器进行参数设置,P4=25 Hz,P7=2 s,P8=2 s,P79=2。
28
Zhuangbei Yingyong yu Yanjiu◆装备应用与研究
装备应用与研究◆Zhuangbei Yingyong yu Yanjiu
三菱PLC时钟比较指令TCMP的编程应用
邓玉良
(江苏省金坛中等专业学校,江苏 常州 213200)
摘 要:传统的物料分拣运行过程中,中途可能突然断电,断电时间无论长短都将影响物料分拣。 现介绍三菱PLC中功能指令时钟 数据写入(TWR)以及时钟比较指令(TCMP)的编程应用,某些工控中需要对某个时间点进行精确控制,而上述指令可以很好地解决这 个问题。

实时时钟显示实例

实时时钟显示实例

实时时钟显示例程设计目录1.需求分析 (2)1.1实验目的 (2)1.2实验内容 (2)1.3实验要求 (2)2.实验设备 (2)2.1实验仪器 (2)2.2主要芯片简介 (3)2.2.1 CH451芯片 (3)2.2.2 89S52芯片 (4)2.2.3 CD4052芯片 (5)2.2.4 PCF8563芯片(实验原理) (7)3. I2C协议 (12)4. 实验步骤 (15)4.1硬件连接 (15)4.2软件设计 (17)5. 主程序 (18)5.1主程序流程图 (18)5.2主程序源代码 (18)6.实际测试 (22)7.实验心得 (22)8. 参考文献 (26)1.需求分析1.1实验目的●掌握IO口操作;●掌握显示及键盘芯片的运用;●了解中断的运用;●了解I2C 总线操作。

1.2实验内容●学习使用ZG211硬件综合实验平台,程序设计集成开发环境;●查阅和学习需要的接口芯片资料,掌握接口芯片的使用方法和编程要领,查阅和学习课程设计题目需要的辅助芯片以及器件资料;●设计接口芯片和辅助芯片以及器件与8051单片机连接硬件电路原理图●设计与硬件电路原理图对应的C语言程序(或8051汇编语言)。

给出程序流程图。

在集成开发环境中调试程序。

给出程序的详细注释。

能够解释使用程序模拟电路时序信号和数据。

1.3实验要求●能正常操作LED 数码显示●能通过中断方式接收按键信息●能通过I2C 总线方式与PCF8563 芯片交换数据●能正确解释并显示从PCF8563 芯片取出的日期和时间数据2.实验设备2.1实验仪器●PC机一台;●ZG-211单片机系统实验板一块;●实验连接线若干●芯片:CH451,89S52,CD4052,PCF8563●配套并口编程线一根●配套电源一2.2主要芯片简介2.2.1 CH451芯片CH451是一个整合了数码管显示驱动和键盘扫描控制以及μP 监控的多功能外围芯片。

CH451内置RC 振荡电路,可以动态驱动8位数码管或者64 位LED,具有BCD 译码、闪烁、移位等功能;同时还可以进行64 键的键盘扫描;CH451 通过可以级联的串行接口与单片机等交换数据;并且提供上电复位和看门狗等监控功能。

C语言Windows程序设计——使用计时器

C语言Windows程序设计——使用计时器

C语⾔Windows程序设计——使⽤计时器传统意义上的计时器是指利⽤特定的原理来测量时间的装置, 在古代, 常⽤沙漏、点燃⼀炷⾹等⽅式进⾏粗略的计时, 在现代科技的带动下, 计时⽔平越来越⾼, 也越来越精确, 之所以需要进⾏计时是在很多情况下我们需要知道时间已经过去了多少, 举例说, 上课下课的打铃、考试时的计时、车站按时间间隔进⾏发车等。

不仅在⽇常⽣活中会应⽤到计时, 在⼀些电⼦设备中计时的普遍存在, 如⼿机⾥的闹钟、电⼦秒表、电⼦设备的定时关机等, 这些计时的⽬的都是相同的, 当达到⼀定时间后执⾏某件事, 计时器相当于提醒作⽤, 当达到某个时间后提醒⼈们或者机器该做某件事了。

在Windows系统中, 计时器作为⼀种输⼊设备存在于系统中, 当每到⼀个设定的时间间隔后它都会向应⽤程序发出⼀个 WM_TIMER 的消息, 以提醒程序规定的间隔时间已经过去了, 计时器在程序中的应⽤⼗分⼴泛, 举些我们容易想到的⽰例:1>. 游戏这控制物体的移动速度, ⽐如说某个物体每100毫秒移动某个单位距离;2>. ⽂件的⾃动保存, 当⽤户编辑某些⽂件时5分钟⾃动保存⼀次, 避免因意外情况造成编辑的成果全部丢失;3>. 实现程序的⾃动退出, 当程序达到某个设定的时间后程序⾃动退出;⼀、使⽤计时器计时器的使⽤主要分为创建、处理、销毁三个部分。

①. 创建: 创建⼀个计时器并设定其定计时器的任务周期, 例如每5秒向程序发送⼀条 WM_TIMER 消息 ;②. 处理: 根据接收到的 WM_TIMER 消息让程序作出响应的处理 ;③. 销毁: Windows的计时器属于系统资源, 在使⽤完毕后应及时销毁。

1>. 计时器的创建要创建⼀个计时器可以使⽤ SetTimer 函数, SetTimer函数的原型: UINT_PTR SetTimer( HWND hWnd, //窗⼝句柄 UINT_PTR nIDEvent, //定时器的ID UINT uElapse, //间隔时间, 单位为毫秒 TIMERPROC lpTimerFunc //所使⽤的回调函数 ); 参数说明:参数⼀窗⼝句柄即为接收 WM_TIMER 消息的窗⼝句柄;参数⼆为设置该计时器的ID, ⽤于与其他的计时器进⾏区分;参数三为计时器发送 WM_TIMER 消息的时间间隔, 单位为毫秒, 最⼤可设置的时间间隔为⼀个 unsigned long int 型所能容下的数据⼤⼩,为 4 294 967 295 毫秒(约合49.7天), 当设定的时间间隔到了后Windows就会向应⽤程序的消息队列放⼊⼀个 WM_TIMER 消息 ;参数四为定时器所使⽤的回调函数, 当使⽤回调函数时, 所产⽣的 WM_TIMER 消息⾃动调⽤回调函数进⾏处理。

lg官方rom系统程序精简列表(...

lg官方rom系统程序精简列表(...

lg官方rom系统程序精简列表(LG official ROM system programstreamlined list)可以卸载 aastocks (阿斯达克股票软件)accountandsyncsettings (帐户与同步设置) 可以卸载 (如果你用不着的话, 完全可以卸载, 不影响系统稳定)alarmclocknew (闹钟 / 时钟) 可以卸载* * ogalarmwidget (桌面: lg小工具: 模拟闹钟) 可以卸载* * ogclockwidget (桌面: lg小工具: 模拟时钟) 可以卸载androidbackup (备份: 用来备份联系人、短信什么的) 可以卸载不能卸载 applicationsprovider (应用程序支持服务) bookmarkswidget (桌面: lg小工具: 书签) 可以卸载brcmbluetoothservices (蓝牙服务) 可以卸载 (不影响蓝牙使用) 可以卸载 browser (浏览器)bubbles (动态壁纸: 气泡) 可以卸载bookmarkswidget (桌面: lg小工具: 书签) 可以卸载brcmbluetoothservices (蓝牙服务) 可以卸载 (不影响蓝牙使用) 可以卸载 browser (浏览器)可以卸载 calculator (计算器)可以卸载 calendar (日历)calendarprovider (日历存储, 可以卸载需要pcsync支持) calendarwidget (桌面: lg小工具: 日历) 可以卸载camera (相机) 可以卸载可以卸载 carhome (车载主屏幕)可以卸载 certinstaller (证书安装)clockweatherschedulewidget (桌面: lg小工具: 今日简报) 可以卸载clockweatherwidget (桌面: lg小工具: 天气和时钟) 可以卸载com _ lge _ christmassnowcity (动态壁纸: 圣诞节雪城) 可以卸载com _ lge _ lgfirework2 (动态壁纸: 烟花) 可以卸载much (联系人) 可以卸载 (这个就是电话本, 用第三方软件的可以卸载)contactsprovider (联系人存储) 可以卸载 (电话本存储, 用第三方软件的可以卸载)contactwidget (桌面: lg小工具: 联系人) 可以卸载cyon (remotecall: lg远程支持) 可以卸载可以卸载 calculator (计算器)可以卸载 calendar (日历)cime (lg输入法) 可以卸载 (最好先装上第三方输入法再卸, 否则可能出错)com.android.smartguider (乐行者导航) 可以卸载defaultcontainerservice (媒体容器服务) 不能卸载deskclock (时钟) 可以卸载digitalalarmwidget (桌面: lg小工具: 数字闹钟) 可以卸载digitalclockwidget (桌面: lg小工具: 数字时钟) 可以卸载dm _ rsupinput (虚拟图形) 可以卸载dm _ rsupsrn (虚拟输入) 可以卸载dm _ rsupuinput (虚拟蓝牙) 可以卸载docmaster (北极星办公软件) 可以卸载downloadprovider (下载管理器) 可以卸载 (不用第三方浏览器的不能卸载)drmprovider (数字内容存储) 可以卸载drmservice (数字版权服务) 可以卸载defaultcontainerservice (媒体容器服务) 不能卸载docmaster _ cn (pdf阅读器) 可以卸载emailwidget (桌面: lg小工具: 电子邮件) 可以卸载factorytest (镜像: 从字面理解似乎是相机的测试模式) 可以卸载建议保留flexprovider (短信支持) 可以卸载 (不用第三方软件的不能卸载)fmradio (收音机) 可以卸载fmradioprovider (收音机支持) 可以卸载fmradiowidget (桌面: lg小工具: 收音机) 可以卸载fonts (字体) 不能卸载f - secure _ mobile _ security _ android22 (杀毒软件) 可以卸载gallery3d (图库) 可以卸载 (卸载后系统自带相机不能预览相片)geniewidget (资讯与天气) 可以卸载gmail (谷歌邮箱) 可以卸载googlecalendarsyncadapter (谷歌日历同步适配器) 可以卸载googlecontactssyncadapter (谷歌联系人同步适配器) 可以卸载googlefeedback (谷歌反馈) 可以卸载googlepartnersetup (谷歌合作伙伴设置) 可以卸载googlequicksearchbox (谷歌搜索) 可以卸载googleservicesframework (谷歌服务框架) 可以卸载gpsts (貌似导航的语音引擎) 可以卸载hiddenmenu (工程模式) 可以卸载 (但是卸了就不能使用1809 # * 990 # 之类的隐藏菜单了)hiddenmenu _ chargingtest 隐藏菜单之充电测试) 可以卸载hiddenmenu_sdcardtest(隐藏菜单之SD卡测试)可以卸载他(LG输入法)可以卸载(卸载前要先装好第三方输入法)homeselector(主页选择器)可以卸载HTMLViewer(本地网页文件查看器)可以卸载jsfontservice(字体服务)不能卸载LGDebug(调试)可以卸载LGDisplaySettings(手势)可以卸载(卸载后就不能使用翻转静音什么的系统手势了)lgemail(LG电子邮件)可以卸载lgevideoplayer(视频播放器)可以卸载LGLauncher(LG主页,也就是LG桌面)可以卸载(前提是一定要先安装第三方的桌面,否则会很杯具)LGMemo(备忘录)可以卸载lgmits(未知,但我卸载后没有发现任何问题,国行里根本没有这个程序)可以卸载lgonscreenphone(屏幕手机:可以让你在电脑上操作手机,没什么实际用处)可以卸载LGSetupWizard(LG设置向导)可以卸载LibFlashPlayer(Adobe Flash Player)可以卸载(卸载后用系统自带的浏览器无法打包含闪光的网页,用第三方软件如UC的可以卸载)现场壁纸(N个动态壁纸)可以卸载LiveWallpapersPicker(动态壁纸选择器)可以卸载(卸载后将不能使用动态壁纸了)LocMgrPD(未知,但我卸载后未发现任何影响)可以卸载LocMgrPT(同上)可以卸载魔术烟雾壁纸(动态壁纸:魔幻烟雾)可以卸载图(谷歌地图)可以卸载MarketUpdater(电子市场软件精选管理器)可以卸载MediaProvider(媒体存储)不能卸载MediaUploader(媒体上传)可以卸载memowidget(桌面:LG小工具:备忘录)可以卸载messagewidget(桌面:LG小工具:信息)可以卸载镜子(镜像:这个才是前置摄像头那个)可以卸载彩信(短信)可以卸载(不用第三方软件的不能卸载)音乐(音乐)可以卸载musicwidget(桌面:LG小工具:音乐)可以卸载网络(网络位置)可以卸载newswidget (雅虎新闻) 可以卸载p990:openrice (开饭啦: 香港餐饮网站) 可以卸载opp (bluetooth share) 可以卸载 (和蓝牙有关, 但经测试卸载后不影响蓝牙使用)p993:open _ cn _ _ cn.emoney.l2 (操盘手: 股票软件) 可以卸载open _ cn _ _ com.android.palmebook (掌阅书城) 可以卸载open _ cn _ _ com.dianping.v1 (大众点评) 可以卸载open _ cn _ _ com.kaixin001.activity (开心网) 可以卸载open _ cn _ _ com.kingsoft (金山词霸) 可以卸载open _ cn _ _ com.mtime (时光网) 可以卸载open _ cn _ _ com.qiyi.video (奇艺高清) 可以卸载open _ cn _ _ com.renren.mobile.android (人人网) 可以卸载open _ cn _ _ com.sina.weibo (新浪微博) 可以卸载open _ cn _ _ android.market (安智市场) 可以卸载open _ cn _ _ viva.reader (畅读电子杂志) 可以卸载opp (bluetooth share) 可以卸载 (和蓝牙有关, 但经测试卸载后不影响蓝牙使用)packageinstaller (打包安装程序) 不能卸载pbap (bluetooth phone book share) 可以卸载pcsync (pc客户端支持) 可以卸载 (卸载后日历无法新建活动)phone (电话拨号程序) 可以卸载 (不用第三方软件的不能卸载)phonetestmode (电话测试) 可以卸载photoframewidget (桌面: lg小工具: 图片框) 可以卸载picotts (语音引擎) 可以卸载poweroff (关机) 可以卸载 (卸了这个之后关机会变成重启, 象我这样从不关机的可以卸载)preloadedapp (预加载的应用程序) 可以卸载protips (主屏幕提示) 可以卸载p993:the commission (未知, 但经测试卸载后未发现任何影响) 可以卸载quicksearchbox (百度搜索) 可以卸载rsstarter (未知, 但经测卸载后无任何影响) 可以卸载rsupinput (远程服务) 可以卸载rsupsrn (远程服务) 可以卸载rsupuinput (远程服务) 可以卸载screencapture (屏幕截图) 可以卸载 (很方便的小工具, 建议保留)settings (系统设置) 不能卸载settingsprovider (设置存储) 不能卸载setupwizard (设置向导) 可以卸载smartshare (无线设备分享媒体) 可以卸载sns (桌面: lg小工具: 社会源) 可以卸载Stk (SIM card Toolkit) can be uninstalledStreet (street view) can be uninstalledSystemBackupService (system backup service) can be uninstalledTalk (Google Talk) can be uninstalledTelephonyProvider (dialer storage) can be uninstalled (not uninstalled by third party software)TodayScheduleWidget (today's schedule) can be uninstalledTtsService (voice service) can be uninstalled UserDictionaryProvider (user dictionary) can be uninstalled Vending (electronic marketplace) can be uninstalledVisualizationWallpapers (dynamic wallpaper: Music Visualization) can be uninstalledVoiceRecorder (recorder) can be uninstalledVoiceSearch (voice search) can be uninstalled***Services (virtual private network service) can be uninstalledWapService (WAP service) cannot be uninstalledWdwallpaper (dynamic wallpaper: water drop) can be uninstalled Weibo_10105011 (micro-blog) can be uninstalledWorldClockWidget (desktop: LG widget: World Clock) can be uninstalled。

单片机简易时钟课程设计

单片机简易时钟课程设计

单片机简易时钟课程设计一、课程目标知识目标:1. 学生能理解单片机的基本原理,掌握时钟电路的组成及工作原理。

2. 学生能运用所学编程知识,编写简易时钟程序,实现时、分、秒的正常显示。

3. 学生了解单片机在日常生活和工业中的应用,认识到单片机技术的重要性。

技能目标:1. 学生能独立完成单片机简易时钟的电路搭建,提高动手实践能力。

2. 学生能通过编程实现对时钟时间的调整,培养问题解决能力和逻辑思维能力。

3. 学生能够运用所学知识,进行课程项目的展示和汇报,提高沟通表达能力。

情感态度价值观目标:1. 学生对单片机技术产生兴趣,培养积极探索、求知若渴的学习态度。

2. 学生在课程实践中,养成团队协作、共同解决问题的良好习惯。

3. 学生通过单片机简易时钟的制作,认识到科技改变生活,增强社会责任感和创新意识。

课程性质:本课程为实践性较强的课程,结合理论知识,培养学生的动手能力和创新精神。

学生特点:学生在本年级已具备一定的单片机基础知识和编程能力,对实践操作有较高的兴趣。

教学要求:教师应注重理论与实践相结合,关注学生的个体差异,引导学生主动探究,培养实际操作能力。

在教学过程中,将课程目标分解为具体的学习成果,以便进行有效的教学设计和评估。

二、教学内容1. 理论知识:- 单片机基础原理复习;- 时钟电路的组成和工作原理;- 程序设计基础,重点讲解循环结构和条件判断;- 单片机I/O口编程及应用。

2. 实践操作:- 电路搭建:指导学生搭建简易时钟电路,熟悉相关电子元器件的使用;- 程序编写:指导学生编写简易时钟程序,实现时、分、秒的显示和调整;- 系统调试:教授学生如何对程序进行调试,确保时钟运行稳定。

3. 教学大纲:- 第一阶段:复习单片机基础原理,学习时钟电路原理,为期2课时;- 第二阶段:学习程序设计基础,进行I/O口编程实践,为期3课时;- 第三阶段:进行电路搭建和程序编写,为期4课时;- 第四阶段:系统调试,课程项目展示与评价,为期1课时。

电脑时钟设计(整点报时)

电脑时钟设计(整点报时)

目录一、实训目的意义及任务要求 (2)1.1实训目的意义 (2)1.2任务要求 (2)二、实训方案 (3)2.1系统分析 (3)2.2设计思想 (3)三、系统硬件设计 (4)3.1最小单片机系统 (4)3.2复位电路 (4)3.3按键电路的设计 (5)3.4 显示电路 (5)3.5晶振电路 (7)3.6 蜂鸣器接口电路 (7)3.7 RS-232接口电路 (8)四、系统软件设计 (8)4.1 控制程序的结构及模块划分 (8)4.2实时时间子程序 (9)4.3秒表子程序 (10)4.4闹钟子程序 (10)4.5数码管显示子程序 (10)五、调式及性能分析 (11)5.1程序调试 (11)5.2性能分析 (11)六、心得体会 (12)参考文献 (12)附录一原理图 (13)附录二程序清单 (14)电脑时钟设计(整点报时功能)一、实训目的意义及任务要求1.1实训目的意义《单片机》是一门技术性的,具有很强应用性的课程。

实训教学是的一个它极其重要的环节。

单片机课程设计的目的就是为了让我们在理论学习的基础上,完成一系列的小设计。

这样可以巩固我们所学的理论知识,让我们能够很好的将实践与理论结合起来。

加强对单片机的软硬知识的了解,获得初步的经验,为以后的学习和工作打下基础。

1.2任务要求要求设计的电脑时钟完成以下功能:1.1基本功能(1)、实时显示当前时间(4位数码管显示,2位显示小时,2位显示分钟,第2位小数点0.5秒亮,0.5秒灭)。

(2)、半点及整点时间用蜂鸣器模仿自鸣钟报时,半点短鸣,整点长鸣对应的次数。

22点~6点不鸣。

(3)能修改当前时钟。

(4)具有秒表功能,显示秒和百分秒。

1.2 扩展功能(1)单片机与PC机的通讯(可选)(2)可设定初值的倒计时功能(可选)③闹钟及年月日显示功能(可选)2二、实训方案2.1系统分析数字钟实际上是一个对标准频率(1HZ)进行计数的计数电路。

标准的频率时间信号必须做到准确稳定,通常使用石英晶体振荡电路构成数字钟。

基于51单片机的多功能电子时钟设计

基于51单片机的多功能电子时钟设计

设计研发2021.07基于51单片机的多功能电子时钟设计杨洁,叶晶晶(黔南民族师范学院物理与电子科学学院,贵州都匀,558000 )摘要:单片机体积小、重量轻、抗干扰能力强、环境要求不高、价格低廉、可靠性高、灵活性好、深受初学者喜欢。

以STC90C58为核心控制芯片,DS1302为时钟芯片,DS18B20釆集温度,完成多功能电子时钟的设计。

该设计能够准确显示年、月、日、星期、时、分、秒及温度,通过按键可以调整年、月、日、星期、时、分、秒、12/24小时转换、整点提示以及闹钟,还可显示阴阳历。

关键词:电子时钟;单片机;阴阳历转换;DS1302 ; DS18B20Design of Multi-function Clock Based on 51 MCUYang Jie, Ye Jingjing(College of physics and electronic science, Qiannan Normal University for N&tionalities, DuyunGuizhou, 558000)Abstract : MCU is small in size, light in weight, strong in anti-interference ability, low in environmentai requirements, low in price, high in reliability, good in flexibility, and is popular among beginners. Stc90c58 as the core control chip, DS1302 as the clock chip, DS18B20 temperature acquisition, complete the design of multi —functional electronic clock. The design can accurately display the year, month, day, week, hour, minute, second and temperatore. Through the button, you can adjust the year, month, day, week, hour, minute, second, 12/24-hour conversion, whole point prompt and alarm clock, and display the lunar calendar.Keywords : Electronic clock ; MCU ; The lunar conversion ; DS 1302 ; DS18B200引言目前单片机的使用已经十分广泛,本次设计的多功能电 子钟能完成年、月、日、星期、时、分、秒的显示与调整,并且还 添加了温度、阴阳历转换显示及闹钟、12/24小时转换、整点提示等功能,有较强的应用性。

turtle练习题

turtle练习题

turtle练习题一、基础操作1. 编写一个Python程序,使用turtle库绘制一个边长为100像素的正方形。

2. 编写一个Python程序,使用turtle库绘制一个半径为50像素的圆形。

3. 编写一个Python程序,使用turtle库绘制一个等边三角形,边长为120像素。

4. 编写一个Python程序,使用turtle库绘制一个五角星,每个内角为36度。

5. 编写一个Python程序,使用turtle库绘制一个心形图案。

二、颜色与填充6. 编写一个Python程序,使用turtle库绘制一个带有红色边框和蓝色填充的正方形。

7. 编写一个Python程序,使用turtle库绘制一个带有绿色边框和黄色填充的圆形。

8. 编写一个Python程序,使用turtle库绘制一个带有紫色边框和粉色填充的等边三角形。

9. 编写一个Python程序,使用turtle库绘制一个带有橙色边框和金色填充的五角星。

10. 编写一个Python程序,使用turtle库绘制一个带有黑色边框和白色填充的心形图案。

三、运动控制11. 编写一个Python程序,使用turtle库让小海龟向前移动200像素,然后左转90度,再向前移动200像素。

12. 编写一个Python程序,使用turtle库让小海龟画一个边长为150像素的正方形,每画完一条边就右转90度。

13. 编写一个Python程序,使用turtle库让小海龟画一个半径为100像素的圆形,然后隐藏小海龟。

14. 编写一个Python程序,使用turtle库让小海龟画一个等边三角形,每边长为120像素,每个内角为120度。

15. 编写一个Python程序,使用turtle库让小海龟画一个五角星,每个内角为36度,然后清除画布。

四、高级功能16. 编写一个Python程序,使用turtle库绘制一个动态的正方形旋转动画。

17. 编写一个Python程序,使用turtle库绘制一个动态的圆形旋转动画。

Proteus仿真单片机数字电压表定时器给时钟频率

Proteus仿真单片机数字电压表定时器给时钟频率

单片机课程设计报告设计题目:数字电压表专业班级学号学生姓名指导教师设计时间教师评分2015年 6 月 26 日目录1.概述 (1)1.1目的 (1)1.2课程设计的组成部分 (1)2. 数字电压表设计的内容 (2)2.1软件仿真电路设计 (2)2.1.1设计思路 (2)2.1.2仿真电路图 (2)2.1.3设计过程 (3)3..2设计课题软件系统程序清单 (3)3.总结 (9)3.1课程设计进行过程及步骤 (9)3.2所遇到的问题,你是怎样解决这些问题的 (12)3.3体会收获及建议 (12)3.4参考资料(书、论文、网络资料) (12)4.教师评语 (13)5.成绩 (13)1.概述1.1目的设计一个能够测量直流电压的数字电压表。

测量电压范围0~5V,测量精度小数点后两位。

该电压表上电或按键复位后能自动显示系统提示符作者信息,进入测量准备状态,按测量开始键则开始测量,并将测量值显示在液晶显示器上。

按退出键完成电压表的测量。

1.2课程设计的组成部分本电压表主要由单片机、4*4行列式键盘、显示接口电路和复位电路构成,设计课题的总体方案如图1.1所示:图1.1 总体设计方案图本电压表的所有的软件、参数均存放在AT89S52的Flash ROM和内部RAM中,减少了芯片的使用数量简化了整体电路也降低了整机的工作电流。

行列式键盘采用动态扫描方式。

利用单片机定时器及计数器产生定时效果通过编程形成数字电压表效果,再利用液晶显示单片机内部处理的数据,同时通过端口读入当前外部控制状态来改变程序的不同状态,实现不同功能。

2. 数字电压表设计的内容2.1软件仿真电路设计2.1.1设计思路多路数字电压表应用系统硬件电路由单片机、A/D转换器、数码管显示电路和按键处理电路组成,由于ADC0808在进行A/D转换时需要有CLK信号,本试验中ADC0809的CLK直接由外部电源提供为500kHz的方波。

由于ADC0809的参考电压VREF=VCC,所以转换之后的数据要经过数据处理,在数码管上显示出电压值。

Anroid实时时钟和闹钟系统--RTC-ALARM

Anroid实时时钟和闹钟系统--RTC-ALARM
static JNINativeMethod sMethods[] = { {"init", "()I", (void*)android_server_AlarmManagerService_init}, {"close", "(I)V", (void*)android_server_AlarmManagerService_close}, {"set", "(IIJJ)V", (void*)android_server_AlarmManagerService_set}, {"waitForAlarm", "(I)I", (void*)android_server_AlarmManagerService_waitForAlarm}, {"setKernelTimezone", "(II)I", (void*)android_server_AlarmManagerService_setKernelTimezone}, };
3
第一部分 警报器系统结构和移植内容
各种 Android应用
平台API
JAVA框架
警报器的调用 AlarmManager和 AlarmManagerService AlarmManagerService JNI
本地框架 Android 系统 硬件 和驱动
Alarm和实时时钟设备
4
第一部分 警报器系统结构和移植内容
14
3 上层的情况和注意事项
Alarm 在用户空间中的本地 -JNI 部分的代码在 frameworks/base/services/jni/ 目录,由 com_android_server_AlarmManagerService. cpp 文件实现。它调用了 Alarm 驱动程序,向上层 提供了 JNI 的接口。

用VC++制作-模拟时钟应用程序

用VC++制作-模拟时钟应用程序

案例五模拟时钟应用程序以实例为背景学习基于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一次),如果采用全屏删除式重绘则闪烁十分明显,显示效果不佳。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

案例五模拟时钟应用程序以实例为背景学习基于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一次),如果采用全屏删除式重绘则闪烁十分明显,显示效果不佳。

本程序采用非删除式重绘,假定指针将要移动一格,则先采用背景色(这里是白色)重绘原来指针以删除原来位置的指针,再采用指针的颜色在当前位置绘制指针;如果指针没有动,则直接绘制指针。

另外,秒表需要采用单独的定时器消息控制。

3 实现步骤(1)用AppWizard生成一个名为Clock的单文档(SDI)程序框架。

为了简化应用程序,在第四步时去掉Docking toolbar和Initial status bar选择项,其他各选项均可用缺省设置。

(2)编辑项目的菜单资源,在主框架窗口的主菜单(IDR_MAINFRAME)中添加一个名为“时钟控制”的下拉菜单。

在“时钟控制”菜单中添加三个菜单选项“启动时钟”、“停止时钟”和“时间设置”。

并在菜单属性项中设定“启动时钟”菜单的ID标号为ID_START,“停止时钟”菜单的ID标号为ID_STOP,“时间设置”菜单的ID标号为ID_SETTIME。

为了简化菜单,可删除系统原有的“文件”、“编辑”菜单项。

(3)利用ClassWizard为视图类添加菜单命令处理函数。

进入ClassWizard的Message Maps选项卡,选择Class Name项为CClockView 类,在Object IDs列表框中分别选择新添加的菜单选项的ID,在Messages列表框中选择COMMAND,按下Add Function按钮添加成员函数。

ClassWizard会为“启动时钟”、“停止时钟”和“时间设置”菜单选项添加相应的消息响应函数OnStart ( )、OnStop ( )和OnSettime ( )。

(4)利用ClassWizard为视图类添加定时器和鼠标消息处理函数。

进入ClassWizard的Message Maps选项卡,选择Class Name项为CClockView类,在Messages列表框中分别选择定时器消息WM_TIMER 和鼠标消息WM_LBUTIONDOWN,按下Add Function按钮添加成员函数。

ClassWizard会添加相应的定时器和鼠标消息响应函数OnTimer和OnLButtonDown。

(5)使用Developer Studio菜单的Insert / Resource…选项调出Insert Source对话框,为项目添加新的对话框资源。

在对话框属性中,修改对话框名为“时间设定”。

在对话框中增加用来输入年、月、日、时、分、秒的编辑框控件,如下图所示。

对话框通过控件属性,将年、月、日、时、分、秒等编辑控件的ID改为IDC_YEAR、IDC_MONTH、IDC_DAY、IDC_HOUR、IDC_MINUTE 和IDC_SECOND。

(6)设计好这个对话框模板后,利用ClassWizard自动建立对话框类。

进入ClassWizard后,它会发现已建立的对话框模板资源,并弹出一个对话框询问是否要为该对话框模板建立类。

按下“OK”按钮,会弹出New Class对话框,在Name栏填写对话框类的名称CSetTimeDlg 后按“OK”按钮,即可为对话框创建一个对应的类。

(7)利用ClassWizard为对话框类添加与各控件对应的数据成员。

选择MemberVariables选项卡,确保Class Name项为对话框CSetTimeDlg 类,然后在选项卡下方的窗口中选择各控件的ID并按下“Add Variable…”按钮,为其添加对应成员变量,如表11.4所示。

表11.4 编辑控件属性最后一列为变量取值范围。

(8)编辑工程的图标资源,在Resource View选项窗口中修改Icon 结点所包含的主框架图标(IDR_MAINFRAME),修改标准图标(32像素×32像素)及小图标(16像素×16像素),从而为该程序设计一个美观大方的图标。

(9)完成以上工作后,即可修改程序框架,添加必要的代码。

4 程序清单按以下步骤向视图类(CClockView)添加下列数据成员及成员函数。

(1) 添加表示年、月、日、时、分、秒的变量。

int year;int month;int day;int hour;int minute;int second;(2) 添加秒表的计数变量。

int watch;(3) 添加时钟的画笔及画刷变量。

CPen m_HouPen, m_MinPen, m_SecPen; // 各种针的画笔CBrush m_MarkBrush; // 表盘标记的画刷(4) 添加时钟控制变量。

CPoint m_Center; // 表的中心double m_Radius; // 表的半径CPoint m_Hour [2], m_OldHour [2]; // 时针当前及前一次位置CPoint m_Minute [2], m_OldMin [2]; // 分针当前及前一次位置CPoint m_Second [2], m_OldSec [2]; // 秒针当前及前一次位置(5) 添加秒表的两个按钮位置变量。

CRect m_WatchStart;CRect m_WatchStop;(6) 添加两个函数,计算时钟各指针位置。

void SetClock (int hour, int minute, int second);CPoint GetPoint (int nLenth, int nValue);(7) 在视图类构造函数中增加初始化语句:然后添加下列代码:在OnDraw函数中添加下面代码:// 用白色覆盖原位置时针请注意将表示时间的整数转换为CString 字符串类型的方法以及秒表的显示方法。

另外,watch 计数器以1/100秒为计数单位,每达到100则秒数加1。

u 按照下列步骤增加时钟控制代码:①修改Onstart和OnStop函数,设置时钟运动消息。

按比正常时钟快20倍的假定,50ms产生一个消息。

其代码为:②修改OnTimer函数,正确计算并处理年、月、日、时、分、秒等变量的联动变化,其代码为:③ 添加时间设置对话框代码。

首先在ClockView. cpp 文件头部添加下列语句: #include “SetTimeDlg. H”在时间设定对话框类的构造函数中,做如下修改,将初始日期设为2010-7-10:最后,在OnSettime函数中添加代码如下:至此,除秒表外,时钟部分程序设计完成。

u 按以下步骤设计秒表控制程序:在OnLButtonDown函数中增加下列内容,以便响应单击秒表启动、停止框所发出的消息:程序运行:下图显示了模拟时钟运行的情况。

“启动”和“停止”框控制秒表,时钟用菜单控制。

本题采用标准的SDI程序结构,完全利用视图类实现了这一程序。

利用定时器消息控制时钟运动是本程序的出发点。

利用一个定时器控制时钟,易于实现指针联动规律。

计算指针位置利用了坐标变换和三角函数的知识。

本程序一个较难处理的地方是屏幕重绘,由于完全在OnDraw 函数中实现,因此限制较多。

本程序采取了先覆盖,再重绘的方法。

模拟时钟示意图本程序由于完全在OnDraw函数中实现,因此屏幕重绘较为麻烦。

如果在OnDarw函数中采用“异或”屏幕重绘方式,在程序窗口最大、最小化及移出屏幕时,会显示异常。

解决这一问题较理想的方式是在定时器处理函数OnTimer中采用“异或”方式直接重绘屏幕,而不采用调用Invalidate ( )函数的方式;同时在OnDraw函数中显示指针的最后状态,以便处理程序窗口最大、最小化及移出屏幕的情况。

在OnTimer 函数中直接重绘屏幕需要使用OClientDC类,具体用法与OnDraw函数中的pDC对象基本一致。

另外,本程序的数字时钟没有显示星期和农历,读者可尝试添加进去。

相关文档
最新文档