多功能电脑时钟—课程设计、毕业设计必不可少的资料(具有与电脑通信的功能)
多功能电子时钟,毕业设计
多功能电子时钟摘要本文是基于AT89C52单片机数字钟的设计,通过多功能电子时钟的设计思路,详细叙述了系统硬件、软件的具体实现过程。
论文重点阐述了电子时钟硬件中MCU模块、时钟模块和键盘模块、显示模块等的模块化设计与制作;软件同样采用模块化设计思路,包括中断模块、闹钟模块、时间调整模块的设计,并采用C语言编写实现。
本设计实现了时间与闹钟的修改功能,年、月、日和星期的显示功能。
并且通过对比实际的时钟,查找出了误差的来源,确定了调整误差的方法,尽可能的减少误差,使得系统可以达到实际数字钟的允许误差范围内。
本文还涉及到非接触止闹功能,在有效范围内使用者不需用手去寻找开关而关闭闹钟,该功能使本设计更具有人性化。
该时钟还有重要日子倒计时功能,能够提前几天设定好时间,以避免遗忘重要日子。
关键词:AT89C52单片机,电子时钟,模块化设计,C语言Multifunctional electronic clockABSTRACTThis article is based on AT89C52 microcontroller digital clock design, through multi-functional electronic clock design ideas, detailed description of the system hardware and software realization process.Paper focuses on the electronic clock hardware MCU module, clock module and keyboard module, display module, modular design and production; software as a modular design concept, including aninterrupt module, alarm module, module design time to adjust and adopt the C language implementation. The Design and Implementation of the changes of time and alarm functions, year, month, day and week display. And by comparing the actual clock, find out the source of the error, the error method to determine the adjustment, as much as possible to reduce the error, allows the system to achieve the actual number of minutes of allowable error range. This also involves the function of non-contact only trouble in the effective range of users do not need a hand to find switch and turn off the alarm, this feature makes the design more user friendly. There are important days of the countdown clock function, set a good few days ahead of time, to avoid forgetting important occasions.KEY WORDS:AT89C52 microcontroller, electronic clock, modular design, C language前言 (1)第一章系统总体设计 (2)1.1 系统总体设计 (2)1.2 方案论证 (2)1.2.1 总体方案论证 (2)1.2.2 模块方案论证 (3)1.2.3 止闹功能 (3)第2章系统模块设计 (4)2.1 时钟接口电路设计 (4)2.2 键盘接口电路设计 (5)2.3 液晶显示电路设计 (8)2.4 单片机电路设计方案 (11)2.5 跑表功能设计 (14)2.6 非接触止闹电路设计 (14)2.7 报警电路设计 (14)2.8 重要日子倒计时功能设计 (15)2.9 看门狗电路 (15)第3章软件设计 (18)3.1 系统软件设计综述 (18)3.2 系统软件流程图 (18)第4章系统测试 (20)4.1 时钟功能的测试 (20)4.2 闹钟功能的测试 (20)4.3 跑表功能的测试 (20)4.4 重要日子倒计时功能的测试 (21)结论 (22)谢辞 (23)参考文献 (24)附录 (25)前言电子时钟己成为人们日常生活中必不可少的物品,广泛用于个人家庭以及车站、码头、剧院、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。
多功能电子时钟数字系统课程设计设计实验报告
多功能电子时钟数字系统课程设计设计实验报告数字系统课程设计设计实验报告———多功能电子时钟目录一、电子时钟的功能及工作介绍 01、本设计电子时钟具有的功能 02、本设计电子时钟工作介绍 0二、设计思路 0三、各模块具体介绍 (1)计数器模块: (1)控制模块: (3)四、仿真 (6)五、实验成果 (6)六、实验总结和感想 (6)1、实验错误排查和解决 (6)2、实验感想 (7)七、各模块代码 (8)1、计数器模块 (8)2、控制模块 (20)一、电子时钟的功能及工作介绍1、本设计电子时钟具有的功能1)具有显示时、分、秒的功能,能准确显示时间2)能够手动设置时间3)具有闹钟功能,可以设置闹钟的时间,然后再实际时间与设定时间相等是闹钟响,并有闹钟开关,可控制其是否响4)具有秒表功能,可以累计计时2、本设计电子时钟工作介绍此电子时钟开机后即会显示时间,其中后两位数码管显示秒,前两位数码管显示分,还可以通过拨盘开关S1来使得前两位数码管显示小时。
(开机后,按下按键1一次,会继续显示时间。
)此后,每按下按键1一次,会显示设置小时界面,按下按键1两次会显示设置分钟界面,按下按键1三次会显示闹钟设置小时界面,按下按键1四次会显示闹钟设置分钟界面,按下按键1五次会显示秒表界面。
而在每一个界面,按下按键2相应的位会开始跳动,在按下按键2时,跳动停止,此时按下按键3,即确认键,则会返回时间显示状态。
二、设计思路设计一个电子时钟,必然要用到计时器,而需要设置时间和闹钟,又需要控制器来控制系统所处的状态。
我们采用外部一个按键来切换系统的状态,用另一个按键来调整时间和启动秒表,再有一个按键来确认操作,并返回显示状态,继续等待命令。
在控制器中,需要接受外部信号,并给出信号给计时器,使其做出相应的动作。
多功能闹钟课程设计
多功能闹钟课程设计一、课程目标知识目标:1. 学生能够理解多功能闹钟的基本原理,掌握其构造和功能。
2. 学生能够运用所学的电子技术知识,分析并设计简单的多功能闹钟电路。
3. 学生能够解释闹钟中时间计算、显示和闹铃功能的基本电子学原理。
技能目标:1. 学生能够运用所学知识,进行闹钟的组装和调试,培养动手操作能力。
2. 学生能够通过小组合作,培养团队协作和沟通技巧,共同完成多功能闹钟的制作。
3. 学生能够运用问题解决策略,分析并解决在制作过程中遇到的技术问题。
情感态度价值观目标:1. 学生通过学习多功能闹钟的制作,培养对电子技术的兴趣,激发创新意识。
2. 学生在实践过程中,体验成功的喜悦,增强自信心,培养积极的学习态度。
3. 学生能够关注生活中的实际问题,认识到科学技术的应用价值,提高社会责任感。
本课程针对五年级学生,结合电子技术学科特点,注重知识与实践相结合。
课程旨在培养学生的动手能力、创新意识和团队协作精神,通过多功能闹钟的制作,使学生将所学知识应用于实际生活中,提高学生的综合素养。
二、教学内容本章节教学内容主要包括以下三个方面:1. 多功能闹钟的基本原理:- 闹钟的计时原理与时间计算方法。
- 闹钟的显示技术,如LED数码管、LCD显示等。
- 闹钟的闹铃功能实现,如蜂鸣器、振动器等。
教学内容关联课本第十五章“计时器与闹钟”相关内容。
2. 多功能闹钟的电路设计与组装:- 介绍闹钟电路的基本组成,包括时钟芯片、显示模块、控制模块等。
- 教学学生如何设计简单的闹钟电路。
- 引导学生进行闹钟的组装、调试与优化。
教学内容关联课本第十六章“电子电路设计与制作”相关内容。
3. 小组合作与技术创新:- 分组进行多功能闹钟的制作,培养学生团队协作能力。
- 鼓励学生进行技术创新,优化闹钟功能,提高实用性。
- 组织学生进行成果展示,分享制作过程中的经验与收获。
教学内容关联课本第十七章“小组合作与科技创新”相关内容。
本章节的教学内容安排和进度如下:第1周:学习多功能闹钟的基本原理。
多功能闹钟设计课程设计
多功能闹钟设计课程设计一、课程目标知识目标:1. 学生能理解闹钟的基本原理和功能,掌握多功能闹钟的设计要素。
2. 学生能运用所学的电子技术知识,设计并制作一个具备基本时间显示、闹铃提醒、附加功能(如温度、日期显示)的多功能闹钟。
3. 学生能解释闹钟中各个电子元件的工作原理及其在整体设计中的作用。
技能目标:1. 学生通过实践操作,提高电子电路的搭建和调试技能,培养动手能力和问题解决能力。
2. 学生能够运用绘图软件或手工绘制设计图,形成清晰的设计思路和表达自己的设计意图。
3. 学生通过团队协作,学会项目管理和分工合作,提高沟通协调能力。
情感态度价值观目标:1. 学生在课程中培养对电子科技的兴趣和探究精神,增强创新意识和实践欲望。
2. 学生在设计过程中树立环保意识,注重选材的可持续性和产品的节能环保。
3. 学生通过成果展示,增强自信心和成就感,培养分享和反思的良好习惯。
课程性质:本课程为信息技术与电子技术的融合课程,旨在通过实际操作,让学生将理论知识与实践相结合,提高学生的创新设计能力和实际操作技能。
学生特点:考虑到学生所在年级的特点,课程内容设计将注重基础知识与进阶技能的结合,难度适中,确保学生能够接受并乐于参与。
教学要求:教学内容需与教材紧密结合,确保学生在学习过程中能够巩固课本知识,同时注重学生的个性化发展和团队合作能力的培养。
通过分解课程目标为具体的学习成果,使教学设计和评估具有针对性和实效性。
二、教学内容1. 闹钟原理及其电子元件介绍:包括时钟芯片、显示屏幕、按钮、蜂鸣器等基本元件的功能和工作原理。
- 相关教材章节:第三章 电子元件及其功能2. 多功能闹钟设计思路与流程:讲解设计图绘制、电路图分析、程序编写等步骤,明确设计过程中的关键环节。
- 相关教材章节:第五章 电子设计流程3. 实践操作指导:指导学生进行电路搭建、程序烧录、功能调试等实际操作,确保学生掌握操作要领。
- 相关教材章节:第六章 实践操作与调试4. 闹钟附加功能拓展:引导学生思考并实现闹钟的附加功能,如温度、日期显示等。
多功能电子时钟课程设计
多功能电子时钟课程设计一、课程目标知识目标:1. 学生能够理解电子时钟的基本原理,掌握电子时钟的组成和功能。
2. 学生能够运用所学知识,设计并制作一个多功能电子时钟。
3. 学生能够了解电子时钟在日常生活和科技领域中的应用。
技能目标:1. 学生能够运用编程软件和硬件设备,完成电子时钟的设计和制作。
2. 学生能够运用问题解决和团队协作能力,解决设计和制作过程中遇到的问题。
3. 学生能够通过实际操作,提高动手能力和创新能力。
情感态度价值观目标:1. 学生培养对电子技术和编程的兴趣,激发学习热情。
2. 学生养成合作、分享、尊重他人的良好品质,形成积极向上的学习氛围。
3. 学生认识到科技对生活的影响,增强社会责任感和创新意识。
课程性质:本课程为信息技术课程,旨在培养学生的动手实践能力和创新能力。
学生特点:五年级学生对新鲜事物充满好奇,具备一定的逻辑思维能力和动手能力,但需进一步提高。
教学要求:结合学生特点,注重理论与实践相结合,提高学生的实际操作能力和解决问题的能力。
通过团队合作,培养学生良好的沟通与协作能力。
在教学过程中,关注学生的情感态度价值观的培养,使他们在学习过程中形成积极向上的人生态度。
将课程目标分解为具体的学习成果,便于教学设计和评估。
二、教学内容1. 电子时钟基本原理:讲解电子时钟的组成、工作原理和常见类型,结合课本第二章内容。
- 时钟芯片的原理与应用- 显示器件(如LED、LCD)的工作原理2. 硬件设备认知:介绍电子时钟所需硬件设备,如时钟芯片、显示模块、电源模块等,关联课本第三章。
- 硬件设备的功能和选型- 硬件连接与电路设计3. 编程软件应用:学习编程软件的使用,编写程序控制电子时钟,参考课本第四章。
- 编程环境搭建- 基本编程语法与逻辑控制4. 电子时钟设计与制作:分组进行电子时钟的设计和制作,结合课本第五章。
- 设计方案讨论与确定- 程序编写与调试- 硬件组装与测试5. 作品展示与评价:展示各组设计的电子时钟,进行自评、互评和教师评价,总结经验教训,提高创新能力。
多功能数码钟课程设计
多功能数码钟课程设计一、课程目标知识目标:1. 学生能理解多功能数码钟的基本原理,掌握其构造和功能。
2. 学生能运用所学知识,分析并解释数码钟显示时间、闹钟设定、计时器等基本功能的工作原理。
3. 学生能了解并描述电子元件如集成电路、晶体振荡器、LED显示屏等在数码钟中的作用。
技能目标:1. 学生能够独立完成多功能数码钟的组装和调试。
2. 学生能够通过实际操作,掌握使用多功能数码钟进行时间管理、闹钟设定和计时等技能。
3. 学生能够运用所学知识,解决多功能数码钟使用过程中遇到的问题。
情感态度价值观目标:1. 培养学生对电子科技的兴趣,激发他们探索科学技术的热情。
2. 培养学生的团队合作精神,使他们学会在组装和调试过程中相互帮助、共同解决问题。
3. 培养学生珍惜时间、合理安排时间的意识,引导他们将所学知识应用于日常生活中,提高生活品质。
本课程旨在让学生通过动手实践,掌握多功能数码钟的基本原理和操作技能,同时培养他们的科技兴趣和团队协作能力。
针对学生年级特点,课程内容注重知识性与实践性的结合,以学生为主体,充分调动他们的学习积极性。
通过本课程的学习,使学生能够将理论知识与实际应用相结合,提高解决问题的能力。
二、教学内容本章节教学内容主要包括以下几部分:1. 数码钟原理:介绍数码钟的基本工作原理,如时钟电路、计数器、显示电路等,关联教材中有关电子计数器、数字显示章节。
2. 电子元件认知:学习集成电路、晶体振荡器、LED显示屏等电子元件的作用和特性,结合教材中电子元件相关章节。
3. 多功能数码钟组装与调试:详细讲解多功能数码钟的组装过程,包括电路连接、元件焊接、调试等,涉及教材实践操作章节。
4. 多功能数码钟操作与应用:学习如何使用多功能数码钟进行时间管理、闹钟设定、计时等功能,结合教材中关于电子产品操作与应用的内容。
教学内容安排与进度:第一课时:数码钟原理学习,介绍电子计数器、数字显示等基本概念。
第二课时:电子元件认知,学习集成电路、晶体振荡器、LED显示屏等元件的作用。
电子技术课程设计----多功能电子时钟的设计
电子技术(下)课程设计题目名称:多功能电子时钟的设计院系名称:电子信息学院班级:学号:学生姓名:指导教师:年月电子技术(下)课程设计任务书姓名学号学院电子信息学院班级题目多功能电子时钟的设计设计任务1、基本部分1)、由振荡电路产生秒脉冲信号;2)、经分频电路、计数电路、译码电路,由数码管显示;3)、秒和分电路为60进制,小时电路为24进制;2、发挥部分1)、可以增加校正电路,对秒、分、小时进行校对;2)、可以增加报时电路,整点前进行“四低一高”报时;时间进度总体时间为1周;星期一上午:讲解;星期一下午:理解电路原理;星期二上午:发放元器件和工具,设计电路和连线;星期四上午:验收电路;星期日之前:上交课程设计报告;主要参考文献[1]康华光。
电子技术基础数字部分(第五版)。
北京:高等教育出版社,2006;[2]康华光。
电子技术基础模拟部分(第五版)。
北京:高等教育出版社,2006;[3]电子技术(下)实验指导书,中原工学院电子技术课程组自编,2011;摘要设计一台可以准确计时,以十进制数显示“时”、“分”、“秒”的多功能电子时钟,小时为24进制,分和秒均为60进制。
多功能电子时钟实际是一个对标准频率(1HZ)进行计数的计数电路,是采用数字电路实现“时”、“分”、“秒”数字显示的计时装置。
通过本课程设计,巩固加强“数字电子技术”课程的理论知识;掌握电子电路的一般设计方法,并了解电子产品研制开发的过程;基本掌握电子电路安装和调试的方法;培养独立分析问题和解决问题的能力以及创新能力和创新思维。
关键词:电子时钟;计数器;AbstractDesign a can accurate timing, in decimal number shows "hour"," minute" and "seconds" multifunctional electronic clock, for 24 hours into the system, minutes and seconds are 60 into the system. Multifunctional electronic clock is actually a for standard frequency (1 HZ) to count count circuit, is the digital circuit implementation digital display timer device. Through this course design, make we strengthen "hour","minute" and "seconds" digital electronic technology" the curriculum theory knowledge; Grasp the electronic circuit of the general design method, and understand the electronic product development development process; Basic grasp the electronic circuit installation and debugging methods; To foster independent analysis and problem-solving ability and creative ability and creative thinking.Key words:Electronic clock; counter;目录中文摘要Abstract第一章绪论 (1)第二章总体方案设计 (1)2.1 设计内容 (1)2.1.1基本部分 (1)2.1.2发挥部分 (1)2.2 原理说明 (1)第三章单元模块设计 (3)3.1 振荡器 (3)3.2 分频器 (6)3.3 计数器 (7)3.4 译码显示电路 (10)3.5校时电路 (11)3.6 整点报时电路 (12)第四章系统的调试与功能 (13)4.1 系统的调试 (13)4.2 系统的功能 (14)第五章心得体会 (15)参考文献 (15)附录一:工具清单 (15)附录二:元器件清单 (16)附录三:主要元器件的引脚图和功能表 (17)第一章绪论随科技的发展,电子产品越来越多的走进人们的生活,工艺也是越来越精湛。
多功能数字时钟课程设计
多功能数字时钟课程设计多功能数字时钟是一种十分常见且使用广泛的计时工具,随着数字化的推进,数字时钟在人们的日常生活中扮演着越来越重要的角色。
针对数字时钟的课程设计就显得尤为重要。
在下面的文章中,我们将针对多功能数字时钟的课程设计分步骤地进行阐述。
第一步:课程目标的制定在开展数字时钟课程的设计之前,需要明确该课程的教学目标。
数字时钟涉及到的知识点比较多,目标制定的准确性和明确性可以使得教学更加高效。
该课程目标的一些重要的方面包括:1. 了解数字时钟的组成和工作原理。
2. 掌握数字时钟的常用功能和操作方式。
3. 能够利用数字时钟进行实际生活中的计时操作。
4. 学会数字时钟的基本维护和保养。
第二步:课程内容的选择数字时钟涉及到的内容很多,但是每个人的知识背景在一个不同的水平,一些学生可能只知道数字时钟的基本概念。
在选择课程内容时,要根据学生的背景进行选择,使得课程设计具有一定的针对性。
一些重要的课程内容有:1. 数字时钟的结构。
2. 常见数字时钟的类型。
3. 如何使用数字时钟进行计时操作。
4. 数字时钟的维护和保养。
第三步:课程教学方法的选择在数字时钟的课程教学中,教学方法是非常重要的。
如果教学方法不当,即使内容选择恰当,也可能使得学生无法真正理解和掌握数字时钟的重要性和使用方法。
一些教学方法有:1. 讲解式教学方法:教师直接讲解数字时钟的相关知识和技能。
2. 实验式教学方法:由学生亲自操作数字时钟,从而掌握使用方法。
3. 讨论式教学方法:教师引导学生进行交流和探讨。
第四步:课程评价方法的选择在数字时钟课程结束后,教学评价是必不可少的一件事。
这对于学生学习的效果检验和课程的改进都具有重要意义。
一些评价方法有:1. 笔试方式:通过让学生考试,检查学生对数字时钟的理解程度。
2. 实际操作方式:让学生在数字时钟的操作过程中检查他们是否真正理解。
3. 交流方式:从学生的角度出发,从而更好地了解数字时钟课程的情况。
多功能电子钟毕业设计
多功能电子钟毕业设计本文主要介绍了一款多功能电子钟的设计方案,其中包括时钟、定时器、闹钟、日历、温度显示等多种功能。
通过硬件和软件的相结合,实现了这种多功能的电子钟,具有易操作、准确显示、功能多样等特点。
本设计可用于家庭、实验室、工作室等多种场合。
一、设计目标随着现代科技的发展,电子钟成为人们生活中不可缺少的一部分。
因此,本文设计了一款多功能电子钟,集时钟、定时器、闹钟、日历、温度显示等多种功能于一身,方便人们的日常生活。
二、设计原理该电子钟的各项功能均用单片机控制实现。
电子钟的控制部分是基于51单片机进行设计。
时钟的原理是通过一个晶振来控制芯片的工作频率,从而达到时钟的准确显示。
使用DS1302进行存储和控制时间。
定时器的原理是通过定时器中断进行实现,通过设定定时器的计数值即可实现定时器的功能。
闹钟的原理是通过设定一个“警报时间”来实现,当时间到达“警报时间”时,闹钟就会开始响铃。
日历的原理是通过读取DS1302中存储的日期信息进行实现。
温度显示的原理是通过使用DS18B20传感器实现对温度的检测。
三、硬件设计本设计的硬件主要由以下部分组成:显示部分、按键部分、计时器部分、DS1302时钟芯片、DS18B20温度传感器、单片机及其外设(如LCD12864液晶屏等)。
1.显示部分本设计采用LCD12864液晶屏进行显示。
2.按键部分本设计采用4个按键T1~T4,T1键用于切换时间制式;T2键用于设定时间和日期等;T3键用于设定闹钟;T4键用于定时器的设定。
3.计时器部分本设计采用计时器555进行固定时间的计时。
4. DS1302时钟芯片DS1302时钟芯片是一种用于实现实时时钟的芯片,本设计将其用于控制电子钟的时间。
5. DS18B20温度传感器DS18B20温度传感器是一种用于测量温度的芯片,本设计将其用于温度显示功能。
6. 单片机及其外设本设计采用AT89C52单片机进行控制,其外设包括LCD12864液晶屏、DS1302时钟芯片、DS18B20温度传感器等。
多功能数字钟(课程设计版)
》题目: 多功能数字钟电路设计器材:74LS390,74LS48,数码显示器BS202, 74LS00 3片,74LS04,74LS08,电容,开关,蜂鸣器,电阻,导线要求完成的主要任务:用中、小规模集成电路设计一台能显示日、时、分秒的数字电子钟,要求如下:1.由晶振电路产生1HZ标准秒信号。
2.秒、分为00-59六十进制计数器。
:3.时为00-23二十四进制计数器。
4.可手动校正:能分别进行秒、分、时的校正。
只要将开关置于手动位置。
可分别对秒、分、时进行连续脉冲输入调整。
5.整点报时。
整点报时电路要求在每个整点前鸣叫五次低音(500HZ),整点时再鸣叫一次高音(1000HZ)。
时间安排:指导教师签名:年月日、系主任(或责任教师)签名:年月日索引摘要........................................................ 错误!未定义书签。
Abstract .................................................... 错误!未定义书签。
—1系统原理框图.............................................. 错误!未定义书签。
2方案设计与论证............................................ 错误!未定义书签。
时间脉冲产生电路........................................ 错误!未定义书签。
分频器电路.............................................. 错误!未定义书签。
时间计数器电路.......................................... 错误!未定义书签。
译码驱动及显示单元电路.................................. 错误!未定义书签。
电子综合课程设计多功能数字电子时钟
电子综合课程设计多功能数字电子时钟一、简介本项目为电子综合课程设计,设计一款多功能数字电子时钟。
该时钟具有显示时间、日期、温度、闹钟等多种功能,配备有定时开关机、夜光和音量调节等功能。
此外,该时钟外观简约且美观,设计师充分考虑到用户的使用需求,实现了人性化设计,易于操作,成为一款功能强大、实用性高、适用范围广的电子产品。
二、设计思路1.硬件设计时钟采用STM32F0308T6单片机作为主控芯片,用DS1302实时时钟芯片作为时钟源。
为了实现多种功能,我们在主控出增加了一个9612音频电路芯片,用作时钟的音量控制,以及闹钟的提示铃声。
此外,为了使时钟更好地适应使用场景,设计师还添加了光敏电阻实现夜光功能,铺上黄色的背光板后又实现了多种颜色的配合,能够适应不同场合的需求。
2.软件设计在软件方面,使用了C语言编程。
主要功能包括时间、日期、温度显示、闹钟、夜光和音量控制等。
其中,时间及日期的显示为主界面,在时钟界面下按下“menu”可以进入温度、夜光、音量调节、闹钟设置等模式,按下确定键可进入对设置的编辑,方便用户按照自己需求进行调整。
三、功能介绍1.时间、日期显示时钟在主界面下,可显示当前时间和日期,使用户随时了解到时间和日期的变化。
2.温度显示在“menu”界面下,可显示当前的温度,方便用户了解室内温度的变化。
3.闹钟设置在“menu”模式下,用户可通过设置闹钟时间来实现定时提醒的功能。
4.夜光当环境光线较暗时,时钟的背光板将亮起,以便用户观看时间。
5.音量调整可通过音量调节的按键对音量进行调整,以方便用户按照自己的需要进行调节。
6.定时开关机在控制位置,实现了产品的定时开关机功能,可自动开机,实现了对环境的节约。
四、总结该多功能数字电子时钟的设计工艺精良,功能强大、易于操作、实用性高、适用性广泛。
整个设计过程、选材及工艺都体现了电子产品的优越性。
在真正的市场环境下,这款多功能电子时钟具备广泛的市场适应性,在现代家居、办公室等各个场合都具有很好的应用前景。
多功能电子钟毕业设计
多功能电子钟毕业设计多功能电子钟毕业设计随着科技的发展,电子产品在我们的生活中扮演着越来越重要的角色。
电子钟作为一种常见的家居电子产品,已经成为人们生活中不可或缺的一部分。
然而,目前市面上的电子钟功能单一,只能显示时间,无法满足人们对多样化功能的需求。
因此,我决定以多功能电子钟为毕业设计的主题,设计一款集多种功能于一体的电子钟。
首先,我计划在电子钟上增加一个温度显示功能。
这样,人们可以方便地了解当前的室内温度,无需额外的温度计。
这对于那些需要时刻掌握室内温度的人来说,将是一个非常实用的功能。
其次,我打算在电子钟上加入一个闹钟功能。
这个功能将允许用户设定多个闹钟,以满足不同时间的提醒需求。
而且,我还计划设计一个智能闹钟功能,可以根据用户的睡眠状态智能调整闹钟的响铃时间,以确保用户在最佳时机醒来,避免睡眠中断。
另外,我还想在电子钟上加入一个音乐播放功能。
这样,用户可以通过连接手机或其他音乐设备,将喜欢的音乐通过电子钟播放出来。
同时,我还将设计一个定时关闭音乐的功能,以免用户忘记关闭音乐而影响休息。
除了以上功能,我还计划在电子钟上增加一个倒计时功能。
这个功能可以帮助用户倒计时特定的时间段,比如做饭、运动等。
用户只需设置倒计时的时间,电子钟将会进行倒计时,并在时间结束时发出提醒。
另外,我还打算在电子钟上加入一个日历功能。
用户可以通过电子钟查看当前日期,并设置提醒事项。
这样,用户不仅可以方便地了解日期,还可以及时提醒自己重要的事项,提高工作效率。
最后,我还计划在电子钟上加入一个天气预报功能。
通过连接互联网,电子钟可以获取实时的天气信息,并显示在屏幕上。
这样,用户可以方便地了解当天的天气情况,做好相应的准备。
综上所述,我将设计一款集温度显示、闹钟、音乐播放、倒计时、日历和天气预报等多种功能于一体的电子钟。
这款电子钟将为用户提供更多的便利和实用性,满足人们对多样化功能的需求。
我相信,通过这个毕业设计,我将能够提高自己的设计能力,并为人们的生活带来更多的便利和乐趣。
多功能电子时钟系统毕业设计
4.在系统校准模式时,系统具有快速校准时间的功能;
5.在秒表计时模式时,可兼做比赛时间记录表。秒表记时的精度为0.1秒,由3个键分别控制秒表的启动、清零、记录功能,可连续记录3组时间,并能够显示记录时间;
课题的研究容
设计制作一台以控制器为核心的多功能电子时钟系统。
课题的任务和要求
1.系统具有3种工作模式状态(正常时钟显示模式、系统校准模式、秒表计时模式);系统所有功能,能够通过上位PC机对其操作修改与实时动态显示(PC主机端可利用高级语言进行人机界面设计);
2.在正常时钟显示模式时,时钟具有显示年、月、日、时、分、秒的功能;
单片机也被称为微控制器,是因为它最早被用在工业控制领域。单片机由芯片仅有CPU的专用处理器发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对提与要求严格的控制设备当中。INTEL的Z80是最早按照这种思想设计出的处理器,从此以后,单片机和专用处理器的发展便分道扬镳。
多功能电子时钟系统设计
学院名称:
专业:
班级:
姓名:
学号:
指导教师:晓杰俞洋
2013年12月
多功能电子时钟系统设计
摘要
在快节奏的当今社会,时间是一个很重要的工具,为了更高效率的完成工作,为了社会的进步与发展,把握和控制时间更是尤为重要。人们对数字钟的要求也越来越高,多功能数字钟不管在性能还是在样式上都发生了质的变化。数字钟的设计方法有许多种,例如,可用中小规模集成电路组成电子钟;也可以利用专用的电子钟芯片配以显示电路与其所需要的外围电路组成电子钟;还可以利用单片机来实现电子钟等等。这些方法都各有其特点,其中利用单片机实现的电子钟具有编程灵活,并便于功能的扩展。但这里为了学习数字电路,包括对组合逻辑电路与时序电路的学习,采用中小规模集成电路组成数字钟。因此本系统采用单片机作为数字钟的核心控制器,读取时钟芯片的值,并通过显示器显示出来,而且,可以通过按键电路给单片机执行信号,实现正常显示,时钟校准和秒表的切换。采用AT89S52作为主控单片机,时钟模块选用DS1302作为时钟芯片,显示模块选用LCD1602,设置部分选用按键电路。
多功能电子时钟课程项目设计方案
多功能电子时钟课程项目设计方案第一章:系统电路设计1.1 系统总设计思路数字电子计时器原理框图如图(1.1)所示,电路一般包括以下几个部分:振荡器、分频器、校时电路、时分秒计数器、译码显示电路。
图1.1 数字电子计时器原理框图对于各部分(1)振荡器用来产生相应频率的脉冲信号。
(2)分频器用来对振荡器产生的信号进行分频,从而得到电子计数器需要的1Hz秒脉冲。
(3)为使数字钟走时与标准时间一致,校时电路是必不可少的。
设计中采用开关控制校时直接用秒脉冲先后对“时”“分”计数器进行校时操作。
(4)计数电路,通过计数输出产生相应的二进制码元,再输入到译码器。
(5)译码电路和显示器为一个整体。
通过译码器译码输入到数码管,最终显示出来。
1.2 设计方案选择1.2.1 振荡部分方案一晶体震振荡器电路采用石英晶体振荡器。
使用振荡频率为32768Hz的石英晶体和反向器构成一个稳定性好、精度高的时间信号源。
改变电容C可以对振荡器的频率进行微调,再通过一个反相器,输出32768Hz的方波,将此方波的频率进行15次二分频后,在输出端刚好可得到频率为1Hz的脉冲信号。
方案二 555振荡器电路振荡器是计时器的核心,其作用是产生一个标准频率的脉冲信号。
振荡频率的精度和稳定度决定了数字钟的质量。
采用集成电路555定时器与RC组成的多谐振荡器。
(比较)秒信号发生器是数字电子钟的核心部分,它的精度和稳度决定了数字钟的质量,但我们做实验考虑到用石音晶体振荡电路时分频电路用的元件较多且价格较贵,用555构成的电路元件容易得,电路简单且易于实现,故选方案二。
1.2.2 分频部分方案一 CD4060构成的分频电路通常实现分频器的电路是计数器电路,一般采用多级2进制计数器来实现。
CD4060在数字集成电路中可实现的分频次数最高,为14级2进制计数器而且CD4060还包含振荡电路所需的非门。
方案二 74LS90构成的分频电路74LS90是异步二—五—十进制加法计数器,它既可以作二进制加法计数器,又可以作五进制和十进制加法计数器。
电脑闹钟课程设计
电脑闹钟课程设计一、课程目标知识目标:1. 学生能理解电脑闹钟的基本概念,掌握其工作原理;2. 学生能掌握电脑闹钟的基本设置方法,包括时间设定、铃声选择等;3. 学生了解电脑闹钟在生活中的应用,认识到其便捷性和实用性。
技能目标:1. 学生能独立完成电脑闹钟的设置,提高操作电脑的基本技能;2. 学生能通过实际操作,培养解决问题的能力和团队协作能力;3. 学生能运用所学知识,创新性地设计出独特的闹钟提醒功能。
情感态度价值观目标:1. 学生培养珍惜时间、遵守时间的良好习惯,增强时间观念;2. 学生在创作过程中,培养审美观念,提高创新意识;3. 学生通过课程学习,认识到科技与生活的紧密联系,激发对科学的热爱。
课程性质:本课程为信息技术课程,旨在让学生掌握电脑闹钟的相关知识,提高实际操作能力,同时培养情感态度价值观。
学生特点:六年级学生具有一定的电脑操作基础,好奇心强,喜欢探索新知识,具备一定的创新意识和团队协作能力。
教学要求:结合学生特点,注重实践操作,激发学生兴趣,提高学生的信息技术素养。
在教学过程中,注重分层指导,关注个体差异,使学生在掌握知识的同时,提升综合能力。
二、教学内容1. 电脑闹钟的基本概念与工作原理:- 闹钟的定义与功能;- 闹钟的工作原理及分类。
2. 电脑闹钟的设置与操作:- 时间设置、铃声选择与音量调整;- 闹钟提醒功能的开启与关闭;- 闹钟模式的切换与自定义设置。
3. 闹钟在生活中的应用与创新:- 闹钟在时间管理中的作用;- 创新性地设计闹钟功能,如:智能场景提醒、健康作息提醒等。
4. 教学内容的安排与进度:- 第一课时:电脑闹钟的基本概念与工作原理;- 第二课时:电脑闹钟的设置与操作;- 第三课时:闹钟在生活中的应用与创新。
教材章节关联:- 《信息技术》第六册:第二章 电脑生活;- 第二节:时间管理好帮手——电脑闹钟。
教学内容根据课程目标进行选择和组织,确保学生在掌握基本知识的基础上,能够进行实际操作和创新设计。
多功能电脑时钟
目录一、功能描述 (1)二、方案设计 (1)2.1系统分析 (1)2.2器件选择 (1)三、软件设计 (2)3.1操作功能设计 (2)3.2程序编制思想 (2)3.3程序流程图 (3)四、程序调试 (3)五、心得体会 (4)六、参考文献 (5)附录1:电路原理图 (6)附录2:程序 (7)多功能电脑时钟设计报告一、功能描述1、实时显示当前时间即北京时间(时、分)。
2、可修改北京时间(时、分)。
3、可设定闹铃时间(时、分)。
4、按设定闹铃时间定时报时,报时时长为10秒钟。
5、具有显示星期和修改星期的功能。
6、具有秒表功能,能启动、暂停、停止秒表,启到后实时显示秒、百分秒。
7、能实现整点报时。
二、方案设计2.1 系统分析根据系统功能要求,可将系统组成结构分成四大部分:单片机控制中心、键盘接口、时钟显示和声音报时,如下图为系统的组成结构图。
其中,单片机控制中心是核心。
MCU根据按键输入,可切换不同的显示模式或设置不同的参数。
时钟显示完成北京时间或秒表时钟或星期的信息。
声音报时可完成闹铃和整点报时的提示。
2.2 器件选择选用STC89C51芯片,频率为11.0592MHz。
由于系统要求显示小时和分钟,采用四位LED数码管显示即可。
按键是用来设置北京时间或闹钟时间或启动秒表等功能的,设置三个按键:模式键(K_Mode)、UP键(K_UP)、DOWN键(K_DN)。
选用蜂鸣器作为闹铃。
三、软件设计3.1 操作功能设计根据系统功能描述,可以分为:北京时间功能、闹铃功能、秒表功能星期显示功能。
我们通过对K_Mode键按下的次数计数,用Mode计数,Mode的次数就代表了不同的模式,每个模式都有与之相对应的指示灯,每个模式的功能如下:Mode 0:按键每按下时显示北京时间模式,此时,四个指示灯全灭,显示格式为:小时.分钟(如:09.50,为9点50分),按K_UP或者K_DN键对系统没影响,每到整点时,要进行3秒钟的报时。
多功能电子钟课程设计
多功能电子钟课程设计一、课程目标知识目标:1. 学生能够理解电子钟的基本原理,掌握电子时钟各部分功能及相互关系。
2. 学生能够运用所学的电子技术知识,分析多功能电子时钟的电路图,并解释其工作原理。
3. 学生能够列出并解释电子时钟编程中的基本指令和程序结构。
技能目标:1. 学生能够设计简单的多功能电子时钟电路图,并展示其功能。
2. 学生能够通过动手实践,组装和调试多功能电子时钟,解决过程中遇到的技术问题。
3. 学生能够运用电子编程软件进行基础编程,实现电子时钟的基本功能,如时间显示、闹钟设定等。
情感态度价值观目标:1. 学生培养对电子科技的兴趣,激发创新意识和探索精神。
2. 学生通过合作完成任务,培养团队协作精神和沟通能力。
3. 学生在学习和实践过程中,增强解决问题的自信,培养严谨的科学态度和责任心。
4. 学生能够认识到电子技术在实际生活中的应用,意识到学习科学技术对个人和社会的意义。
本课程针对初中年级学生,考虑到学生的认知水平、动手能力和兴趣特点,设计了一系列实践性与理论性相结合的学习活动。
课程旨在通过多功能电子钟的制作,帮助学生将电子技术知识与实际应用相结合,提高其技术素养,同时培养其情感态度价值观。
通过具体学习成果的分解,教师可以针对性地进行教学设计和评估,确保课程目标的实现。
二、教学内容本章节教学内容主要包括以下三个方面:1. 电子时钟基础知识:- 电子时钟原理:讲解电子时钟的基本工作原理,如晶振、分频器、计数器等组成部分。
- 电路分析:分析电子时钟电路图,理解各部分功能及相互关系。
2. 电子时钟设计与制作:- 电路设计:学习如何设计简单的多功能电子时钟电路图,包括元件选型、电路连接等。
- 程序编写:掌握电子时钟编程的基本指令和程序结构,学会使用编程软件编写程序。
3. 实践操作:- 组装与调试:指导学生动手组装多功能电子时钟,并进行调试,解决过程中遇到的问题。
- 功能实现:实现电子时钟的基本功能,如时间显示、闹钟设定等。
多功能数字时钟毕业设计【范本模板】
摘要数字电子时钟是人们日常生活中不可或缺的必需品.电子钟主要是利用现代电子技术将时钟电子化、数字化.与传统的机械钟相比,具有时钟精确、显示直观、无机械传动装置等优点,因而得到广泛应用.另外,在生活和工农业生产中,人们对电子钟的功能又提出了诸多要求:报时、闹钟、日历、温度显示,这就需要电子时钟的多功能性。
根据人们的不同要求,本设计主要为实现一款可正常显示时钟,测量环境温度、湿度,带有定时闹铃,倒计时的多功能电子时钟。
本设计采用液晶显示以其亮度高、显示直观等优点被广泛应用于智能仪器及家用电器等领域。
该时钟系统主要由时钟模块、闹钟模块、环境温度湿度检测模块、液晶显示模块、键盘控制模块以及信号提示模块组成.能够准确显示时间(显示格式为时时:分分:秒秒,24小时制),可随时进行时间调整,具有闹钟时间设置、闹钟开/关、止闹功能,能够对时钟所在的环境温度进行测量并显示。
设计以硬件软件化为指导思想,充分发挥单片机功能,大部分功能通过软件编程来实现,电路简单明了,系统稳定性高。
关键词:电子时钟;单片机;多功能;温湿度传感器AbstractDigital electronic clock is indispensable to daily life. Electronic clock is the use of modern electronic technology to clock electronic, digital. Compared with the traditional mechanical clock, a clock—accurate,intuitive display, no mechanical transmission device,etc.,and thus are widely used. In addition,the in the the in the life and industrial and agricultural production,, the people pairs of the the the function of of electronic bell also proposed a a lot of of the requirements of:timekeeping,alarm clock,calendar,temperature display, which requires the the the versatility of electronic clock。
多功能电子时钟毕业论文设计
多功能电子时钟毕业论文设计目录摘要 ................................................... 错误!未定义书签。
Abstract ................................................. 错误!未定义书签。
绪论 .. (1)1. 多功能电子时钟研究的背景和意义 (1)2. 电子时钟的功能 (2)第一章电子时钟设计方案分析 (3)1.1 FPGA设计方案 (3)1.2 单片机设计方案 (3)第二章基于单片机的电子时钟硬件设计 (5)2.1 主要IC芯片选择 (5)2.1.1 微处理器选择 (5)2.1.2 时钟芯片选择 (6)2.1.2.1 DS1302简介及引脚说明 (7)2.1.2.2DS1302的控制字和读写时序说明 (8)2.1.2.3DS1302的片寄存器 (10)2.2 电子时钟硬件电路设计 (12)2.2.1 时钟电路设计 (13)2.2.2 显示电路设计 (14)2.2.3 按键电路设计 (15)2.2.4 闹铃电路设计 (17)2.2.5 复位电路设计 (18)第三章电子时钟软件设计 (20)3.1 主程序设计 (20)3.2 子程序设计 (21)3.2.1日历子程序设计 (21)3.2.2 显示子程序设计 (21)3.2.3 键盘扫描子程序 (22)3.2.4 闹铃子程序设计 (22)第四章系统调试 (26)4.1 硬件调试 (27)4.1.1 单片机基础电路调试 (27)4.1.2 显示电路调试 (28)4.1.3 DS1302电路调试 (30)4.1.4 按键电路调试 (31)4.2 软件调试 (32)4.2.1 键盘子程序调试 (32)4.2.2 时钟日历子程序调试 (32)结论 (33)参考文献 (34)附录一程序 (35)附录二多功能电子时钟元器件一览表 (60)附录三多功能电子时钟硬件原理图 (61)致谢 (63)绪论时间是人类生活必不可少的重要元素,如果没有时间的概念,社会将不会有所发展和进步。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
多功能电脑时钟摘要单片计算机即单片微型计算机(single-ChipMicrocomputer)。
它一块芯片上集成了CPU、ROM、RAM、I/O、中断等功能部件,构成了一个完整的数字计算机。
它体积小,成本低,功能强,广泛应用于智能成品和工业自动化上。
而51单片机是各类单片机中最为典型和最具代表型的一种。
此系统以AT89C51单片机为控制核心,构成了一个多功能数字显示时钟。
本报告详细介绍整个系统的硬件结构,工作原理和软件设计。
四位数码管作为显示器具有与电脑通信、实时时间与日期的显示、按键调时、整点报时、闹钟、秒表等功能。
软件采用C语言编写便于移植。
关键字:51单片机多功能电脑时钟数码管一、系统的硬件结构系统以AT89C51单片机作为核心控制器件,主要有电源模块、时钟芯片模块、复位电路模块、按键模块、RS232电脑通信、闹钟模块和数码管显示模块。
系统硬件的基本组成框图如下图图一。
1、1电源电源模块采用稳定的电脑USB供电,保证+5V电压的稳定输出,进一步提高系统的抗干扰能力和稳定性。
1、2独立按键模块系统有四个独立按键,独立按键MODE、UP、DN和ENT分别接至单片机P2.0、P2.1、P2.2和P3.2口。
MODE用来功能选择,其功能可以用按键次数N来表示:N=0:时间显示 N=1:年份显示N=2:月份和日期显示 N=3:星期显示N=4:秒表 N=5:时间小时的修改N=6:时间分钟的修改 N=7:年份的修改N=8:月份修改 N=9:日期修改N=10:星期修改 N=11:闹钟小时设定N=12:闹钟分钟设定 N=13:闹钟的开关N=14:整点报时的开关 N=15:返回UP主要功能用来进行加一操作。
在有功能选择的情况下,有用到的情况中那一种功能操作,按下UP即进行一次加一操作,在没有功能选择的情况下,系统不响应此按键的任何操作。
DN主要功能用来进行减一操作。
在有功能选择的情况下,有用到的情况中那一种功能操作,按下DN即进行一次减一操作,在没有功能选择的情况下,系统不响应此按键的任何操作。
NET主要功能是在任何情况下直接返回到0模式时间的显示。
按键电路图如下图图三.1、3显示模块一个良好的显示模块对一个系统非常重要,所有操作结果和计时结果,都要通过显示模块来显示出来。
同时显示模块提供了良好的人机交互平台。
常用的显示模式有LED 7段数码管显示、点阵显示和液晶显示。
液晶显示屏(LCD)具有轻薄短小、低耗电量、无辐射危险,平面直角显示以及影象稳定不闪烁等优势,可视面积大,画面效果好,分辨率高,抗干扰能力强等特点。
但由于液晶其成本也偏高。
在使用时,不能有静电干扰,否则易烧坏液晶的显示芯片。
鉴于LED 7段数码管成本低,也比较容易实现的特点,最终确定使用共阴极数码管来显示。
本系统显示模块电路一块74HC138芯片和两个四位一体7段译码数码管集成的模块。
数码管显示电路如下图图四。
1、4复位电路模块复位电路主要的功能是是整个系统初始化,在每次上电时系统自动初始化,如果在程序运行的过程中程序没有响应或者需要进行一次初始化,这是可以通过按复位开关来实现需要的有效操作。
复位电路如上图图五。
1、5时钟晶振电路时钟晶振电路是本系统实现高精度计时的关键。
利用时钟晶振电路独立于单片机来计时提供高频脉冲源,在提高计时进度的同时也提高了整个系统的抗干扰能力。
时钟晶振电路如下图图六。
1、6蜂鸣器闹铃模块闹铃模块由蜂鸣器和蜂鸣器的驱动组成。
在有闹铃发生的时候,蜂鸣器的驱动电路驱动蜂鸣器发声,产生闹铃的效果。
通过改变其频率音质的也可以播放简单的音乐。
蜂鸣器电路图如上图图七。
1、7通过RS232串口单片机与电脑通信模块们的个人电脑和单片机系统进行通信。
个人电脑作为上位机,向下位机单片机系统发送十六进制或者ASCLL码,单片机系统接收后处理显示或者修改等操作。
是与电脑通信的最重要的模块。
RS232串口电路图如图八。
二、系统的软件设计系统的软件设计可以分为几个部分,首先是各个模块的底层驱动程序编写,而后是系统联机调试,编写上层系统程序。
本系统软件程序主要包括:数码管的扫描显示驱动模块、RS232串口通信模块(及CB程序的编写,电脑通信界面的设计等的设计和程序编写)、温度传感器通信驱动模块、键盘扫描模块,闹钟模块、秒表计时模块和各个功能的修改等。
系统的软件流程图如图九。
图九:程序基本流程图2、1单片机的信号数据处理及控制的软件设计它主要是控制模式的选择,及其对应模式的做出相应的UP和DN的控制修改。
并处理闹钟、秒表等的响应。
还要处理串口数据的接收和串口数据的发送,并对其信息信号作出处理。
具体流程图如下图图十。
图十:单片机的信号数据处理及控制流程图2、2PC机的程序设计及控制画面设计PC的程序是用C++Builder6设计的并且是用C++Builder设计的控制画面,其画面的颜色及图形等都可以随意的改变。
同样其设计也可以用“组态王”软件设计,但是其串口通信方面C++Builder的设计简单并且比组态王实用,在本系统中更有实用价值。
如果将此系统运用于工程上等大型的系统里面则组态王的控制更加有价值有意义。
其C++Builder设计的画面如下图图十一。
图十一:C++Builder设计的控制画面三、程序调试及结果分析每个模块的调试都很好,但是将每个模块联系起来的时候出了些细微而且不好处理的问题。
比如:程序的复杂度超出了4K这是个比较困难的问题,但是后来发现有些地方重复啰嗦所以经过修改将程序压缩,最后解决了这个棘手的问题。
还有定时器的运用在中断的时候和定时的时候有可能出现冲突,准备启用定时器2(51的扩展定时器)但是最后解决了冲突,并且系统很稳定所以放弃了定时器2。
硬件问题也比较严重Protel99运用的时候,PCB没有注意布线的问题生产出来的板子信号地和电源地的相互干扰太大,使之干扰了系统的稳定运行,最后选择了买的开发板。
四、总结、结论及体会系统经组装、调试后,可以稳定运行,而且时间显示准确。
采用串行器件具有线路简单、体积小、价格低等优点。
同时该系统稍加改造,就可以作为工业实时采集中的一个模块。
最后系统稳定而且无误的运行,误差在1s/24h以内。
并且与电脑通信稳定界面漂亮得到了很结果。
系统软件设计均采用C语言编写,具有模块化的思想,可以方便的移植到其它的系统中。
可见技术在不断进步,机械式时钟已经被淘汰,取而代之的是具有高度准确性和直观性且无机械装置,具有更长的使用寿命等优点的数字时钟。
数字时钟更具人性化,更能提高人们的生活质量,更受人们欢迎。
无可否认机械时代已经过去,电子时代已经到来。
作为新时代的我们,更应该提高自身能力,适应新时代的发展。
知识来自实践,多去生活中探询所需要的。
对于上述所提到的研究课题,我们应尽量考虑到人的因素,增强时钟的实用性和操作性,为使用者提供切实的方便,营造一种舒适的生活氛围。
所以,在设计的时候,应该从多方面、多角度去考虑问题,而且应该进一步提高时钟的质量。
电脑时钟与我们的日常生活息息相关,在生活的每个角落都随处可见,它来源于生活又高于生活,很难想象在我们的生活中如果没有了电脑时钟做基础,我们的生活;里哪来这么多是生活丰富多彩的商品呢!五、参考文献[1] 李建忠. 《单片机原理及应用》西安电子科技大学出版社, 2002[2] 李广弟等《单片机基础》北京航空航天出版社,2001.7[3] 楼然苗等《51系列单片机设计实例》北京航空航天出版社,2003.3[4] 刘瑞新等《单片机原理及应用教程》机械工业出版社,2003.7[5] 吴国经等《单片机应用技术》中国电力出版社,2004.1[6] 侯媛彬等《凌阳单片机原理及其毕业设计精选》科学出版社,2006年[7] 张毅刚等《MCS-51单片机应用设计》哈工大出版社,2004年第2版[8] 霍孟友等《单片机原理与应用学习概要及题解》机械工业出版社,005.3六、附录(程序代码)#ifndef _key_h_#define _key_h_#define KEY_TIME 30void KeyDeal();#endif#ifndef _myfun_h_ #define _myfun_h_#include "reg52.h"#include "key.h"#include "serial.h"#define TIME_1S 200void Deal_1S();void chronograph();void Sound_play();#endif#ifndef _NIXIETUBE_H_#define _NIXIETUBE_H_#include"reg52.h"#include"sysinit.h"#define FLASH_TIME 100#define FLASH_TIME_ALL 200#define Z 2 /*Z :段码序号*/#define d 12/*d :段码序号*/#define L 10 /*L:段码序号*/#define E 11void nixietube_display();void nixietube_renew();void led_disp(unsigned char *Menu);void DispTwoCharData(unsigned char Dat1,unsigned char Dat2);void DispIntData(unsigned int Dat);void Disp3Data(unsigned char Dat1,unsigned char Dat2,unsigned char Dat3);void DispFlashDot(unsigned char N);void DispFlash(unsigned char Start, unsigned char End);#endif#ifndef _SYSINIT_H_#define _SYSINIT_H_#define THCO 0xee#define TLCO 0x0sbit MODE=P2^0;sbit UP=P2^1;sbit DN=P2^2;sbit ENT=P3^2;sbit LED1=P2^3;sbit LED2=P2^4;sbit LED3=P2^5;sbit LED4=P2^6;sbit P10=P1^0;sbit P11=P1^1;sbit P12=P1^2;sbit P13=P1^3;sbit PIN_MSC=P1^4; // 音乐输出端口//void system_init();#endif#ifndef _SERIAL_H_#define _SERIAL_H_#include "reg52.h" #include "myfun.h"#include "sysinit.h"#include "nixietube.h"#include "playmusic.h"void Transmit_date();void TranFourChar(unsigned char dat1,unsigned char dat2,unsigned char dat3,unsigned char dat4);void Receive_date();void ReceOneChar(unsigned char *dat);void ReceOneBit(unsigned char dat);#endif#ifndef _PLAYMUSIC_H_#define _PLAYMUSIC_H_#include "reg52.h"#include "intrins.h"#include "SysInit.h"void music_delay(unsigned char x); //音乐节拍延时void music_play(unsigned char *msc); //播放音乐子程序#define FREQ 11059200#endif#include "reg52.h"#include "SYSINIT.h"#include "key.h"extern bit Brush_flag;extern unsigned char Menu;extern unsigned int year;extern unsigned char month,day;extern unsigned char Week;extern char Hour,Min,Sec; //实时时间extern char N_Hour,N_Min; //闹钟时间extern unsigned char miao,mil_miao;extern unsigned char N_flag; //1\0:贪睡功能开启或关闭;2:闹钟关闭extern unsigned char ZD_flag;extern bit miaobiao_run;void KeyDeal(){if(MODE==0) { Menu+=1;if(Menu>=15)Menu=0; }if(Menu==0)Brush_flag=1;if(Menu==1||Menu==2||Menu==3){Brush_flag=1;if(E NT==0)Menu=0;}if(Menu==4){if(UP==0)miaobiao_run=1;else if(DN==0)miaobiao_run=0;else if(ENT==0 ||MODE==0){miao=0;mil_miao=0;}Brush_flag=1;}if(Menu==5){if(UP==0)Hour+=1;if(DN==0)Hour-=1;if(ENT==0)Menu=0;if(Hour==24)Hour=0;if(Hour<0)Hour=23;Brush_flag=1;}if(Menu==6){if(UP==0)Min+=1;if(DN==0)Min-=1;if(ENT==0)Menu=0;if(Min>=60)Min=0;if(Min<0)Min=59;Brush_flag=1;}if(Menu==7){if(UP==0) year+=1;if(DN==0) year-=1;if(ENT==0)Menu=0;if(year<=2000)year=2000;if(year>=10000)year=2000;Brush_flag=1;}if(Menu==8){if(UP==0) month+=1;if(DN==0) month-=1;if(ENT==0)Menu=0;if(month>=13)month=1;if(month<=0)month=12;Brush_flag=1;}if(Menu==9){if(UP==0) day+=1;if(DN==0) day-=1;if(ENT==0)Menu=0;if(month==2){if((year%4==0 && year%100!=0)||year%400==0){if(day>=30)day=1;if(day<=0)day=29;}else{if(day>=29)day=1;if(day<=0)day=28;}}elseif(month==4||month==6||month==9||month==11) {if(day>=31)day=1;if(day<=0)day=30;}else{if(day>=32)day=1;if(day<=0)day=31;}Brush_flag=1;}if(Menu==10){if(UP==0) Week+=1;if(DN==0) Week-=1;if(ENT==0)Menu=0;if(Week>=8)Week=1;if(Week<=0)Week=7;Brush_flag=1;}if(Menu==11){if(UP==0) N_Hour+=1;if(DN==0) N_Hour-=1;if(ENT==0)Menu=0;if(N_Hour==24)N_Hour=0;if(N_Hour<0)N_Hour=23;Brush_flag=1;}if(Menu==12){if(UP==0)N_Min+=1;if(DN==0)N_Min-=1;if(ENT==0)Menu=0;if(N_Min>=60)N_Min=0;if(N_Min<0)N_Min=59;Brush_flag=1;}if(Menu==13){if(UP==0||DN==0) N_flag=!N_flag;if(ENT==0)Menu=0;Brush_flag=1;}if(Menu==14){if(UP==0||DN==0)ZD_flag=!ZD_flag;if(ENT==0)Menu=0;Brush_flag=1;}}#include "reg52.h"#include "myfun.h"#include "serial.h"extern bit Brush_flag,Flag_Keydown,Flag_Flash,Flag_1s; extern unsigned char N_flag,ZD_flag;extern unsigned char Sec;void main(){system_init();while(1){if(Brush_flag==1 ){ Brush_flag=0; nixietube_renew();} //更新数码管显示缓冲器中的数if(Flag_Keydown==1){ Flag_Keydown = 0; KeyDeal(); } //按键处理if(Flag_1s==1 ){ Flag_1s=0; Deal_1S(); } //一秒钟的处理if(N_flag==1||ZD_flag==1){Sound_play();}}}void TIMER_0() interrupt 1{static unsigned char Key_cnt=0,cnt_1s=0;TH0=THCO;TL0=TLCO;nixietube_display();chronograph();if(++cnt_1s>=200) //一秒时间到{Sec++;cnt_1s=0;Flag_1s=1;}if(MODE==0 || UP==0 || DN ==0 || ENT==0) // 有键按下{if(++Key_cnt >= KEY_TIME){Key_cnt = 0;Flag_Keydown = 1;}}else{Key_cnt = 0;}}void seri()interrupt 4{Receive_date();}#include "myfun.h"extern bit Brush_flag;extern unsigned char Menu; extern unsigned int year;extern unsigned char month,day;extern unsigned char Week;extern char Hour,Min,Sec; //实时时间extern char N_Hour,N_Min; //闹钟时间extern unsigned char miao,mil_miao;extern bit N_flag; //1\0:贪睡功能开启或关闭;2:闹钟关闭extern bit ZD_flag;extern bit N_Ring;extern bit miaobiao_run;extern unsigned char ZD_time;extern unsigned char Tx_flag;extern unsigned char code music_tab[];void Deal_1S(){Transmit_date();if(Sec>=60){Sec=0;Min++; Brush_flag=1; //更新数码管显示if(Min>=60){Min=0; Hour++;ZD_time=Hour; //整点到if(Hour>=24){Hour=0;day+=1;Week++;if(Week>=8)Week=1;if(month==2){if((year%4==0 && year%100!=0)||year%400==0){if(day>=30){day=1;month+=1;}}else{if(day>=29){day=1;month+=1;}}}elseif(month==4||month==6||month==9||month==11){if(day>=31){day=1;month+=1;}}else{if(day>=32){day=1;month+=1;}}if(month>=13){month=1;year+=1;}}} //时间计时}/*if(N_Hour==Hour && N_Min==Min){N_Ring=1;N_keyclose=1;}//闹钟相等else N_Ring=0; //贪睡功能关闭,则最多闹一分钟if(N_keyclose && N_flag) //贪睡功能开启,且未按键关闭{if(time_n==0)N_Ring=1; //第一次需开启闹钟time_n++;if(time_n>=5)time_n=0; //后4分钟关闭闹钟}else time_n=0;*/}void chronograph(){static unsigned char time_cnt=0;if(miaobiao_run==1){ // miaobiao_run==1时,秒表开始计时if(++time_cnt%2==0){mil_miao++;Brush_flag=1;}if(mil_miao==100)mil_miao=0;if(time_cnt>=200){time_cnt=0;miao++;Brush_flag=1 ;}if(miao>=60)miao=0;}else time_cnt=0;}void Sound_play(){if(N_Ring==1){music_delay(10);music_play(music_tab);}//闹铃启动//播放音乐一次else {if(ZD_time!=0)//整点报时功能开启,且报时次数不为0{while(ZD_time>0) //整点响ZD_time次{PIN_MSC=0;music_delay(3);PIN_MSC=1;music_delay(3);ZD_time--;}}}}#include"NIXIETUBE.h"extern unsigned char Data_Buffer[4];extern unsigned char code Duan[];extern unsigned char N_flag;extern unsigned char ZD_flag;extern bit Flag_Flash;extern bit Brush_flag;extern unsigned char Menu;extern unsigned int year;extern unsigned char month,day,Week;extern char Hour,Min,Sec; //实时时间extern char N_Hour,N_Min; //闹钟时间extern unsigned char miao,mil_miao;extern unsigned char DispFlash_Start,DispFlash_End; extern unsigned char Dot;void nixietube_display(){static unsigned char Bit=0,Flash_cnt=0;Bit++;if(Bit>=4){Bit=0;}P1|=0x0f;P0=Duan[Data_Buffer[Bit]];if(Menu==1||Menu==2||Menu==3||Menu==4) Flag_Flash=0;else {if(++Flash_cnt >= FLASH_TIME)Flag_Flash=1;else Flag_Flash=0;if(Flash_cnt >= FLASH_TIME_ALL)Flash_cnt=0;}if(Flag_Flash==1){if(Dot==(Bit+1)) P0 |= 0x80;if((Bit+1)>=DispFlash_Start && (Bit+1)<=DispFlash_End) P0 = 0x00;}if(Menu==2||Menu==3||Menu==4){if(Bit==1)P0 |= 0x80;}switch(Bit){case 0: P10=0;break;case 1: P11=0;break;case 2: P12=0;break;case 3: P13=0;break;}}void nixietube_renew(){if(Menu==0||Menu==5||Menu==6){DispTwoCharData(Hour,Min);if(Menu==0){DispFlashDot(2);DispFlash(0,0);}if(Menu==5){DispFlashDot(2);DispFlash(1,2);}if(Menu==6){DispFlashDot(2);DispFlash(3,4);}}else if(Menu==1||Menu==7){DispIntData(year);if(Menu==7){DispFlashDot(0);DispFlash(1,4);}}else if(Menu==2||Menu==8||Menu==9){DispTwoCharData(month,day);if(Menu==8){DispFlashDot(2);DispFlash(1,2);}if(Menu==9){DispFlashDot(2);DispFlash(3,4);}}else if(Menu==3||Menu==10){Disp3Data(E,E,Week); //if(Menu==10){DispFlashDot(2);DispFlash(3,4); }}else if(Menu==4){DispTwoCharData(miao,mil_miao); //}else if(Menu==11||Menu==12){DispTwoCharData(N_Hour,N_Min);if(Menu==11){DispFlashDot(2);DispFlash(1,2); }if(Menu==12){DispFlashDot(2);DispFlash(3,4); }}else if(Menu==13){Disp3Data(L,L,N_flag);DispFlashDot(2);DispFlash(3,4);}else if(Menu==14){Disp3Data(Z,d,ZD_flag);DispFlashDot(2);DispFlash(3,4);}led_disp(&Menu);}void DispIntData(unsigned int Dat){Data_Buffer[0]=Dat/1000;Data_Buffer[1]=Dat%1000/100;Data_Buffer[2]=Dat%100/10;Data_Buffer[3]=Dat%10;}void DispTwoCharData(unsigned char Dat1,unsigned char Dat2){Data_Buffer[0]=Dat1/10;Data_Buffer[1]=Dat1%10;Data_Buffer[2]=Dat2/10;Data_Buffer[3]=Dat2%10;}void Disp3Data(unsigned char Dat1,unsigned char Dat2,unsigned char Dat3){Data_Buffer[0]=Dat1;Data_Buffer[1]=Dat2;Data_Buffer[2]=0;Data_Buffer[3]=Dat3%10;}void DispFlashDot(unsigned char N)//控制小数点的闪烁{Dot = N;}void DispFlash(unsigned char Start, unsigned char End)//控制数码管前面两个或后面两个的闪烁{DispFlash_Start = Start;DispFlash_End = End;}void led_disp(unsigned char *Menu){unsigned char n=*Menu;if(n==0){LED1=1;LED2=1;LED3=1;LED4=1;}if(n==1){LED1=1;LED2=1;LED3=1;LED4=0;}if(n==2){LED1=1;LED2=1;LED3=0;LED4=1;}if(n==3){LED1=1;LED2=1;LED3=0;LED4=0;}if(n==4){LED1=1;LED2=0;LED3=1;LED4=1;}if(n==5){LED1=1;LED2=0;LED3=1;LED4=0;}if(n==6){LED1=1;LED2=0;LED3=0;LED4=1;}if(n==7){LED1=1;LED2=0;LED3=0;LED4=0;}if(n==8){LED1=0;LED2=1;LED3=1;LED4=1;}if(n==9){LED1=0;LED2=1;LED3=1;LED4=0;}if(n==10){LED1=0;LED2=1;LED3=0;LED4=1; }if(n==11){LED1=0;LED2=1;LED3=0;LED4=0; }if(n==12){LED1=0;LED2=0;LED3=1;LED4=1; }if(n==13){LED1=0;LED2=0;LED3=1;LED4=0; }if(n==14){LED1=0;LED2=0;LED3=0;LED4=1; }}#include "reg52.h"#include "SYSINIT.h"void initiate_rs232()//串口初始化{ES=0;SCON=0x50;T2CON=0x34;RCAP2H=0xff;RCAP2L=0xdb;ES=1;TI=0;}//**********************//函数名:系统初始化//**********************void system_init(){TMOD=0x11; //T0,T1初始化TH0=THCO;TL0=TLCO;TR0=1;ET0=1;TR1=0;ET1=1;initiate_rs232();EA=1;}bit Flag_Flash=0; //数码管闪烁标志bit Brush_flag=1; //显示刷新标志bit Flag_Keydown=0;bit Flag_1s=0;bit miaobiao_run=0;bit N_Ring;unsigned int year=2011;unsigned char month=7,day=13;unsigned char Menu=0;unsigned char Week=1;char Hour=0,Min=0,Sec=0; //实时时间char N_Hour=0,N_Min=0; //闹钟时间unsigned char miao=0,mil_miao=0;unsigned char ZD_time=0; //整点数unsigned char N_flag=0; //1\0:闹钟开关unsigned char ZD_flag=0;unsigned char Tx_flag=0; //收到PC机的信息,对相应的回答标志unsigned char DispFlash_Start=0,DispFlash_End=0; unsigned char Dot=0;//共阴极数码管,0-9段码表// L ,E , d., unsigned char code Duan[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x0 7,0x7F,0x6F,0x38,0x79,0xde};unsigned char Data_Buffer[4]={0,0,0,0};//四个数码管显示数值,数组变量定义#include "serial.h"extern bit Flag_1s;extern bit Brush_flag; //显示刷新标志extern bit Flag_1s;extern unsigned char N_flag; //1\0:闹钟开关extern unsigned char ZD_flag;extern unsigned int year;extern unsigned char month,day;extern unsigned char Week;extern char Hour,Min,Sec; //实时时间extern char N_Hour,N_Min; //闹钟时间extern unsigned char Tx_flag;void Transmit_date(){switch(Tx_flag){case 0: TranFourChar(0xaa,Hour,Min,Sec); break;case 1: Tx_flag=0; TranFourChar(0xbb,1,Week,0); break;case 2: Tx_flag=0; TranFourChar(0xbb,2,Hour,0); break;case 3: Tx_flag=0; TranFourChar(0xbb,3,Min,0); break;case 4: Tx_flag=0; TranFourChar(0xbb,4,N_Hour,0); break;case 5: Tx_flag=0; TranFourChar(0xbb,5,N_Min,0); break;case 6: Tx_flag=0; TranFourChar(0xbb,6,N_flag,0); break;case 7: Tx_flag=0; TranFourChar(0xbb,7,ZD_flag,0); break;default : break;}}void TranFourChar(unsigned char dat1,unsigned char dat2,unsigned char dat3,unsigned char dat4){SBUF=dat1; while(TI==0);TI=0;SBUF=dat2; while(TI==0);TI=0;SBUF=dat3; while(TI==0);TI=0;SBUF=dat4; while(TI==0);TI=0;}void Receive_date(){unsigned char temp;EA=0;if(RI==1){temp=SBUF;RI=0;if(temp==0xaa)/*第一字节为0xaa; */{ReceOneChar(&Hour);ReceOneChar(&Min);ReceOneChar(&Sec);}if(temp==0xbb)/*第一字节为0Xbb;*/{ReceOneChar(&temp);if(temp==1)/*第二字节为1,表示接收的数据为小时*/{ReceOneChar(&Week);}else if(temp==2)/*第二字节为2,表示接收的数据为分钟*/{ReceOneChar(&Hour);}else if(temp==3)/*第二字节为3,表示接收的数据为闹钟小时*/{ReceOneChar(&Min);}else if(temp==4)/*第二字节为4.表示接收的数据为闹钟分钟*/{ReceOneChar(&N_Hour);}else if(temp==5)/*第二字节为5.表示接收的数据为闹钟开启或关闭*/{ReceOneChar(&N_Min);}else if(temp==6)/*第二字节为6.表示接收的数据为闹钟开启或关闭*/{ReceOneChar(&N_flag);}else if(temp==7)/*第二字节为7.表示接收的数据为整点报时开启或关闭*/{ReceOneChar(&ZD_flag);}Tx_flag=temp;}}Brush_flag=1;/*更新数码管显示缓冲区*/EA=1;}void ReceOneChar(unsigned char *dat){while(RI==0);*dat=SBUF;RI=0;}#include "PLAYMUSIC.h"unsigned char temp_TH1;unsigned char temp_TL1;extern bit N_Ring;//两只老虎,高4位为音乐节拍,低4位为音符unsigned char code music_tab[]={0x31,0x32,0x33,0x31,0x31,0x32,0x33,0x31,0x3 3,0x34,0x45,0x33,0x34,0x45,0x25,0x16,0x25,0x14,0x33,0x31,0x25,0x16,0x2 5,0x14,0x33,0x31,0x31,0x35,0x41,0x31,0x35,0x41,};unsigned char code music_l_tab[8]={0,1,2,3,4,6,8,16};//节拍延时单位unsigned char code music_freq_tab[16]={0xff,0xea,//0 休止符255-FREQ/24/1049/256, //1 do 高字节//255-FREQ/24/x/256255-FREQ/24/1049%256, //1 do 低字节//256-FREQ/24/x%256255-FREQ/24/1178/256,256-FREQ/24/1178%2 56, //2 re255-FREQ/24/1322/256,256-FREQ/24/1322%2 56, //3 mi255-FREQ/24/1400/256,256-FREQ/24/1400%2 56, //4 fa255-FREQ/24/1572/256,256-FREQ/24/1572%2 56, //5 suo255-FREQ/24/1665/256,256-FREQ/24/1665%2 56, //6 la255-FREQ/24/1869/256,256-FREQ/24/1869%2 56, //7 xi};//****************************************** ****//函数名:音乐延时程序,延时125*n 毫秒//****************************************** ****void music_delay(unsigned char n){unsigned char i=125,j;do {do {for (j=0; j<230; j++) _nop_();}while(--i);}while(--n);}//*****************************//函数名:音乐播放程序//*****************************void music_play(unsigned char *msc) //音乐{unsigned char music_long; //节拍unsigned char music_data=0; //音符数据temp_TH1=0xff;temp_TL1=0xea; //关输出(输出超声波)TH1=temp_TH1;TL1=temp_TL1;TR1=1; //开T1定时器中断//--------------------------------------------------------- while (*msc != 0x00&& N_Ring==1)//闹铃一直启动{music_data=*msc & 0x07;music_long=*msc>>4;//---------------------------------------------------------if (music_long != 0) //是音符{temp_TH1=music_freq_tab[music_data*2];temp_TL1=music_freq_tab[music_data*2+1];music_delay(music_l_tab[music_long&0x07]);}msc++;}TR1=0; //播放结束PIN_MSC=1; //关输出}//****************************//函数名:T1中断服务程序//*****************************void music_INT_T1(void) interrupt 3 using 1{PIN_MSC=~PIN_MSC;TH1=temp_TH1;TL1=temp_TL1;}。