C++电子闹钟设计说明书
(完整word版)C51单片机实现电子闹钟
课程名称:单片机原理与接口技术实践设计课题:基于MCS 51单片机实现电子闹钟功能的设计学院:电子与信息工程学院专业:通信工程小组成员:电子闹钟在科学技术高度发展的今天,千家万户都少不了它,所以很多家庭个人都需要有一个电子闹钟,为人们提供报时方便,但普通电子闹钟不够方便实用。
本文给出了一种基于MCS51单片机实现电子闹钟功能的设计方法,从而给人们带来更为方便的工作与生活。
一.电子闹钟简介我们设计的电子闹钟是以MCS 51单片机中的计时器作为时钟,用8位数码管显示当前时间,并且可以设置闹钟时间,并在设置的时间点发出闹铃。
简易闹钟具有以下功能:1.时钟能准确地走时,并可以通过数码管进行显示2.复位后可以进行当前时间的设置3.可以随意设置闹钟时间,闹钟会在设置时间响铃整个系统的任务要求:1)输入数字按键的功能。
保证数字的输入。
2)复位电路的功能。
所有时间回到初始化状态,用于启动设定时间参数(调时或设定闹钟时间);3)显示电路的功能。
当输入数字时显示24小时时间功能。
4)闹铃功能设置闹铃的时间后.能按设置好的时间准时闹铃。
二.系统方案的设计要求根据以上各模块并结合显示屏的功能及元器件材料的情况,决定采用AT89C51为内核显示设计方案。
先进行系统的整体规划确定整个系统的功能,然后按照每个功能的具体要求,进行各个模块的实物设计并逐个调试,待全部通过后,进行整个系统的联调,最终实现一个完整的系统。
整个系统的设计步骤如下:在单片机最小系统的基础上,完成按键电路和复位电路的设计。
完成显示电路、数字按键、单片机时钟电路。
Ⅰ硬件设计系统硬件的设计可以根据系统的各个功能,把整个系统划分成若干个模块,分别对这些模块来进行设计,然后在通过单片机程序来实现对各个硬件模块功能的调度。
本系统涉及到的硬件模块有:按键电路、数码管显示电路、单片机时钟电路、蜂鸣器电路。
各部分实现功能如下:按键电路:提供按键信号。
单片机时钟电路、复位电路:提供内部时钟。
c电子时钟课程设计
c 电子时钟课程设计一、课程目标知识目标:1. 学生能够理解电子时钟的基本原理,掌握电子时钟的主要部件及其功能。
2. 学生能够掌握时、分、秒的概念,学会电子时钟的时间设置与调整。
3. 学生能够了解电子时钟的设计与制作过程,掌握基本的电路连接方法。
技能目标:1. 学生能够运用所学知识,独立完成电子时钟的组装与调试。
2. 学生能够运用电子时钟的设计原理,进行简单的时钟程序编写与优化。
3. 学生能够通过实际操作,培养动手能力、逻辑思维能力和问题解决能力。
情感态度价值观目标:1. 学生通过学习电子时钟的制作,培养对科学技术的热爱和兴趣,增强创新意识。
2. 学生在团队协作中,学会互相帮助、沟通与交流,培养合作精神。
3. 学生能够认识到时间的宝贵,养成珍惜时间、合理安排时间的好习惯。
课程性质:本课程为电子技术实践课程,旨在让学生通过动手实践,掌握电子时钟的基本原理与制作方法。
学生特点:五年级学生具有一定的认知能力、动手能力和逻辑思维能力,对新鲜事物充满好奇。
教学要求:结合学生特点,注重理论与实践相结合,充分调动学生的主观能动性,引导学生在实践中探索、发现、解决问题。
将课程目标分解为具体的学习成果,以便在教学设计和评估中实现课程目标的有效落实。
二、教学内容1. 电子时钟基本原理:电子时钟的工作原理、主要部件(如晶体振荡器、分频器、计数器、显示器件等)及其功能。
教材章节:《电子技术》第五章第二节2. 时间概念与电子时钟设置:时、分、秒的概念,电子时钟的时间设置与调整方法。
教材章节:《电子技术》第五章第三节3. 电子时钟设计与制作:电子时钟的设计流程、电路连接方法,以及组装与调试技巧。
教材章节:《电子技术》第五章第四节、第五节4. 时钟程序编写与优化:基于电子时钟原理,进行简单的时钟程序编写与调试。
教材章节:《电子技术》第五章第六节5. 实践操作与作品展示:学生分组进行电子时钟的组装、调试,展示作品并进行评价。
教材章节:《电子技术》第五章实践环节教学进度安排:第一课时:电子时钟基本原理及主要部件介绍第二课时:时间概念与电子时钟设置方法第三课时:电子时钟设计与制作(一)第四课时:电子时钟设计与制作(二)第五课时:时钟程序编写与优化第六课时:实践操作与作品展示教学内容确保科学性和系统性,结合教材章节,以理论与实践相结合的方式进行教学,旨在帮助学生掌握电子时钟相关知识,培养动手能力与创新能力。
c闹钟课程设计
c 闹钟课程设计一、课程目标知识目标:1. 学生能理解并掌握闹钟的基本原理和组成部分。
2. 学生能运用所学知识,设计并制作一个简单的闹钟电路。
3. 学生能理解时间概念,学会读取和设置闹钟时间。
技能目标:1. 学生能运用基本的电子元件,如电池、导线、开关等,搭建闹钟电路。
2. 学生能通过实际操作,培养动手能力和问题解决能力。
3. 学生能运用所学知识,对闹钟电路进行创新设计和改进。
情感态度价值观目标:1. 学生对科学产生兴趣,培养探索精神和创新意识。
2. 学生在小组合作中,学会沟通、协作和分享,培养团队精神。
3. 学生通过学习闹钟的制作,认识到时间的重要性,培养珍惜时间的观念。
课程性质:本课程为实践性较强的科学课程,结合电子技术和时间概念,让学生在动手实践中学习。
学生特点:三年级学生具备一定的认知能力和动手能力,对新鲜事物充满好奇心,但注意力集中时间较短。
教学要求:教师需提供明确的指导,确保学生在实践过程中掌握知识技能,同时注重培养学生的合作意识和情感态度。
教学过程中,将目标分解为具体的学习成果,便于教学设计和评估。
二、教学内容本课程教学内容紧密结合课程目标,确保科学性和系统性。
具体安排如下:1. 闹钟原理及组成部分:- 介绍闹钟的基本原理,如电路的闭合与断开。
- 讲解闹钟的组成部分,如电源、控制开关、闹铃装置等。
2. 电子元件的使用:- 讲解电池、导线、开关等基本电子元件的作用。
- 演示如何正确使用这些元件搭建闹钟电路。
3. 时间概念及设置:- 介绍时间概念,让学生学会读取和设置闹钟时间。
- 指导学生通过闹钟电路的实际操作,加深对时间概念的理解。
4. 实践操作:- 制定详细的实践操作步骤,让学生分组进行闹钟电路的搭建。
- 引导学生通过实践,掌握电路连接和调试方法。
5. 创新设计与改进:- 鼓励学生对闹钟电路进行创新设计,提高闹钟的实用性或趣味性。
- 指导学生针对现有闹钟电路进行改进,培养创新思维。
基于C51单片机的数字时钟课程设计(C语言带闹钟)
单片机技术课程设计数字电子钟学院:班级:姓名:学号:教师:摘要电子钟在生活中应用非常广泛,而一种简单方便的数字电子钟则更能受到人们的欢迎。
所以设计一个简易数字电子钟很有必要。
本电子钟采用AT89C52单片机为核心,使用12MHz 晶振与单片机AT89C52 相连接,通过软件编程的方法实现以24小时为一个周期,同时8位7段LED数码管(两个四位一体数码管)显示小时、分钟和秒的要求,并在计时过程中具有定时功能,当时间到达提前定好的时间进行蜂鸣报时。
该电子钟设有四个按键KEY1、KEY2、KEY3、KEY4和KEY5键,进行相应的操作就可实现校时、定时、复位功能。
具有时间显示、整点报时、校正等功能。
走时准确、显示直观、运行稳定等优点。
具有极高的推广应用价值。
关键词:电子钟 AT89C52 硬件设计软件设计目录NO TABLE OF CONTENTS ENTRIES FOUND.一、数字电子钟设计任务、功能要求说明及方案介绍1.1 设计课题设计任务设计一个具有特定功能的电子钟。
具有时间显示,并有时间设定,时间调整功能。
1.2 设计课题的功能要求说明设计一个具有特定功能的电子钟。
该电子钟上电或按键复位后能自动显示系统提示符“d.1004-22”,进入时钟准备状态;第一次按电子钟启动/调整键,电子钟从12时59分0秒开始运行,进入时钟运行状态;按电子钟S5键,则电子钟进入时钟调整状态,此时可利用各调整键调整时间,调整结束后可按S5键再次进入时钟运行状态。
1.3 设计课的设计总体方案介绍及工作原理说明本电子钟主要由单片机、键盘、显示接口电路和复位电路构成,设计课题的总体方案如图1所示:图1-1总体设计方案图本电子钟的所有的软件、参数均存放在AT89C52的Flash ROM和内部RAM 中,减少了芯片的使用数量简化了整体电路也降低了整机的工作电流。
键盘采用动态扫描方式。
利用单片机定时器及计数器产生定时效果通过编程形成数字钟效果,再利用数码管动态扫描显示单片机内部处理的数据,同时通过端口读入当前外部控制状态来改变程序的不同状态,实现不同功能。
C电子闹钟设计说明书
电子闹钟设计阐明书一、实现旳功能一种简朴旳电子闹钟设计程序,和一般旳闹钟旳功能差不多。
一方面此程序可以同步电脑上旳显示时间,保证时间旳精确性;24小时制,可以根据自己喜欢旳铃声设立闹钟提示音,还能自己设立提示语句,如“时间到了该起床了”,“大懒虫,天亮了,该起床了”等等,因此这是一种集实用和趣味于一体旳小程序。
二、设计环节1、打开Microsoft Visual C++ 6.0,在文献中点击新建,在弹出框内选择MFC AppWizard[exe]工程,输入工程名张卢锐旳闹钟及其所在位置,点击拟定,如图所示。
2、将弹出MFC AppWizard-step 1对话框,选择基本对话框,点击完毕,如图所示。
然后始终点下一步,最后点完毕,就建立了一种基于对话窗口旳程序框架,如图所示。
3、下面是计算器旳界面设计在控件旳“编辑框”按钮上单击鼠标左键,在对话框编辑窗口上合适旳位置按下鼠标左键并拖动鼠标画出一种大小合适旳编辑框。
在编辑框上单击鼠标右键,在弹出旳快捷莱单中选择属性选项,此时弹出Edit属性对话框,以显示小时旳窗口为例,如图所示,在该对话框中输入ID属性。
在控件旳“Button”按钮上单击鼠标左键,在对话框上旳合适旳位置上按下鼠标左键并拖动鼠标画出一种大小合适旳下压式按钮。
在按钮上单击鼠标右键,在弹出旳快捷菜单中选择属性选项,此时也弹出Push Button属性对话框,以数字按钮打开为例,如图所示,在该对话框中输入控件旳ID值和标题属性。
按照上面旳操作过程编辑其她按钮对象旳属性。
表1 各按钮和编辑框等对象旳属性完毕后界面如图所示。
4、连接变量和代码1)、给编辑框连接变量。
在编辑框上单击鼠标右键,在弹出菜单中选择ClassWizard菜单项,弹出MFC ClassWizard 对话框,选择Member Variables选项卡,如图所示。
2)、给按钮连接代码(以打开按键为例)给打开按钮连接代码。
在打开按钮上单击鼠标右键,选择ClassWizard菜单项,在弹出旳对话框中选择Messages Maps选项卡,然后在Object IDs列表框中选择IDC_HOUR,在Messages列表框中选择BN_CLICKED项,即选择单击按钮事件,如图所示。
电子闹钟的设计
(电子闹钟的设计)课程设计说明书目录一、概述 (6)51 单片机: (6)汇编语言: (6)二、设计基本原理简介 (6)1设计要求及说明 (7)2整体设计方案及流程 (7)三、程序 (11)四、程序显示状态 (20)1正常显示状态 (20)2时钟调整状态 (21)五、调试过程及结果分析总结 (22)主要参考资料 (22)摘要:此系统的时钟电路设计是采用的内部方式,即利用芯片内部的振荡电路。
系统功能要求电子时钟一运行就从12点00分00秒开始计时,并在数码管上显示时、分、秒当前值。
基本工作原理:AT89C51利用定时器每百分之一秒对百分之一秒寄存器的内容加一,并依次对秒、分、小时寄存器的内容加一;7SEG -MPX6-CA数码管动态显示时、分、秒的当前值。
本课题要求实现的功能比较简单。
此系统键的输入是通过独立式键盘来完成的,编程容易易懂,结构简单,实现起来方便。
由P3.2、P3.3、P3.4作为控制端,构成独立式按键接口方式。
百分之一秒的控制由AT89c51的定时器T0完成;在闹钟方面,通过周期检测闹钟按键和按键标识位来控制开启闹铃服务程序。
在闹铃设置及正常时间设置时为避免时间停止,所以才用定时器计时。
我设置的闹铃是用脉冲的形式驱动扬声器。
关键词7SEG-MPX6-CA AT89C51 定时器一、概述一应用知识简介:51 单片机:单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。
作为嵌入式系统控制核心的单片机具有其体积小、功能全、性价比高等诸多优点。
51 系列单片机是国内目前应用最广泛的单片机之一,随着嵌入式系统、片上系统等概念的提出和普遍接受及应用,51 系列单片机的发展又进入了一个新的阶段。
在今后很长一段时间内51 系列单片机仍将占据嵌入式系统产品的中低端市场。
汇编语言:汇编语言是一种面向机器的计算机低级编程语言,通常是为特定的计算机或系列计算机专门设计的。
多功能电子钟设计说明
“多功能电子钟”设计说明1程序设计框架说明本案例程序设计主要分为:DS1302、ADC、按键扫描三个模块。
1.1宏定义#define uchar unsigned char //宏定义#define uint unsigned int#define ADC_CHS1_7 0X07/***********时分秒写寄存器**************/#define DS1302_SECOND_WRITE 0x80#define DS1302_MINUTE_WRITE 0x82#define DS1302_HOUR_WRITE 0x84#define DS1302_WEEK_WRITE 0x8A#define DS1302_DAY_WRITE 0x86#define DS1302_MONTH_WRITE 0x88#define DS1302_YEAR_WRITE 0x8C#define ADC_POWER 0X80#define ADC_FLAG 0X10 //当A/D转换完成后,ADC_FLAG要软件清零#define ADC_START 0X08#define ADC_SPEED_90 0X60/***********时分秒读寄存器**************/#define DS1302_SECOND_READ 0x81#define DS1302_MINUTE_READ 0x83#define DS1302_HOUR_READ 0x85#define DS1302_WEEK_READ 0x8B#define DS1302_DAY_READ 0x87#define DS1302_MONTH_READ 0x89#define DS1302_YEAR_READ 0x8D#define P1_7_ADC 0x801.2引脚定义/********DS1302*******/sbit Rtc_sclk = P1^5; //时钟线引脚,控制数据的输入与输出sbit Rtc_rst = P1^6; //CE线引脚,读、写数据时必须置为高电平sbit Rtc_io = P5^4; //实时时钟的数据线引脚/********数码管显示******/sbit L ed_sel = P2^3; //流水灯和数码管选通引脚sbit S el0 = P2^0; //Sel0、Sel1、Sel2三位二进制进行数码管位选0-7 sbit S el1 = P2^1;sbit S el2 = P2^2;sbit K EY1=P3^2; //Key1对应触发外部中断0sbit K EY2=P3^3; //Key2对应触发外部中断1sbit KEY3=P1^7; //Key31.3 变量定义时间结构体typedef struct __SYSTEMTIME__{uchar Second;uchar Minute;uchar Hour;uchar Week;uchar Day;uchar Month;uchar Year;}SYSTEMTIME; //定义的时间类型SYSTEMTIME t;Fun_Key.c模块/*年、月、日标志*/bit set_Y_flag;bit set_M_flag;bit set_D_flag;/*时、分、秒标志*/bit set_H_flag;bit set_Ms_flag;bit set_S_flag;/*年、月、日值*/uint set_Y_val;uint set_M_val;uint set_D_val;/*时、分、秒值*/uint set_H_val;uint set_Ms_val;uint set_S_val;bit set_YMD_done; //年月日设置完bit set_HMS_done; //时分秒设置完bit show_set_YMD; //显示年月日bit show_set_HMS; //显示时分秒bit show_YMD; //显示年月日bit show_HMS; //显示时分秒bit show_YMDW;bit show_key_val;unsigned char key_val;bit ring_flag;/*标志闹钟*/unsigned int ring_H;unsigned int ring_Ms;unsigned int ring_S;CALENDAR模块bit c_moon;unsigned int year_moon;unsigned int month_moon; unsigned int day_moon;unsigned int week;DS1302模块bit set_YMD_flag; //设置年月日标记bit set_HMS_flag; //设置时分秒标记SYSTEMTIME t;SYSTEMTIME set_t;2程序函数说明延时程序void Delayms(char i);DS1302读写函数void Ds1302_write(uchar temp);uchar Ds1302_read();void WriteDS1302(uchar Addr, uchar Data);uchar ReadDS1302(uchar cmd)SYSTEMTIME DS1302_GetTime();系统初始化void Init();void Init_key();ADC转换unsigned char GetADC();检测导航键unsigned char Fun_Keycheck();监听按键3void Fun_key3();监听功能键,完成时分秒相关值的设置void Fun_Key_task_HMS();监听按键2,完成时分秒设置void Fun_key2();监听按键1,完成相关功能的操作void Key_OFFON();初始化DS1302void Initial_DS1302(void);中断显示程序void timer0() interrupt 1初始化ADCvoid Init_ADC();3 程序设计框架及关键技巧说明3.1 程序总框图设计流程开始初始化(包括定时器及其他相关的控制变量)最高位置0写入秒寄存器读取秒寄存器值确定晶振是否工作1显示时、分、秒模式(默认)判断最高位监听按键否是结合功能键进行年月日设置Key3是否按下否是是否控制校时(key2、key3都按下两次)、万年历(key2否、key3按下两次)、闹钟(key2按下两次、key3否)功能模块相关显示、数据的写入、数据的其他相关计算,Key1是否按下Key2是否按下结合功能键进行时分秒设置Key3是否按下Key2是否按下是是否年月日设置完成时分秒设置完成否否3.2 I/O 引脚及相关寄存器配置 3.2.1 I/O 引脚:(1)数码管位选引脚 整个设置P2口的值;(2)数码管使能引脚sbit led_sel = P2^3 ;(3)DS1302引脚sbit rtc_sclk=P1^5; //时钟线引脚sbit rtc_rst=P1^6; // CE线引脚sbit rtc_io=P5^4; //实时时钟的数据线引脚(4)按键引脚sbit KEY1 = P3^2 ; //控制时间校准时设置的值sbit KEY2 = P3^3 ; //设置时间sbit KEY3 = P1^7; //设置年月日3.2.2寄存器:(1)DS1302相关寄存器其中:①控制字寄存器:写地址0x8E,读地址0x8F位7:必须是逻辑1,如果它为0,则不能把数据写入到DS1302中。
C指针型闹钟课程设计
课程设计说明书题目:指针型闹钟学院名称:专业班级:姓名学号:指导教师:2013 年 07 月课程设计任务书专业班级:学生姓名:指导教师:一、课程设计题目:设计一个如图所示的指针式闹钟二、目的与要求:1、目的:(1)要求学生熟练掌握C++语言的基本知识和C++调试技能;(2)掌握用C++开发应用程序的一般步骤和方法;(3)能够利用所学的基本知识和技能,解决简单的面向对象的程序设计问题。
(4)培养学生综合利用C++语言进行程序设计的能力,主要是培养学生利用系统提供的标准图形函数进行创新设计。
2、基本要求:(1)要求利用面向对象的方法以及C++的编程思想来完成系统的设计;(2)要求在设计的过程中,对Windows环境下的编程有一个基本的认识;(3)学会Windows环境下绘图的基本方法;(4)能够完成基本的钟表的走时功能、对表功能、定时功能;(5)界面美观大方。
3、创新要求:在基本要求达到后,可进行创新设计,如定时提醒功能、声音提醒功能、定时运行别的程序的功能等。
4、写出设计说明书按照设计过程写出设计说明书。
三、设计方法和基本原理:1、问题描述(功能要求):要求所编写的闹钟能够完成基本的走时、对时、定时功能。
2、问题的解决方案(参考):根据题目的要求,可以将问题解决分为以下步骤:(1)分析问题,画出要解决问题的流程图(类及其层次结构图);(2)利用对话框编辑器完成界面的设计,要求界面要美观实用;(3)添加成员变量和成员函数(消息映射函数);(4)利用结构化程序的设计思路完成秒针、分针、时针的走动及闹铃指针的设置。
(5)程序功能调试;(6)完成系统总结报告以及系统使用说明书。
四、设计中涉及到的重要内容及关键技术:1、对话框应用程序的编写方法及其相关函数;2、绘图工具的使用方法;3、一些常用系统API函数的使用方法。
五、程序设计和调试:编写程序代码、完成程序调试。
六、编写课程设计说明书:按照课程设计说明书的规范格式要求以及说明书中的内容要求编写课程设计说明书。
电子闹钟说明书
本电子闹钟的设计是以单片机技术为核心,采用了小规模集成度的单片机制作的功能相对完善的电子闹钟。
硬件设计应用了成熟的数字钟电路的基本设计方法,并详细介绍了系统的工作原理。
硬件电路中除了使用AT89C51外,另外还有晶振、电阻、电容、发光二极管、开关、喇叭等元件。
在硬件电路的基础上,软件设计按照系统设计功能的要求,运用所学的汇编语言,实现的功能包括‘时时-分分-秒秒’显示,设定和修改定时时间的小时和分钟、校正时钟时间的小时、分钟和秒、定时时间到能发出一分钟的报警声。
一芯片介绍AT89C51是一种带4K字节FLASH存储器的低电压、高性能CMOS 8位微处理器,俗称单片机。
AT89C51是一种带2K字节闪存可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除1000次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C51是它的一种精简版本。
AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案,外形及引脚排列如图1-1所示。
图1-1 AT89C51引脚图74LS573 的八个锁存器都是透明的D 型锁存器,当使能(G)为高时,Q 输出将随数据(D)输入而变。
当使能为低时,输出将锁存在已建立的数据电平上。
输出控制不影响锁存器的内部工作,即老数据可以保持,甚至当输出被关闭时,新的数据也可以置入。
这种电路可以驱动大电容或低阻抗负载,可以直接与系统总线接口并驱动总线,而不需要外接口。
特别适用于缓冲寄存器,I/O 通道,双向总线驱动器和工作寄存器。
外形及引脚排列如图1-2所示。
图1-2 74LS573引脚图二硬件电路设计1 时钟电路设计AT89C51系列的单片机的时钟方式分为内部方式和外部方式。
内部方式就是在单片机的XTAL1和XTAL2的两引脚外接晶振,就构成了自己振荡器在单片机内部产生时钟脉冲信号。
c语言课程设计闹钟
c语言课程设计闹钟一、教学目标本课程旨在通过学习C语言编程,使学生掌握编写简单的闹钟程序的基本技能。
具体目标如下:1.理解C语言的基本语法和数据结构。
2.掌握函数的定义和调用。
3.了解操作系统中时间相关的函数和概念。
4.能够使用C语言编写简单的程序。
5.能够通过编程实现闹钟的基本功能,如设定时间、响起闹铃等。
6.能够对程序进行调试和优化。
情感态度价值观目标:1.培养学生的逻辑思维能力和解决问题的能力。
2.培养学生对编程和计算机科学的兴趣。
3.培养学生遵守时间和纪律的良好习惯。
二、教学内容本课程的教学内容主要包括C语言的基本语法、数据结构、函数的定义和调用,以及操作系统中时间相关的函数和概念。
具体安排如下:1.C语言的基本语法和数据结构(2课时)2.函数的定义和调用(2课时)3.闹钟程序的设计和实现(4课时)4.程序调试和优化(2课时)三、教学方法本课程采用讲授法、案例分析法和实验法相结合的教学方法。
1.讲授法:用于讲解C语言的基本语法、数据结构和函数的定义和调用。
2.案例分析法:通过分析实际案例,使学生理解和掌握闹钟程序的设计和实现。
3.实验法:让学生通过动手实践,加深对C语言编程的理解和掌握。
四、教学资源教学资源包括教材、参考书、多媒体资料和实验设备。
1.教材:选用《C程序设计语言》作为主教材,辅助以相关参考书。
2.多媒体资料:提供相关的教学视频和PPT,帮助学生更好地理解和掌握知识。
3.实验设备:提供计算机和相关的编程环境,让学生能够进行实际的编程实践。
五、教学评估本课程的评估方式包括平时表现、作业和考试三个部分,以保证评估的客观性和公正性。
1.平时表现(20%):通过课堂参与、提问和小组讨论等方式评估学生的学习态度和参与程度。
2.作业(30%):布置相关的编程作业,评估学生对课程内容的掌握程度和编程能力。
3.考试(50%):期末进行闭卷考试,评估学生对课程知识的全面理解和应用能力。
六、教学安排本课程的教学安排如下:1.教学进度:按照教材的章节顺序进行教学,确保学生系统地掌握C语言编程的知识。
电子时钟计时器的设计(c语言版_调试完美通过_可直接使用)(附原理图源程序以及完整的文档)汇总
湖南人文科技学院课程设计报告课程名称:单片机原理及应用课程设计设计题目:电子时钟的设计系别:通信与控制工程系专业:通信工程班级:09级通信二班学生姓名: 袁琦黄文付学号: 09416230 09416227起止日期:2011年12月20日~2011年12月30日指导教师:王善伟姚毅谢四莲教研室主任:刘建闽指导教师评语:指导教师签名:年月日成绩评定项目权重成绩袁琦黄文付1、设计过程中出勤、学习态度等方面0.22、课程设计质量与答辩0.53、设计报告书写及图纸规范程度0.3总成绩教研室审核意见:教研室主任签字:年月日教学系审核意见:主任签字:年月日摘要时钟是人类日常生活必不可少的工具,本设计从日常生活中常见的事物入手,通过对电子时钟的设计,让我们认识到单片机已经深入到我们生活的每个领域,该设计不仅可以锻炼我们的动手能力,而且可以加深我们对单片机的认识和激发我们对未知科学领域的探索。
本文利用单片机实现数字时钟计时功能的主要内容。
它体积小,成本低、功能强、使用方便、可靠性高等一系列优点,广泛应用于智能产业和工业自动化上。
本次设计采用独立式按键进行时间调整,其中STC89C52是核心元件,同时采用数码管LED动态显示“时”,“分”,“秒”的现代计时装置。
与传统机械表相比,它具有走时精确,显示直观等特点。
它的计时周期为24小时,显满刻度为“23时59分59秒”,另外利用DS1302具有校时功能,断电后有记忆功能,恢复供电时可实现计时同步等特点。
该系统同时具有硬件设计简单、工作稳定性高、价格低廉等优点。
关键词:STC89C52 ;LED数码管;8255芯片;DS1302芯片;目录设计要求 (1)1.方案论证与对比 (1)1.1方案一 (1)1.2方案二 (2)1.3方案对比 (2)2.系统硬件电路的设计 (3)2.1单片机的选择及引脚功能介绍 (3)2.2 8255A芯片的结构及引脚功能介绍 (4)2.3 DS1302芯片的结构及引脚功能介绍 (6)2.4显示电路设计 (7)2.5电源电路设计 (8)2.6键盘动态扫描电路设计 (8)3.控制系统的软件设计 (10)3.1主程序流程图 (10)3.2显示子程序 (11)3.3闹钟时间设定功能程序 (11)3.4键盘扫描程序 (12)4.系统功能调试与整体指标 (13)4.1硬件调试与分析 (13)4.2软件调试与分析 (13)4.3性能分析 (13)5.详细仪器清单 (14)6.总结与思考及致谢 (15)参考文献 (16)附录一:程序(方案一) (17)附录二:程序(方案二) (25)电子时钟的设计设计要求利用单片机作为控制核心,完成一个时钟计时器。
基于单片机C语言电子时钟完整版(闹钟,整点报时)
《单片机技术》课程设计说明书数字电子钟系、部:电气与信息工程学院学生姓名:指导教师:职称专业:班级:完成时间:2013-06-07摘要电子钟在生活中应用非常广泛,而一种简单方便的数字电子钟则更能受到人们的欢迎。
所以设计一个简易数字电子钟很有必要。
本电子钟采用ATMEL公司的AT89S52单片机为核心,使用12MHz 晶振与单片机AT89S52 相连接,通过软件编程的方法实现以24小时为一个周期,同时8位7段LED数码管(两个四位一体数码管)显示小时、分钟和秒的要求,并在计时过程中具有定时功能,当时间到达提前定好的时间进行蜂鸣报时。
该电子钟设有四个按键KEY1、KEY2、KEY3、KEY4和KEU5键,进行相应的操作就可实现校时、定时、复位功能。
具有时间显示、整点报时、校正等功能。
走时准确、显示直观、运行稳定等优点。
具有极高的推广应用价值。
关键词电子钟;AT89S52;硬件设计;软件设计ABSTRACTClock is widely used in life, and a simple digital clock is more welcomed by people. So to design a simple digital electronic clock is necessary.The system use a single chip AT89S52 of ATMEL’s as its core to control The crystal oscillator clock,using of E-12MHZ is connected with the microcontroller AT89S52, through the software programming method to achieve a 24-hour cycle, and eight 7-segment LED digital tube (two four in one digital tube) displays hours, minutes and seconds requirements, and in the time course of a timing function, when the time arrived ahead of scheduled time to buzz a good timekeeping. The clock has four buttons KEY1, KEY2, KEY3,KEY4 and KEY5 key, and make the appropriate action can be achieved when the school, timing, reset. With a time display, alarm clock settings, timer function, corrective action. Accurate travel time, display and intuitive, precision, stability, and so on. With a high application value.Key words Electronic clock;;AT89S52;Hardware Design;Software Design目录1设计课题任务、功能要求说明及方案介绍 (1)1.1设计课题任务 (1)1.2功能要求说明 (1)1.3设计总体方案介绍及原理说明 (1)2设计课题硬件系统的设计 (2)2.1设计课题硬件系统各模块功能简要介绍 (2)2.2设计课题电路原理图、PCB图、元器件布局图 (2)2.3设计课题元器件清单 (5)3设计课题软件系统的设计 (6)3.1设计课题使用单片机资源的情况 (6)3.2设计课题软件系统各模块功能简要介绍 (6)3.3设计课题软件系统程序流程框图 (6)3.4设计课题软件系统程序清单 (10)4设计结论、仿真结果、误差分析、教学建议 (21)4.1设计课题的设计结论及使用说明 (21)4.2设计课题的仿真结果 (21)4.3设计课题的误差分析 (22)4.4设计体会 (22)4.5教学建议 (22)结束语 (23)参考文献 (24)致谢 (25)附录 (26)1 设计课题任务、功能要求说明及方案介绍1.1 设计课题任务设计一个具有特定功能的电子钟。
c电子时钟课程设计
c 电子时钟课程设计一、课程目标知识目标:1. 学生能够理解电子时钟的基本原理,掌握电子时钟的组成、功能及工作流程。
2. 学生能够运用所学知识,分析并设计简单的电子时钟电路。
3. 学生能够解释电子时钟显示时间的原理,理解时、分、秒之间的换算关系。
技能目标:1. 学生能够运用电子元件,如集成电路、晶体管、LED灯等,动手搭建一个简易的电子时钟。
2. 学生能够通过编程软件,设计并实现电子时钟的显示功能。
3. 学生能够运用所学知识,解决电子时钟在实际应用中遇到的问题。
情感态度价值观目标:1. 培养学生对电子技术的兴趣,激发学生的创新意识和探索精神。
2. 培养学生团队协作意识,提高学生在团队中沟通、协作的能力。
3. 培养学生关注社会发展,了解电子时钟在生活中的应用,认识到科技对生活的影响。
本课程针对中学生设计,结合学生好奇心强、动手能力逐步提高的特点,注重理论与实践相结合,以培养学生的创新能力和实际操作能力为核心。
课程目标具体、可衡量,旨在帮助学生掌握电子时钟相关知识,提高实践技能,培养科学素养,为后续学习打下坚实基础。
二、教学内容本课程教学内容主要包括以下几部分:1. 电子时钟基本原理:介绍电子时钟的组成、工作原理,包括时钟电路、振荡器、分频器、计数器等。
2. 电子时钟电路设计:讲解如何使用集成电路、晶体管、LED灯等元件搭建电子时钟,分析电路图,明确各部分功能。
3. 编程设计:教授如何使用编程软件(如Arduino、Scratch等)设计电子时钟程序,实现时、分、秒的显示功能。
4. 电子时钟制作与调试:指导学生动手制作简易电子时钟,学会调试电路,解决问题,确保电子时钟正常运行。
5. 电子时钟应用与拓展:探讨电子时钟在生活中的应用,了解其发展趋势,激发学生创新意识。
教学内容与课本章节关联如下:1. 电子时钟基本原理——对应教材第3章“数字电路基础”2. 电子时钟电路设计——对应教材第4章“数字电路设计”3. 编程设计——对应教材第5章“微控制器及应用”4. 电子时钟制作与调试——对应教材第6章“电子制作与调试”5. 电子时钟应用与拓展——对应教材第7章“现代电子技术应用”教学进度安排:共5个课时,第1-2课时学习基本原理和电路设计,第3-4课时进行编程设计和制作调试,第5课时进行应用与拓展讨论。
电子闹钟说明文档
计算机科学与信息技术学院《单片机原理及接口术》课程设计报告姓名:赵晶学号:211101041187班级:2011级嵌本班2012年6月28日电子闹钟说明文档一、功能描述1、功能:1)在数码管上显示小时和分钟,用小灯的闪烁表示秒。
2)用按键调整时间,按键2为功能选择键,按键3和按键4为调时键及调分键。
3)用按键设置闹钟,可设两个闹钟,按键2为功能选择键,按键3和按键4为调时键及调分键。
4)整点报时。
5)在正常走时时按键可查看闹钟2、操作方法:K2键(右1)为功能选择键:不按K2(右1)键时,按K3(右2)键查看闹钟1,按K4(右3)键查看闹钟2,。
按一下进入调时,时钟停止更新,K3键(右2)调整分钟,K4键(右3)调整小时。
按两下进入闹钟1调整,K3键(右2)调整分钟,K4键(右3)调整小时。
按三下进入闹钟2调整,K3键(右2)调整分钟,K4键(右3)调整小时。
按四下时间恢复显示,标志位清零。
二、线路连接图1(线路连接图)IRQ--P2^3,DS---P2^4,RW--P2^5,AS--P2^6,CS--P2^7,A--P1^0,B--P1^1,C--P1^2,D--P1^3,LE--P1^4,s11--P3^0,s12--P3^1,f11--P3^ 2,f12--P3^3,LED1--P1^5,LED2--P1^6,k2--P2^2,k3--P2^1、k4--P2^0,buzzer--P1^7.二、实验器材单片机最小系统一个时钟芯片DS12C887一片CD4511BE数码管驱动芯片一片共阴极数码管四个蜂鸣器一个电阻若干四角按键三个三、功能实现图2(实验板)1、CD4511CD4511是一个用于驱动共阴极 LED (数码管)显示器的 BCD 码—七段码译码器,特点如下:具有BCD转换、消隐和锁存控制、七段译码及驱动功能的CMOS电路能提供较大的拉电流。
可直接驱动LED显示器。
图3(CD4511的引脚图及接线图)BI:4脚是消隐输入控制端,当BI=0 时,不管其它输入端状态如何,七段数码管均处于熄灭(消隐)状态,不显示数字。
c电子钟的课程设计
c 电子钟的课程设计一、课程目标知识目标:1. 学生能够理解电子钟的基本原理和组成部分,掌握其工作原理。
2. 学生能够掌握电子钟中关键元件如时钟芯片、晶体振荡器等的功能和作用。
3. 学生能够描述电子钟的时间计数、显示和调整功能。
技能目标:1. 学生能够运用所学知识,设计简单的电子钟电路,并进行组装和调试。
2. 学生能够通过实际操作,学会使用万用表、电烙铁等基本电子工具。
3. 学生能够运用电子钟相关知识,解决实际生活中的时间测量问题。
情感态度价值观目标:1. 学生通过学习电子钟的制作,培养对电子技术的兴趣和爱好,激发创新意识。
2. 学生在团队协作中,学会互相帮助、共同解决问题,培养合作精神和沟通能力。
3. 学生能够关注电子钟在日常生活中的应用,认识到科技对生活的影响,提高科技素养。
课程性质:本课程为实践性强的学科,结合理论知识与动手操作,培养学生电子技术的基本技能。
学生特点:六年级学生具有一定的电子知识基础和动手能力,对新鲜事物充满好奇心。
教学要求:教师需注重理论与实践相结合,关注学生个体差异,引导学生主动探究,提高学生的实践能力和创新能力。
在教学过程中,将课程目标分解为具体的学习成果,以便进行有效的教学设计和评估。
二、教学内容本课程依据课程目标,选择以下教学内容:1. 电子钟基本原理:讲解电子钟的工作原理,包括时钟芯片、晶体振荡器、计数器、显示电路等组成部分。
2. 电子元件识别与使用:学习常用电子元件如电阻、电容、二极管、三极管等的识别和使用方法。
3. 电子钟电路设计:学习电子钟电路图的绘制,分析电路中各部分的功能和连接方式。
4. 电子钟组装与调试:动手实践,组装电子钟,学会使用万用表、电烙铁等工具进行调试。
5. 电子钟程序设计:学习编写简单的电子钟程序,实现时间计数、显示和调整功能。
教学内容安排和进度:第一课时:电子钟基本原理,时钟芯片和晶体振荡器介绍。
第二课时:电子元件识别与使用,分析电子钟电路图。
c电子时钟课程设计
c电子时钟课程设计一、课程目标知识目标:1. 学生能够理解电子时钟的构成和工作原理,掌握基础电子元件的作用。
2. 学生能够阐述数字电路的基本概念,并运用至电子时钟的制作中。
3. 学生能够解释电子时钟显示时间的原理,包括时、分、秒的计算与显示。
技能目标:1. 学生能够运用所学知识,设计并搭建简单的电子时钟电路。
2. 学生能够通过编程,实现电子时钟的时、分、秒显示功能。
3. 学生能够熟练使用相关工具和仪器,进行电子时钟的组装和调试。
情感态度价值观目标:1. 学生培养对电子科学的兴趣,提高学习主动性和探究精神。
2. 学生培养团队协作意识,学会与他人共同解决问题。
3. 学生培养创新思维,敢于尝试新方法,勇于面对挑战。
分析课程性质、学生特点和教学要求,本课程目标旨在使学生在掌握电子时钟相关知识的基础上,提高实践操作能力,培养科学素养和创新能力。
通过具体的学习成果分解,教师可针对不同学生的学习情况进行教学设计和评估,确保课程目标的实现。
二、教学内容本课程教学内容围绕电子时钟的设计与制作展开,依据课程目标,教学内容分为以下三个部分:1. 电子时钟基础知识:- 电子元件:介绍常用电子元件如电阻、电容、二极管、三极管等,以及它们在电子时钟中的作用。
- 数字电路:讲解基本逻辑门、触发器、计数器等数字电路原理,为电子时钟设计打下基础。
- 教材章节:参照课本第3章“数字电路基础”和第4章“常用电子元件及其应用”。
2. 电子时钟设计与制作:- 设计原理:讲解电子时钟工作原理,包括时、分、秒计数及显示方法。
- 制作实践:指导学生进行电子时钟电路设计、编程、组装和调试。
- 教材章节:参照课本第6章“数字电路应用实例”和第7章“电子时钟设计与制作”。
3. 技能训练与创新能力培养:- 实践操作:训练学生熟练使用工具、仪器进行电子时钟组装和调试。
- 创新设计:鼓励学生尝试改进电子时钟设计,发挥创新思维。
- 教材章节:参照课本第8章“实践与创新”相关内容。
c语言电子时钟课程设计
c语言电子时钟课程设计一、课程目标知识目标:1. 理解C语言中结构体、函数和循环控制的使用,掌握电子时钟的基本原理。
2. 学习并掌握使用C语言编写程序,实现电子时钟的功能,包括时、分、秒的显示与更新。
3. 了解C语言中定时器功能的使用,实现电子时钟的自动更新。
技能目标:1. 能够运用所学知识,独立设计并编写一个简单的C语言电子时钟程序。
2. 培养学生的编程实践能力,提高问题分析和解决能力。
3. 学会使用调试工具,对程序进行调试和优化,提高程序运行的稳定性。
情感态度价值观目标:1. 培养学生对计算机编程的兴趣和热情,激发学生的学习主动性。
2. 培养学生的团队合作意识,学会与他人共同解决问题,相互学习和进步。
3. 培养学生的创新精神,敢于尝试新方法,勇于克服困难,不断优化程序。
课程性质:本课程为实践性较强的课程,结合理论知识与实际操作,使学生能够学以致用。
学生特点:学生已具备一定的C语言基础,了解基本语法和编程思路,但对实际应用还不够熟练。
教学要求:结合学生特点,注重理论与实践相结合,提高学生的编程实践能力,培养学生的问题分析和解决能力。
在教学过程中,关注学生的个体差异,给予个性化指导。
通过课程学习,使学生能够独立完成一个具有实际意义的编程项目。
二、教学内容1. 复习C语言基础:变量、数据类型、运算符、控制结构(章节1-4)。
2. 结构体与指针:介绍结构体的定义和使用,指针的概念和操作(章节5)。
3. 函数:回顾函数的定义、调用和参数传递,强调模块化编程的重要性(章节6)。
4. 循环控制:深入学习for循环和while循环,理解其在电子时钟中的应用(章节7)。
5. 定时器与时间处理:介绍定时器原理,时间处理函数的使用(章节8)。
6. 电子时钟编程实践:结合所学知识,设计并实现电子时钟程序。
- 显示部分:编写代码实现时、分、秒的显示(课时1)。
- 更新部分:实现时间递增,每秒更新显示(课时2)。
- 定时器应用:使用定时器自动更新时间,减少资源消耗(课时3)。
c语言单片机定时闹钟课程设计
课程设计报告课程名称:单片机课程设计报告题目:定时闹钟学生姓名:所在学院:专业班级:学生学号:指导教师:2013年12 月25 日课程设计任务书摘要单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。
随着生活水平的提高,人们越来越追求人性化的事物。
传统的时钟已不能满足人们的需求。
而现代的时钟不仅需要模拟电路技术和数字电路技术而且更需要单片机技术,增加数字钟的功能。
利用软件编程尽量做到硬件电路简单稳定,减小电磁干扰和其他环境干扰,减小因元器件精度不够引起的误差。
本系统利用单片机实现具有计时、校时等功能的数字时钟,是以单片机AT89C51为核心元件同时采用LED数码管显示器动态显示“时”、“分”的现代计时装置。
另外具有校时功能和定时器功能,利用单片机实现的数字时钟具有编程灵活,便于功能的扩充等优点。
关键词:单片机,定时器,中断,闹钟,LED目录一、概述 (1)1.51电子闹钟发展趋势 (1)2.本课题研究的主要内容 (1)3.51电子闹钟简介 (1)3.1开发的目的和意义 (2)3.2 51电子闹钟的优点 (2)3.3 51电子闹钟的特点 (2)二、方案选择和与论证 (2)1.单片机型号的选择 (2)2.按键的选择 (3)3.显示器的选择 (3)4.发音部分的设计 (3)5.显示器驱动电路 (3)6.电源的选择 (3)三、单元电路设计与分析 (4)1.系统原理图 (4)2.主程序部分的设计 (4)3.中断定时器的设置 (4)4.按键电路设计 (5)5.蜂鸣器驱动电路 (5)6.数码管显示电路 (6)四、实验结果 (7)五、课程设计的心得 (13)六、参考文献 (14)一、概述电子闹钟在科学技术高度发展的今天,千家万户都少不了它,所以很多家庭个人都需要有一个电子闹钟,为人们提供报时方便,但普通电子闹钟不够方便实用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
电子闹钟设计说明书一、实现的功能一个简单的电子闹钟设计程序,和一般的闹钟的功能差不多。
首先此程序能够同步电脑上的显示时间,保证时间的准确性;24小时制,可以根据自己喜欢的铃声设置闹钟提示音,还能自己设置提示语句,如“时间到了该起床了”,“大懒虫,天亮了,该起床了”等等,所以这是一个集实用和趣味于一体的小程序。
二、设计步骤1、打开Microsoft Visual C++ 6.0,在文件中点击新建,在弹出框内选择MFC AppWizard[exe]工程,输入工程名张卢锐的闹钟及其所在位置,点击确定,如图所示。
2、将弹出MFC AppWizard-step 1对话框,选择基本对话框,点击完成,如图所示。
然后一直点下一步,最后点完成,就建立了一个基于对话窗口的程序框架,如图所示。
3、下面是计算器的界面设计在控件的“编辑框”按钮上单击鼠标左键,在对话框编辑窗口上合适的位置按下鼠标左键并拖动鼠标画出一个大小合适的编辑框。
在编辑框上单击鼠标右键,在弹出的快捷莱单中选择属性选项,此时弹出Edit属性对话框,以显示小时的窗口为例,如图所示,在该对话框中输入ID属性。
在控件的“Button”按钮上单击鼠标左键,在对话框上的合适的位置上按下鼠标左键并拖动鼠标画出一个大小合适的下压式按钮。
在按钮上单击鼠标右键,在弹出的快捷菜单中选择属性选项,此时也弹出Push Button属性对话框,以数字按钮打开为例,如图所示,在该对话框中输入控件的ID值和标题属性。
按照上面的操作过程编辑其他按钮对象的属性。
表1 各按钮和编辑框等对象的属性对象ID 标题或说明编辑框IDC_HOUR 输入定时的整点时间编辑框IDC_MINUTE 输入定时的分钟数编辑框IDC_FILE 链接提示应所在地址编辑框IDC_WARING 自己编辑显示文本按钮IDC_OPEN 打开按钮IDC_IDOK 闹钟开始按钮IDC_CHANGE 重新输入静态文本IDC_STATIC 界面上的静态文本,如时,分,备注完成后界面如图所示。
4、连接变量和代码1)、给编辑框连接变量。
在编辑框上单击鼠标右键,在弹出菜单中选择ClassWizard菜单项,弹出MFC ClassWizard 对话框,选择Member Variables选项卡,如图所示。
2)、给按钮连接代码(以打开按键为例)给打开按钮连接代码。
在打开按钮上单击鼠标右键,选择ClassWizard菜单项,在弹出的对话框中选择Messages Maps选项卡,然后在Object IDs列表框中选择IDC_HOUR,在Messages 列表框中选择BN_CLICKED项,即选择单击按钮事件,如图所示。
三、关键部分的代码1、获取电脑时间和输入定时时间代码:if(onoff==TRUE){CTime time;CString strtime,m_stime;time=CTime::GetCurrentTime();strtime=time.Format("%H%M"); //获取电脑时间m_stime=m_hour+m_minute; //自己输入时间if(m_stime==strtime){onoff=FALSE;OnOpenMusic();OnTingle();MessageBox(m_waring);}}2、打开提示音音乐文件代码:void CAlarmclockDlg::OnOpenMusic(){//SHELLEXECUTEINFO shell = { sizeof(shell) };shell.fMask = SEE_MASK_FLAG_DDEW AIT;shell.lpVerb = "open";shell.lpFile = m_file;shell.nShow = SW_SHOWNORMAL;BOOL ret = ShellExecuteEx(&shell);//打开音乐文件}3、到达设定时间点闹钟提醒程序:void CAlarmclockDlg::OnTray(){NOTIFYICONDATA nid;nid.cbSize=(DWORD)sizeof(NOTIFYICONDATA);nid.hWnd=this->m_hWnd;nid.uID=IDR_MAINFRAME;nid.uFlags=NIF_ICON|NIF_MESSAGE|NIF_TIP ;nid.uCallbackMessage=WM_SHOWTASK;//自定义的消息名称nid.hIcon=LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_MAINFRAME) );strcpy(nid.szTip,"闹钟提醒");//信息提示条为“计划任务提醒”Shell_NotifyIcon(NIM_ADD,&nid);//在托盘区添加图标4、计划任务提醒代码:void CAlarmclockDlg::OnTray(){NOTIFYICONDATA nid;nid.cbSize=(DWORD)sizeof(NOTIFYICONDATA);nid.hWnd=this->m_hWnd;nid.uID=IDR_MAINFRAME;nid.uFlags=NIF_ICON|NIF_MESSAGE|NIF_TIP ;nid.uCallbackMessage=WM_SHOWTASK;//自定义的消息名称nid.hIcon=LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_MAINFRAME) );strcpy(nid.szTip,"闹钟提醒");//信息提示条为“计划任务提醒”Shell_NotifyIcon(NIM_ADD,&nid);//在托盘区添加图标5、抖动完成以后回到起始位置放置乱跑和抖动圈数代码:void CAlarmclockDlg::OnTingle(){ShowWindow(SW_SHOWNORMAL);CPoint CurrentPos; //抖完还要回到这个位置,不要乱跑。
CRect rect; //这一段计算主要是为了满足SetWindowPos()的参数要求…不解释吧GetClientRect(&rect);ClientToScreen(&rect);CurrentPos.x = rect.left;CurrentPos.y = rect.top;int FrameWidth;int FrameHight;int CaptionHight; //我当前系统设置上这三个值分别为3,3,22FrameWidth = GetSystemMetrics(SM_CXFIXEDFRAME);FrameHight = GetSystemMetrics(SM_CYFIXEDFRAME);CaptionHight = GetSystemMetrics(SM_CYCAPTION); //这是个好函数//这里需要将CurrentPos坐标offset()到主窗口左上角坐标CurrentPos.Offset(-FrameWidth, -CaptionHight-FrameHight); //实现抖动: 半个小圈+ 三个大圈+ 半个小圈SetWindowPos(&wndTopMost,CurrentPos.x-1,CurrentPos.y-2,0,0, SWP_NOSIZE);Sleep(10);//上面的SWP_NOSIZE参数忽略cx,cy,故可置0SetWindowPos(&wndTopMost,CurrentPos.x-4,CurrentPos.y-4,0,0, SWP_NOSIZE);Sleep(10);SetWindowPos(&wndTopMost,CurrentPos.x-7,CurrentPos.y-2,0,0, SWP_NOSIZE);Sleep(10);SetWindowPos(&wndTopMost,CurrentPos.x-8,CurrentPos.y,0,0, SWP_NOSIZE);Sleep(10);int i = 0;for (;i<7;i++) //想抖几圈就改几{SetWindowPos(&wndTopMost,CurrentPos.x-6,CurrentPos.y+6,0,0, SWP_NOSIZE);Sleep(10);SetWindowPos(&wndTopMost,CurrentPos.x,CurrentPos.y+8,0,0, SWP_NOSIZE);Sleep(10);SetWindowPos(&wndTopMost,CurrentPos.x+6,CurrentPos.y+6,0,0, SWP_NOSIZE);Sleep(10);SetWindowPos(&wndTopMost,CurrentPos.x+8,CurrentPos.y,0,0, SWP_NOSIZE);Sleep(10);SetWindowPos(&wndTopMost,CurrentPos.x+6,CurrentPos.y-6,0,0, SWP_NOSIZE);Sleep(10);SetWindowPos(&wndTopMost,CurrentPos.x,CurrentPos.y-8,0,0, SWP_NOSIZE);Sleep(10);SetWindowPos(&wndTopMost,CurrentPos.x-6,CurrentPos.y-6,0,0, SWP_NOSIZE);Sleep(10);SetWindowPos(&wndTopMost,CurrentPos.x-8,CurrentPos.y,0,0, SWP_NOSIZE);Sleep(10);}SetWindowPos(&wndTopMost,CurrentPos.x-7,CurrentPos.y+2,0,0, SWP_NOSIZE);Sleep(10);SetWindowPos(&wndTopMost,CurrentPos.x-4,CurrentPos.y+4,0,0, SWP_NOSIZE);Sleep(10);SetWindowPos(&wndTopMost,CurrentPos.x-1,CurrentPos.y+2,0,0, SWP_NOSIZE);Sleep(10);SetWindowPos(&wndTopMost,CurrentPos.x,CurrentPos.y,0,0, SWP_NOSIZE);6、测试计算器的功能1.程序主界面2、输入15:10,选择打开音乐文件,和提示语句,运行结果如下提示音乐会由相应的播放器开始播放,执行效果很不错。