万年历课程设计与指导
数据结构课程设计 -万年历

学生实验报告实验课名称:数据结构实验项目名称:万年历专业名称:计算机科学与技术班级:44444444444444学号:4444444444444学生姓名:古古怪怪教师姓名:坎坎坷坷2009年 6 月28 日一、实验名称:万年历二、实验目的与要求设计目的1、数据结构是计算机专业的教学计划中的核心课程之一,数据结构在计算机科学中是一门综合性的专业基础课。
“数据结构”的研究不仅涉及到计算机硬件(特别是编码理论、存储装置和存取方法等)的研究范围,而且和计算机软件的研究有着更密切的关系,无论是编译程序还是操作系统,都涉及到数据元素在存储器中的分配问题。
在研究信息检索时也必须考虑如何组织数据,以便查找和存取数据元素更为方便。
因此,可以认为“数据结构”是介于数学、计算机硬件和计算机软件三者之间的一门核心课程。
在计算机科学中,“数据结构”不仅是一般程序设计(特别是非数值计算的程序设计)的基础,而且是设计和实现编译程序、操作系统、数据库系统及其他系统程序和大型应用程序的重要基础。
2、通过本项课程设计,可以培养独立思考、综合运用所学有关相应知识的能力,能更好的巩固《数据结构》课程学习的内容,掌握工程软件设计的基本方法,强化上机动手编程能力,闯过理论与实践相结合的难关!更加了解了c语言的好处和其可用性!同时增加了同学之间的团队合作精神!更加也体会到以后在工作中团队合作的重要性和必要性!3、通过数据结构课程设计,使学生了解高级程序设计语言的结构,掌握基本的程序设计过程和技巧,掌握基本的分析问题和利用计算机求解问题的能力,具备初步的高级语言程序设计能力。
为后续各门计算机课程的学习和毕业设计打下坚实基础。
设计要求1、能够显示星期;2、能够显示年月日;3、能显示十二个月;4、能准确显示阳历的每一天;4、格式与日历一致;二、实验内容:1、输出公元1年至9999年的日历;2、以标准日历的形式输出,包含月份、星期以及具体某一天对应的年、月、星期;3、用数据结构课上所学二叉树及队列顺序存储形式存储;三、程序设计思路【一】由于万年历具有以下特点:1。
c万年历课程设计

c 万年历课程设计一、课程目标知识目标:1. 让学生掌握年、月、日的概念及其关系,理解平年和闰年的区别;2. 使学生掌握如何使用万年历查找任意日期的星期,并了解其原理;3. 让学生了解不同历法的起源和发展,提高历史文化的认识。
技能目标:1. 培养学生运用数学知识解决实际问题的能力,如计算日期与星期之间的关系;2. 培养学生动手制作简单万年历的能力,提高动手操作和创新能力;3. 提高学生运用万年历进行时间管理和规划的能力。
情感态度价值观目标:1. 培养学生珍惜时间、合理安排生活的态度,树立时间观念;2. 激发学生对数学学科的兴趣,增强学习数学的自信心;3. 培养学生团队协作意识,学会与同学分享和交流学习心得。
本课程针对小学四年级学生设计,结合学生年龄特点和认知水平,注重知识性与趣味性的结合。
课程内容与教材紧密联系,旨在通过万年历的制作和使用,让学生在实际操作中掌握数学知识,提高解决问题的能力。
同时,注重培养学生良好的时间观念和情感态度,使学生在轻松愉快的氛围中学习,达到预期的学习成果。
二、教学内容1. 年、月、日的基本概念及其关系:包括一年有多少个月,一个月有多少天,平年和闰年的区别及其判断方法。
相关教材章节:第三章《年、月、日》。
2. 万年历的制作原理与使用方法:介绍星期与日期的关系,引导学生学会使用万年历查找任意日期的星期。
相关教材章节:第三章《认识星期》。
3. 不同历法的起源和发展:简述公历、农历等历法的历史背景,提高学生对历史文化的了解。
相关教材章节:第四章《历法的故事》。
4. 实践活动:分组让学生动手制作简易万年历,巩固所学知识,提高动手操作能力。
相关教材章节:第三章实践活动《制作自己的万年历》。
教学内容安排和进度:第一课时:介绍年、月、日的基本概念及其关系,判断平年和闰年的方法。
第二课时:讲解万年历的制作原理与使用方法,学会查找任意日期的星期。
第三课时:简述不同历法的起源和发展,提高历史文化认识。
自动万年历课程设计

自动万年历课程设计一、引言万年历是一种常见的时间表示工具,能够提供年、月、日、星期等日期信息。
随着科技的发展,人们对于万年历的需求也越来越多样化。
本次课程设计旨在实现一个自动万年历的功能,通过编程实现自动计算日期、星期和节假日等功能。
二、设计目标设计一个自动万年历的程序,实现以下功能:1.输入年份和月份,自动计算该月的日期信息;2.根据输入的日期,自动计算该日是星期几;3.判断输入的日期是否是法定假日,如春节、清明节等;4.根据输入的年份,自动计算该年的各个节假日日期。
三、设计思路3.1 输入年份和月份,自动计算日期1.根据输入的年份和月份,判断该年是否为闰年;2.根据月份判断该月的天数;3.输出该月的日期信息。
3.2 根据日期,自动计算星期1.判断输入的年份是否为闰年;2.计算该日的累计天数;3.判断累计天数对7取模的结果,得到星期。
3.3 判断输入日期是否为法定假日1.根据输入日期判断是否是法定假日,需根据法定假日的具体规定进行判断;2.输出判断结果。
3.4 根据年份,自动计算节假日日期1.根据公历计算的时间规律,计算出春节的日期;2.根据农历计算的时间规律,计算出农历节日的日期;3.输出计算结果。
四、详细设计4.1 输入年份和月份,自动计算日期1.首先通过输入函数获取用户输入的年份和月份;2.使用条件语句判断输入的年份是否为闰年,根据结果确定二月的天数;3.根据月份和上一步得到的天数,使用循环结构输出该月的日期信息。
4.2 根据日期,自动计算星期1.输入年份、月份和日期;2.使用条件语句判断输入的年份是否为闰年,根据结果确定二月的天数;3.根据输入的年、月、日,计算出累计天数;4.使用计算得到的累计天数对7取模,得到星期。
4.3 判断输入日期是否为法定假日1.定义法定假日的日期范围和名称;2.输入日期;3.对输入日期进行判断,判断是否在法定假日日期范围内;4.输出判断结果。
4.4 根据年份,自动计算节假日日期1.输入年份;2.根据公历的时间规律,计算出春节的日期;3.根据农历的时间规律,计算出农历节日的日期;4.输出计算结果。
幼儿园掌握万年历教案

幼儿园掌握万年历教案教学目标:1. 帮助幼儿园儿童学会使用万年历(农历、公历);2. 增加幼儿园儿童自主学习的能力;3. 培养幼儿园儿童生活中的时间意识。
教学重点:1. 学习农历与公历;2. 掌握使用万年历的方法。
教学难点:1. 农历与公历的对比;2. 使用万年历计算天数的方法。
教学准备:1. 万年历、笔、卡片;2. 关于农历和公历的课件;3. 备有相关书籍、视频参考资料。
教学过程:一、导入(10分钟)1. 引导幼儿园儿童听音乐,让他们沉浸到欢快的氛围中;2. 提问:“大家知道‘万年历’是什么吗?我们平常生活中常用的时间是什么?”必要时简单介绍农历和公历的定义。
二、讲解(30分钟)1. 课件或书籍图示辅助下,逐步介绍万年历的使用方法;2. 对比农历与公历,解释它们之间的差异,强调在使用万年历时不要混淆两种不同时间;3. 对万年历进行讲解,让他们学会使用日期查找、日期计算、日期计算以及其他基础操作。
三、操作(40分钟)1. 给幼儿园儿童分配卡片,让他们在万年历上找到对应日期;2. 让幼儿园儿童使用万年历计算生日、节日、假期、考试日期等重要日子,让他们体会如何使用万年历;3. 改变幼儿园儿童分配任务,让他们探索新增(减)天数。
四、讨论(20分钟)1. 在操作的过程中,鼓励幼儿园儿童积极参与并表述结果,引导教师进行讨论;2. 给幼儿园儿童问题引导,让他们互相了解、发现彼此间的相同、不同之处;3. 引导幼儿园儿童总结今天学到了哪些知识,以及掌握万年历的重要性。
五、结束(10分钟)1. 回顾今天的教学内容,强调万年历的重要性;2. 在主持人带领下,幼儿园儿童唱歌或玩游戏,结束了教学方案。
教学扩展:1. 鼓励家长和幼儿园的亲朋好友一起使用万年历,增加使用兴趣;2. 延伸教学内容,探索日历的历史演变。
教学反思:1. 农历与公历的讲解需要加强,知识点深入探究;2. 教学中引导的讨论稍显生硬,需要改进;3. 教学整体流程掌控良好,充分发挥了幼儿园儿童的自主学习能力。
万年历c语言课程设计

万年历 c语言课程设计一、课程目标知识目标:1. 学生能够理解万年历的基本概念,掌握日期与星期之间的转换关系。
2. 学生能够运用C语言中的数据类型、运算符和函数实现日期的计算。
3. 学生掌握结构体在C语言中的应用,并能利用结构体数组存储和管理大量日期数据。
技能目标:1. 学生能够运用所学知识,设计并编写一个简单的万年历程序,实现日期的输入、输出及查询功能。
2. 学生能够在编写程序的过程中,运用结构化编程思想,使代码具有可读性和可维护性。
3. 学生能够通过调试和修改程序,解决实际问题,提高编程解决问题的能力。
情感态度价值观目标:1. 学生培养对计算机编程的兴趣和热情,增强学习C语言的自信心。
2. 学生在团队合作中,学会互相帮助、沟通与协作,培养团队精神。
3. 学生通过编程实践,体会计算机科学在生活中的应用,认识到编程对解决实际问题的价值。
本课程针对高中年级学生,结合C语言编程知识,设计具有实用性和趣味性的万年历项目。
课程旨在让学生在实际编程过程中,掌握C语言的基本语法和编程技巧,提高解决问题的能力,同时培养团队协作和沟通能力。
通过本课程的学习,为学生奠定扎实的编程基础,激发他们对计算机科学的兴趣。
二、教学内容1. C语言基础语法复习:变量、数据类型、运算符、控制语句(条件语句、循环语句)。
2. 函数的定义与调用:重点复习函数的定义格式、参数传递、返回值。
3. 结构体的定义与应用:介绍结构体的概念、定义方法以及如何使用结构体数组。
4. 日期与星期的计算方法:讲解日期与星期之间的转换公式,引导学生理解算法。
5.万年历程序设计:a. 界面设计:设计简洁明了的用户界面,方便用户输入和查看日期。
b. 功能实现:实现日期的输入、输出、查询(按年月查询、按日期查询)。
c. 程序优化:讨论如何优化代码,提高程序运行效率。
d. 错误处理:学习如何处理用户输入错误、日期有效性验证等。
教学内容参考教材相关章节,按照以下进度安排:1. 第一课时: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. 实践应用:计算特定日期的星期,安排节日活动,了解历史上的今天。
教学大纲:第一课时:万年历的基本概念,闰年的判断方法,星期计算。
第二课时:编写万年历程序,学习流程图设计,实现基本算法。
第三课时:历法的起源与发展,了解农历与公历的转换,学习二十四节气。
第四课时:实践应用,解决实际问题,如计算节日日期,了解历史上的今天。
教学内容依据课程目标,结合课本章节,保证科学性和系统性。
通过以上安排,使学生掌握万年历相关知识,提高编程技能,并培养对传统文化的认识。
三、教学方法本课程采用以下多样化的教学方法,旨在激发学生的学习兴趣,提高主动性和参与度:1. 讲授法:教师通过生动的语言和形象的比喻,讲解万年历的基本概念、历法的发展和算法原理,为学生奠定坚实的理论基础。
c万年历课程设计

c万年历课程设计一、课程目标知识目标:1. 让学生理解并掌握万年历的基本概念,包括阳历、阴历以及它们之间的关系。
2. 学会运用所学的日期计算方法,计算出任意给定年份的星期几。
3. 了解我国历史上重要的节日及其在万年历中的体现。
技能目标:1. 培养学生运用万年历进行日期推算的能力,提高他们的逻辑思维和计算能力。
2. 通过制作简单的手工万年历,锻炼学生的动手操作能力和创新能力。
情感态度价值观目标:1. 培养学生对万年历文化的兴趣,激发他们学习历史和传统文化的热情。
2. 引导学生认识到万年历在日常生活中的实用性,增强他们的生活常识。
3. 培养学生尊重历史、尊重传统文化,形成正确的价值观。
课程性质分析:本课程为实用工具课程,旨在帮助学生掌握万年历的基本知识,提高他们在生活中的实用技能。
学生特点分析:考虑到学生所在年级,他们已经具备了一定的逻辑思维和计算能力,但对于复杂的概念和技巧还需要进一步的引导和锻炼。
教学要求:结合学生特点,课程设计要注重理论与实践相结合,强调学生的动手实践能力,同时注重培养他们的情感态度和价值观。
通过具体的学习成果分解,为后续的教学设计和评估提供明确的方向。
二、教学内容1. 万年历的基本概念:阳历、阴历、农历、公历的起源及关系。
- 教材章节:第一章第一节“时间的计算与历法”2. 日期计算方法:- 平年与闰年的判断方法。
- Zeller公式及其在日期计算中的应用。
- 教材章节:第一章第二节“日期的计算方法”3. 制作手工万年历:- 设计并制作个人简易万年历。
- 教材章节:第二章“动手制作万年历”4. 我国重要节日及其历法体现:- 春节、中秋节、端午节等节日的历法含义。
- 教材章节:第三章“历法与我国重要节日”5. 实践活动:- 利用所学日期计算方法,进行实际操作练习。
- 分析并讨论生活中万年历的应用实例。
教学内容安排与进度:第一课时:万年历基本概念的学习。
第二课时:日期计算方法的学习与练习。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录1前言 (1)2 工程概况 (1)2.1 设计目的 (1)2.2 设计分工 (1)3 正文 (1)3.1 方案论证 (1)3.1.1 技术可行性 (1)3.1.2 单片机的选择 (2)3.1.4 显示模块的选择 (3)3.1.5 最终方案决定 (3)3.2 仿真系统硬件设计 (3)3.2.1 电路设计框图 (3)3.2.2 单片机控制系统 (3)3.2.3 DS1302时钟电路 (4)4 有关说明 (6)4.1 显示电路 (6)4.2 按键电路 (6)4.3 仿真系统软件设计 (7)4.4 调试结果及分析 (7)5 结束语 (8)6 致谢 (8)7 参考文献 (9)附录1:仿真电路图 (9)附录2:源程序 (10)前言随着人们生活水平的提高和生活节奏的加快,对时间的要求越来越高,精准数字计时的消费需求也是越来越多。
二十一世纪的今天,最具代表性的计时产品就是电子时钟,它是近代世界钟表业界的第三次革命。
第一次是摆和摆轮游丝的发明,相对稳定的机械振荡频率源使钟表的走时差从分级缩小到秒级,代表性的产品就是带有摆或摆轮游丝的机械钟或表。
第二次革命是石英晶体振荡器的应用,发明了走时精度更高的石英电子钟表,使钟表的走时月差从分级缩小到秒级。
第三次革命就是单片机数码计时技术的应用,使计时产品的走时日差从分级缩小到1/600万秒,从原有传统指针计时的方式发展为人们日常更为熟悉的夜光数字显示方式,直观明了,并增加了全自动日期、星期的显示功能,它更符合消费者的生活需求!因此,电子时钟的出现带来了钟表计时业界跨跃性的进步。
我国生产的电子时钟有很多种,总体上来说以研究多功能电子时钟为主,使万年历除了原有的显示时间,日期等基本功能外,还具显示星期功能。
商家生产的电子万年历更从质量,价格,实用上考虑,不断的改进电子时钟的设计,使其更加的具有市场。
本文提出了一种基于AT89C52单片机的时钟设计方案,本方案以AT89C52单片机作为主控核心,与时钟芯片DS1302、按键、LCD3显示等模块组成硬件系统。
在硬件系统中设有独立按键和LED显示器,能显示丰富的信息,根据使用者的需要可以随时对时间进行校准、选择时间等,综上所述此电子时钟具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。
工程概况2.1 设计目的我们通过对一个基于单片机的能实现万年历功能电子时钟的设计,从而达到学习、了解单片机相关指令在各方面的应用。
系统由主控制器AT89C52、时钟电路DS1302、显示电路和按键电路等部分构成,能实现时钟日历显示的功能,能进行年、月、日、时、分、秒、星期的显示。
2.2 设计分工我们先是选定题目,然后确定大体方案再各自查找资料进行合理的分工,我们的分工如下:夏伟康和邓海东负责程序编写;胡洋和李凯迪负责画电路图并进行结果调试;最后大家一起总结完成课程设计论文。
正文3.1 方案论证3.1.1 技术可行性随着国内超大规模集成电路的出现,微处理器及其外围芯片有了迅速的发展。
集成技术的最新发展之一是将CPU和外围芯片,如程序存储器、数据存储器、并行I/O口、串行I/O口、定时/计数器、中断控制器及其他控制部件集成在一个芯片之中,制成单片计算机(Single-Chip Microcomputer)。
而近年来推出的一些高档单片机还包括有许多特殊功能单元,如A/D、D/A转换器、调制解调器、通信控制器、锁相环、DMA、浮点运算单元、PWM控制输出单元、PWM输出时的死区可编程控制功能等。
因此,只要外加一些扩展电路及必要的通道接口就可以构成各种计算机应用系统,如工业流水线控制系统、作为家用电器的主控制器、分布式控制系统的终端节点或作为其主控制节点起中继的作用、数据采集系统、自动测试系统等。
单片机的出现,并在各技术领域中得到如此迅猛的发展,与单片机构成计算机应用系统所形成的下述特点有关:(1)单片机构成的应用系统有较大的可靠性。
这些可靠性的获得除了依靠单片机芯片本身的高可靠性以及应用有最少的联接外,还可以方便地采用软、硬件技术。
(2)系统扩展、系统配置较典型、规范,容易构成各种规模的应用系统,应用系统有较高的软、硬件利用系数。
(3)由于构成的应用系统是一个计算机系统,相当多的测、控功能由软件实现,故具有柔性特征,不须改变硬件系统就能适当地改变系统功能。
(4)有优异的性能、价格比。
3.1.2 单片机的选择方案一:采用传统的AT89C52作为电机的控制核心。
单片机算术运算功能强,软件编程灵活、自由度大,可用软件编程实现各种算法和逻辑控制,并且由于其功耗低、体积小、技术成熟和成本低等优点,使其在各个领域应用广泛。
方案二:采用FTC10F04单片机,还带有非易失性Flash程序存储器。
它是一种高性能、低功耗的8位CMOS微处理芯片,市场应用最多。
其主要特点如下:8KB Flash ROM,可以擦除1000次以上,数据保存10年。
由于本系统对CPU运算速度要求很高,需要执行很复杂的运算,方案一成本比较低,适合做设计,方案二运算速度高,性能好,所以两种方案都有可取之处。
选用方案一作为主方案,方案二作为备用方案。
3.1.3 时钟模块的选择方案一:用单片机的定时器产生1S的时基信号,然后用程序来实现时钟的时、分、秒计时,同时用程序来产生年、月、日。
该方案优点是减少使用外设芯片;缺点是用单片机模拟时钟,使编程量增大,且用定时器产生时基信号,精度不高。
方案二:使用时钟芯片DS12C887。
优点是8位数据线并行控制,控制简单;自带有锂电池,外部掉电时,其内部时间信息还能够保持 10年之久。
缺点是并行控制,占用太多的IO口,且价格很高,不适合一般的电子制作。
方案三:采用DS1302时钟芯片实现时钟,DS1302芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、周、月、年以及闰年补偿的年进行计数,而且精度高,位的RAM作为数据暂存区,工作电压2.5V-5.5V 范围内,2.5V时耗电小于300Ma。
仅使用3个IO口,占用最少的单片机资源;其内部功能强大。
更重要的是其价格便宜,具有非常高的性价比。
缺点是串行通信,控制比较复杂。
综上,由于本设计对时间要求较精准,且具闰年计算功能,因此本设计选择方案三,采用时钟芯片DS1302。
3.1.4 显示模块的选择方案一:采用LED数码管动态扫描,LED数码管价格适中,对于显示数字最合适,而且采用动态扫描法与单片机相连接时,占用的单片机口线少,但所需要的数码管数量太多,焊接困难极易出错,所以不采用LED数码管作为显示。
方案二:采用点阵式数码管显示,点阵式数码管是由八行八列的发光二极管组成,对于显示文字比较合适,如果用在显示数字显得太浪费,且价格也相对较高,所以也不用此种作为显示。
方案三:采用LCD液晶显示屏,液晶显示屏的显示功能强大,可显示大量文字,图形,显示多样,清晰可见,但是价格昂贵,需要的接口线多。
本设计所需显示较多且需要文字,又基于设计要求,所以在本次设计中采用方案三,使用LCD1602液晶显示屏。
3.1.5 最终方案决定综上各方案所述,对此次设计的方案选定:采用AT89C52作为主控制系统;DS1302提供时钟;LCD1602液晶显示器作为显示3.2 仿真系统硬件设计3.2.1 电路设计框图图(1)总体设计框图3.2.2 单片机控制系统单片机中央处理系统的方案设计,选用AT89C52单片机作为中央处理器,如图(2)所示。
该单片机除了拥有MCS-51系列单片机的所有优点外,内部还具有8K的在系统可编程FLASH存储器,低功耗的空闲和掉电模式,极大的降低了电路的功耗,还包含了定时器、程序存储器、数据存储器等硬件,其硬件能符合整个控制系统的要求,不需要外接其他存储器芯片和定时器件,方便地构成一个最小系统。
整个系统结构紧凑,抗干扰能力强,性价比高。
3.2.3 DS1302时钟电路时钟电路主要由时钟芯片DS1302、晶振等几部分组成,如下图所示。
DS1302采用3线串行接口,占用引脚少,内部集成了可编程日历时钟,用户可以根据需要通过单片机的控制来自行设置,支持双电源供电,可以使用外部主电源和备用电源,备份电源能够使时钟芯片继续工作。
图(3) DS1302管脚图图(4) DS1302时钟电路DS1302各引脚的功能为:8: Vcc1:备用电池端;1: Vcc2:5V电源。
当Vcc2>Vcc1+0.2V时,由Vcc2向DS1302供电,当Vcc2< Vcc1时,由Vcc1向DS1302供电;7: SCLK:串行时钟,输入;6: I/O:数据输入输出口;5: CE/RST:复位脚;2、3: X1、X2 是外接晶振脚(32.768KHZ的晶振);4: 地(GND)。
DS1302有关日历、时间的寄存器:图(5)DS1302有关日历、时间的寄存器1、秒寄存器(81h、80h)的位7定义为时钟暂停标志(CH)。
当初始上电时该位置为1,时钟振荡器停止,DS1302处于低功耗状态;只有将秒寄器的该位置改写为0时,时钟才能开始运行。
2、小时寄存器(85h、84h)的位7用于定义DS1302是运行于12小时模式还是24小时模式。
当为高时,选择12小时模式。
在12小时模式时,位5是,当为1时,表示PM。
在24小时模式时,位5是第二个10小时位3、控制寄存器(8Fh、8Eh)的位7是写保护位(WP),其它7位均置为0。
在对任何的时钟和RAM的写操作之前,WP位必须为0。
当WP位为1时,写保护位防止对任一寄存器的写操作。
也就是说在电路上电的初始态WP是1,这时是不能改写上面任何一个时间寄存器的,只有首先将WP改写为0,才能进行其它寄存器的写操作。
DS1302读写时序DS1302是SPI总线驱动方式。
它不仅要向寄存器写入控制字,还需要读取相应寄存器的数据。
DS1302的控制字如图(6):图(6)DS1302的控制字图控制字的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入到DS1302中。
位6:如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1(A4~A0):指示操作单元的地址;位0(最低有效位):如果为0,表示要进行写操作,为1表示进行读操作。
读数据:读数据时在紧跟8位的控制字指令后的下一个SCLK脉冲的下降沿,读出DS1302的数据,读出的数据是从最低位到最高位。
写数据:控制字总是从最低位开始输出。
在控制字指令输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入也是从最低位(0位)开始。
有关说明4.1 显示电路,P1.7图(8)按键电路4.3 仿真系统软件设计软件设计是本设计的关键,软件程序编写的好坏直接影响着系统运行情况的良好。