万年历课程设计报告

合集下载

万年历课程设计报告报告

万年历课程设计报告报告

WORD格式可编辑面向对象课程设计题目万年历程序设计系部商学系专业信息管理与信息系统班级信息N122 学号学生姓名指导教师编写日期 2015.01.15第一章需求分析 (3)第二章概要设计 (4)第三章详细设计与编码 (6)第四章调试分析 (10)第五章用户使用说明 (13)第六章设计心得 (14)第一章需求分析如今的社会是一个信息的时代,随着电脑等科技产品在人们生活中占据着越来越重要的地位,人们就会越加的善加利用,这为我们的生活带来了极大的效率,同时计算机的普及更可以看出它所占的地位。

万年历作为日常中的一种小工具,它具有多方面的小工能,主要在日期的显示上给人以直观的表达效果,在日期的查询上方便简洁,还有就是在某些节日的提醒上都给我们带来极大的方便,是一种比较实用的小工具。

我们每个人都可以在自己的个人电脑上进行制作,一方面不仅可以加强巩固我们对C#语言的学习,还可以通过自主的编程找到自身的缺点。

这对培养我们自身的创新能力和动手能力具有很大的作用。

第二章概要设计1.设计要求程序完成运行时,能过正确的表达出所输入年份的万年历。

2.总体设计<1>实现操作流程图<2>程序设计流程图第三章详细设计与编码<1>源代码using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Text;using System.Linq;using System.Windows.Forms;using System.Globalization;namespace AllAgesCalendar{public partial class Form1 : Form{public Form1(){InitializeComponent();}private void Form1_Load(object sender, EventArgs e) {string intmonth =monthCalendar1.TodayDate.Month.ToString();string intdaty =monthCalendar1.TodayDate.Day.ToString();if (monthCalendar1.TodayDate.Month < 10){intmonth = "0" +monthCalendar1.TodayDate.Month.ToString();}if (monthCalendar1.TodayDate.Day < 10){intdaty = "0" +monthCalendar1.TodayDate.Day.ToString();}string s = String.Format("{0}年{1}月{2}", GetStemBranch(monthCalendar1.TodayDate),GetMonth(monthCalendar1.TodayDate),GetDay(monthCalendar1.TodayDate)); label1.Text = monthCalendar1.TodayDate.Year + "年" + intmonth + "月" + intdaty + "日" + " " + s + " " + getReturnYear(monthCalendar1.TodayDate) + "年";label1.ForeColor = Color.Green;}private void label1_Click(object sender, EventArgs e) {}ChineseLunisolarCalendar calendar = new ChineseLunisolarCalendar();public string GetYear(DateTime time){StringBuilder sb = new StringBuilder();int year = calendar.GetYear(time);int d;do{d = year % 10;sb.Insert(0, ChineseNumber[d]);year = year / 10;} while (year > 0);return sb.ToString();}private static string ChineseNumber = "〇一二三四五六七八九";public string GetMonth(DateTime time){int month = calendar.GetMonth(time);int year = calendar.GetYear(time);int leap = 0;for (int i = 3; i <= month; i++){if (calendar.IsLeapMonth(year, i)){leap = i;break;}}if (leap > 0) month--;return (leap == month + 1 ? "闰" : "") + ChineseMonthName[month - 1];}public static readonly string[] ChineseMonthName = new string[] { "正", "二", "三", "四", "五", "六", "七", "八", "九", "十", "十一", "十二" };public string GetDay(DateTime time){returnChineseDayName[calendar.GetDayOfMonth(time) - 1];}public static readonly string[] ChineseDayName = new string[] {"初一","初二","初三","初四","初五","初六¨´","初七","初八?","初九","初十","十一","十二","十三","十四","十五","十六","十七","十八","十九","二十","廿一","廿二","廿三","廿四","廿五","廿六¨´","廿七","廿八","廿九","三十"};public string GetStemBranch(DateTime time){int sexagenaryYear =calendar.GetSexagenaryYear(time);string stemBranch =CelestialStem.Substring(calendar.GetCelestialStem(sexagenar yYear) - 1, 1) +TerrestrialBranch.Substring(calendar.GetTerrestrialBranch(s exagenaryYear) - 1, 1);return stemBranch;}public const string CelestialStem = "甲乙丙丁戊己庚辛壬癸";public const string TerrestrialBranch = "子丑寅卯辰巳午未申酉戌亥";public string getReturnYear(DateTime time){int sexagenaryYear =calendar.GetSexagenaryYear(time);string Tree =TreeYear.Substring(calendar.GetTerrestrialBranch(sexagenary Year) - 1, 1);return Tree;}public const string TreeYear = "鼠牛虎兔龙蛇马羊猴鸡狗猪";private void monthCalendar1_DateSelected(object sender, DateRangeEventArgs e){string strYesr = String.Format("{0}年{1}月{2}", GetStemBranch(monthCalendar1.SelectionStart),GetMonth(monthCalendar1.SelectionStart),GetDay(monthCalendar1.SelectionStart));toolTip1.ToolTipTitle =monthCalendar1.SelectionStart.ToShortDateString();toolTip1.Show(strYesr + " " +getReturnYear(monthCalendar1.SelectionStart) + "年", monthCalendar1, monthCalendar1.Location, 5000);}}}第四章调试分析<1>程序运行测试①进入程序界面:。

万年历课程设计报告

万年历课程设计报告

课程设计报告万年历学生姓名:系别:自动化学院专业:测控技术与仪器班级:1102目录一、方案简介二、逻辑总框图三、设计所需的元件四、单元电路设计4.1、主控制系统4.2、时钟振荡电路4.3、复位电路4.4、DS1302时钟电路4.5、按键电路4.6、显示电路五、流程图与软件设计5.1、程序流程图5.2、软件设计六、个人心得一、方案简介:系统分为主控模块、时钟电路模块、按键扫描模块,LCD显示模块,电源电路、复位电路、晶振电路等模块。

主控模块采用AT89C52单片机,按键模块用四个按键,用于调整时间,显示模块采用LCD1602,时钟电路模块采用DS1302时钟芯片实现对时间、日期的操作。

二、逻辑总框图:该电子万年历的总体设计框图如图(1)所示。

图(1)电子万年历总体设计框图三、设计所需的元件:元件名称型号数量/个单片机 AT89C52 1时钟芯片 DS1302 1晶振 12MHz 1晶振 32.768kHz 1电容 30pF 2电容 22uF 1按键开关 4电阻 10K 9滑动变阻器 1K 1电池 1.5V 4LCD LCD1602 1电源Vcc +5V 1导线若干四、单元电路设计:4.1、主控制系统单片机中央处理系统的方案设计,选用AT89C52单片机作为中央处理器,如图(2)所示。

该单片机除了拥有MCS-51系列单片机的所有优点外,内部还具有8K的在系统可编程FLASH存储器,低功耗的空闲和掉电模式,极大的降低了电路的功耗,还包含了定时器、程序存储器、数据存储器等硬件,其硬件能符合整个控制系统的要求,不需要外接其他存储器芯片和定时器件,方便地构成一个最小系统。

整个系统结构紧凑,抗干扰能力强,性价比高。

P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)RST:复位输入。

万年历设计报告

万年历设计报告

万年历设计1、设计目的:1、学会对单片机外围电路的使用。

2、熟悉使用proteus电路仿真软件。

3、熟悉使用KILE C语言编程软件。

4、了解数字万年历的工作原理及其组成。

2、设计任务:1、显示年月日时分秒及星期信息2、具有可调整日期和时间功能3、增加闰年计算功能3、方案比较:用单片机设计电子时钟通常有两种方法:一是通过单片机内部的定时器或者计数器。

这种方法硬件线路简单,采用软件编程实现时钟计数,一般称为软时钟。

系统的功能一般与软件设计有关,通常用在对时间精度要求不高的场合;二是采用时钟芯片,它的功能强大,功能部件集成在芯片内部,自动产生时钟等相关功能。

硬件成本相对较高,软件编程简单。

通常使用在对时钟精度要求较高的场合。

本次设计采用第一种方法4、设计方案4.1 设计原理:本方案有的时间脉冲由单片机内部的定时器/计数器产生,所以硬件电路相对简单,由单片机产生时钟信号,通过程序分别产生年月日时分秒,同时可以区分闰年闰月,加送数码管显示,同时加上按键电路,可以对年月日时分秒进行调整,还有清零。

4.2硬件设计:图1如图1该电路由51单片机为核心,使用数码管显示,按键电路进行调整,考虑到单片机P0口的驱动能力不足的情况,使用上拉电阻提升驱动能力。

4.3软件设计:仿真开始,先初始化系统时间加送数码管显示,然后判断按键是否按下,如果按下,就表明要对时间进行调整,接下来则显示调整完的时间,如果没有按下,则显示初始时间。

5、设计结果图2如图2所示,数码管阵列第一列显示年月日,第二列显示时分秒,按键电路从上到下分别为复位,秒分时日月年的调整按键。

每当秒到60则分进位,同理,分满时进位,时满日进位,日满月进位,月满年进位,还可以区分闰年闰月。

6、总结和个人体验通过该课程设计很好的掌握了KILE,proteus两个和专业相关的软件,极大的拓宽了自己的知识宽度,期间产生的问题都与老师一起讨论得到了很好的解决,这对自己的问题阐述能力以及解决问题的能力都有很大的提升。

万年历的课程设计报告及程序

万年历的课程设计报告及程序

第一部分:正文一,课程设计名称:1.万年历2.(a) (b)* **** *** ***** ***** ************** ***** ***** *** **** * ********* **** **** *** *** ** ** * * ** ** *** *** **** **** *********二,使用工具软件:Microsoft Visual Basic 6.0 中文版。

三,课程设计内容简介:(1)万年历的课程设计的基本结构流程:从main函数开始,比如输入2001年,调用函数yearshow,它是控制总循环次数12个月的,在yearshow里有调用了以个函数是monthshow,是控制每个月如何输出显示的,在这个函数里有调用了getmonthweekday函数,它是获得每个月一号是星期几的函数,此函数分为两部分,以2000年1月1号是星期六为准;做十一次运算便可得知2月到12月各个月的1号为星期几。

而在这个函数又调用了getyearday这个函数,是返回天数的函数,它有调用了isleap函数,计算时平年还是闰年是,时闰年返回366,平年返回355。

到这步开始就返回值了,首先isleap告诉getyeardays2000是闰年和平年,于是getyeardays得到366getyearweekday,getyearweekday 就计算sum=366且返回(366+6)%7=2给getmonthweekday,w=2,getmonthweekday中若计算1月1号则为星期二,2月-12月中如3月则要加上以月和二月的天数载加上2对7取余数,这个数返回给monthshow,若这个数是w=0;不输出空格,不等于0就输出w-1个空格,以便日期和星期对应,如此循环十二个月就计算完了,一边计算一遍显示。

(2)(a)图形的课程设计的基本结构流程(3)(b)图形的课程设计的基本结构流程(4)运行环境:Win32 Console Application四,得意之处.1把程序分解成多个小函数,那么问题就分解成几个小问题。

万年历课程设计

万年历课程设计

万年历课程设计一、课程目标知识目标:1. 学生能理解万年历的基本概念,掌握年、月、日的关系及其计算方法。

2. 学生能运用所学知识,制作并解释简单的阴阳历、阳历和阴历。

3. 学生能通过实例分析,了解不同文化背景下时间记录方式的异同。

技能目标:1. 学生能够运用万年历知识,解决生活中的实际问题,如日期推算、节日计算等。

2. 学生通过小组合作,提高沟通协调能力,共同完成万年历的制作。

3. 学生能够运用信息技术,收集、整理万年历相关资料,提高信息处理能力。

情感态度价值观目标:1. 学生培养对时间管理的重视,养成珍惜时间、合理安排时间的良好习惯。

2. 学生通过学习不同文化背景下的时间记录方式,增强对多元文化的尊重和理解。

3. 学生在合作探究过程中,培养团队协作精神,提高问题解决能力和自信心。

课程性质:本课程为实践性、综合性课程,结合数学、历史、文化等多学科知识,旨在培养学生的综合素质。

学生特点:六年级学生具备一定的数学基础和动手操作能力,对新鲜事物充满好奇,善于合作交流。

教学要求:注重理论与实践相结合,以学生为主体,激发学生兴趣,引导学生主动探究,培养学生的实践能力和创新精神。

通过课程目标的分解,使学生在学习过程中达到预期的学习成果,为后续教学设计和评估提供依据。

二、教学内容1. 万年历的基本概念- 日期的组成:年、月、日- 阴阳历、阳历、阴历的定义及特点2. 年月日的关系及计算- 平年、闰年的判断- 月份数与天数的对应关系- 日期推算方法3. 不同文化背景下时间记录方式- 我国古代的时间记录方法- 西方阳历的发展及现行公历- 世界各地阴历的运用4. 万年历的制作与应用- 制作方法:手工绘制与电子表格- 实际应用:节假日计算、纪念日查询等5. 教学内容的安排与进度- 第一课时:万年历的基本概念,日期的组成- 第二课时:年月日的关系及计算方法- 第三课时:不同文化背景下时间记录方式- 第四课时:万年历的制作与应用,实践操作教学内容依据课程目标,结合教材章节进行组织,确保科学性和系统性。

万年历设计报告

万年历设计报告

课程论文报告——万年历学院:计算机与信息工程学院班级:12级通信3班学号:20124756姓名:王智1.引言万年历是我国古代传说中最古老的一部太阳历。

为纪念历法编撰者万年的功绩,便将这部历法命名为“万年历”。

而现在所使用的万年历,实际上就是记录一定时间范围内(比如100年或更多)的具体阳历或阴历的日期的年历,方便有需要的人查询使用,与原始历法并无直接联系。

而随着微电子技术的高速发展,人类用于计时的工具也在不断发展更新,单片机技术的出现使得万年历有了新的发展方向。

单片机以其体积小、功能全、性价比高等诸多优点,在工业控制、家用电器、通信设备、信息处理、尖端武器等各种测控领域的应用中独占鳌头,单片机开发技术已成为电子信息、电气、通信、自动化、机电一体化等专业技术人员必须掌握的技术。

目前世界上单片机年产量已达十多亿片,通常是当年微处理器产量的4-5倍以上。

用最少的芯片就能实现最强大的功能,这是将来电子产品的主流方向,它将无可置疑地一步步取代其它同类产品,其数量之大和应用面之广,是其它任何类型的计算机所无法比拟的。

以基于单片机的万年历作为设计的课题,因为它有很好的开放性和可发挥性,对作者的要求比较高,不仅考察了对单片机的掌握能力而且强调了对单片机扩展的应用。

另外液晶显示的万年历已经越来越流行,特别适合在家庭居室、办公室、大厅、会议室、车站和广场等地方使用,它具有显示清晰直观、走时准确、可以进行夜视等功能,并且还可以扩展出其它多种功能。

所以,电子万年历作为设计课题很有价值。

2.内容设计A,单片机芯片选择:采用STC89C52芯片,STC89C52是一种低功耗、高性能的8位CMOS微控制器,具有8K的可编程Flash存储器。

同样具有AT89S51的功能,且具有在线编程可擦除技术,当对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,不需要对芯片多次拔插,所以不会对芯片造成损坏,因此选择采用STC89C52作为主控制系统核心。

万年历课程设计

万年历课程设计

万年历课程设计一、课程目标知识目标:1. 学生能够理解万年历的基本概念,掌握年、月、日的关系及其换算方法。

2. 学生能够运用所学的知识,制作并解释简单万年历,了解闰年和平年的判断规则。

3. 学生能够解释生活中的时间单位,如时、分、秒,并掌握它们之间的换算。

技能目标:1. 学生通过实际操作,学会制作和应用简单万年历,提升解决问题的能力和动手实践能力。

2. 学生能够运用万年历进行日期查询和推算,增强逻辑思维和计算能力。

3. 学生通过合作交流,提高表达和沟通能力,培养团队协作精神。

情感态度价值观目标:1. 学生培养对时间管理和计划安排的意识,养成珍惜时间、合理规划的好习惯。

2. 学生在学习过程中,体验探索和发现的乐趣,激发对自然科学和数学的兴趣。

3. 学生通过了解不同文化背景下的时间观念,增强跨文化理解和尊重多元文化的态度。

课程性质:本课程以实践性、探究性和趣味性为主要特点,结合数学、自然科学和社会文化知识,帮助学生建立时间观念,提高综合运用知识的能力。

学生特点:考虑到学生的年级特点,课程设计将注重直观演示和实际操作,以激发学生的兴趣和好奇心,同时结合学生的认知水平,逐步引导他们掌握万年历的制作和应用。

教学要求:教师在教学过程中,应关注学生的个体差异,提供个性化的指导和支持。

课程设计应注重培养学生的动手能力、逻辑思维能力和团队协作能力,确保学生能够达到预定的学习目标。

二、教学内容1. 年、月、日的概念及其关系- 介绍年、月、日的定义和相互关系。

- 年份的种类:闰年和平年的区别及判断方法。

2. 万年历的制作原理- 探索如何将日历与天文数据相结合,介绍格里高利历的基本原理。

- 学习如何通过计算确定每个月的天数,以及如何安排闰年的2月。

3. 日期的换算与查询- 学习日期的换算方法,如年与日、日与星期等。

- 实践操作:使用万年历进行日期查询和推算。

4. 实际应用与时间管理- 讨论如何利用万年历进行时间规划和管理。

万年历课程设计报告

万年历课程设计报告

万年历课程设计报告一、课程目标知识目标:1. 学生能够理解万年历的基本概念,掌握年、月、日的关系及其换算方法。

2. 学生能够运用所学知识,独立制作并使用简易的万年历。

3. 学生了解我国农历与公历的区别及相互转换方法。

技能目标:1. 培养学生运用数学知识解决实际问题的能力,提高逻辑思维和推理能力。

2. 培养学生动手操作和团队协作能力,通过制作万年历的过程,锻炼实践操作技能。

情感态度价值观目标:1. 培养学生对时间管理的重视,树立珍惜时间的观念。

2. 增强学生对传统文化的认识,激发对中国古代天文历法的兴趣。

3. 培养学生积极探究、合作交流的良好学习态度,提高学习自信心。

课程性质分析:万年历课程属于数学与生活相结合的综合性课程,旨在让学生在实际问题中运用数学知识,提高解决实际问题的能力。

学生特点分析:考虑到学生所在年级的特点,课程内容应以直观、生动、有趣的方式进行设计,注重培养学生的动手操作能力和团队协作精神。

教学要求:1. 教师应充分准备教学资源,提供丰富的实例,引导学生主动参与学习过程。

2. 教学过程中,教师要以学生为主体,关注学生的个体差异,给予个性化指导。

3. 教师要关注学生的学习反馈,及时调整教学策略,确保课程目标的达成。

二、教学内容1. 年、月、日的关系及其换算方法- 公历与农历的基本概念- 年、月、日的定义及其相互关系- 闰年和平年的判断方法2. 简易万年历的制作- 万年历的基本结构- 制作步骤及注意事项- 万年历的使用方法3. 我国农历与公历的转换方法- 农历与公历的对应关系- 农历日期的推算方法- 二十四节气的计算与应用教学大纲安排:第一课时:导入万年历的概念,介绍年、月、日的关系及其换算方法,讲解闰年和平年的判断方法。

第二课时:指导学生动手制作简易万年历,掌握万年历的基本结构和使用方法。

第三课时:学习我国农历与公历的转换方法,了解二十四节气的计算与应用。

教材章节:《数学》教科书:第四章 时间与测量,第四节 万年历的制作与应用。

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

.课程设计(基于51单片机的电子万年历)题目:万年历课程设计院(系)成都农业科技职业学院信息技术分院专业应用电子技术班级14电子2班学生姓名黄攀学号 2指导老师陈一虎、雷永辉日期2016年6月目录绪论 (Ⅰ)1项目概述(项目组成,功能) (1)1.1硬件部分 (2)1.2软件部分 (2)2项目原理分析 (3)2.1原理框图 (3)2.2原理分析 (3)2.3系统关键元器件选择 (4)2.4项目印制板设计过程心得 (5)3系统的软件设计与实现 (6)3.1程序流程框图 (6)3.2 子程序的设计 (7)4项目软硬件联调 (10)4.1印制板图 (10)4.2原理图 (10)4.3 DXP图 (11)4.4系统调试 (11)5总结 (12)参考文献 (12)绪论电子万年历是实现对年,月,日,时,分,秒数字显示的计时装置,广泛用于个人家庭,车站,码头,办公室,银行大厅等场所,成为人们日常生活中的必需品。

数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度远远超过老式钟表。

钟表的数字化给人们生产生活带来了极大的方便,在此基础上完成的万年历精度高,功能易于扩展。

可扩展成为诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等电路。

所有这些,都是以钟表数字化为基础的。

因此,研究数字时钟及扩大其应用有着非常现实的意义。

本设计就是数字时钟简单的扩展应用。

1项目概述本设计基于AT89s51单片机,结合DS1302时钟芯片设计了一个数字万年历,显示部分用数码管动态显示,初始时间可由按键设置,此外还具有温度显示功能,掉电保护功能。

万年历还具有节能模式,具有很强的实用性。

关键词:单片机万年历数码管显示温度万年历设计项目组成与功能1.1硬件部分硬件部分主要由AT89S52单片机,LED显示电路,以及调时按键电路等组成。

在单片机的选择上使用AT89S52单片机,该单片机适合于许多较为复杂控制应用场合。

采用4-16译码器作为选择端,控制共阴数码管动态显示,结合时钟芯片DS1302和温度传感器18B20显示时间和温度。

制作前在Proteus软件中嵌入单片机内进行仿真可以更好的进行硬件布局。

1.2软件部分软件方面主要包括日历程序、时间调整程序,显示程序等。

程序采用C语言编写,以便更简单地实现调整时间及阴历显示功能。

所有程序编写完成后,在keil软件中进行调试,确定没有问题后,在Proteus软件中嵌入单片机内进行仿真。

2项目原理分析2.1原理框图2.2原理分析:以STC15F2K60S2单片机为核心,起着控制作用。

系统包括LCD12864液晶显示电路、复位电路、时钟电路、温湿度采集电路、按键调整子函数、按键提示音电路、报警指示灯电路和时钟芯片电路。

设计思路分为九个模块:复位电路、晶振电路模块、STC15F2K60S2、LCD12864液晶显示电路、温湿度采集电路、按键调整子函数、按键提示音电路、报警指示灯电路和时钟芯片电路这九个模块。

2.3 系统关键元器件选择2.3.1单片机芯片:采用STC15F2K60S2,片内ROM全都采用Flash ROM;能以3V 的超低压工作;同时也与MCS-51系列单片机完全该芯片内部存储器为60KB ROM 存储空间,同样具有89C51的功能,且具有在线编程可擦除技术。

所以选择采用STC15F2K60S2作为主控制系统。

2.3.2 显示模块:采用LED数码管动态扫描,LED数码管价格适中,对于显示数字最合适,而且采用动态扫描法与单片机连接时,占用的单片机口线少。

所以采用了LED数码管作为显示。

2.3.3时钟芯片采用DS12C887时钟芯片实现时钟,DS12C887芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、周、月、年以及闰年补偿的年进行计数,而且精度高,位的RAM做为数据暂存区,工作电压2.5V~5.5V范围内,2.5V时耗电小于300nA。

所以采用DS12C887时钟芯片实现时钟。

2.4项目印制板设计过程心得在印制板设计中,深刻体会到理论和实践相集合的重要性。

虽然之前收集了大量的资料但在实际应用中却有很大差异,出现了许多意想不到的问题。

但经过长时间的摸索最终还是设计出达到要求的系统。

3.系统的软件设计与实现3.1程序流程框图图4.1程序流程框图3.2 子程序的设计时钟芯片程序void write_ds(uchar add,uchar date){DS_AS=1;DS_DS=1;DS_RW=1;P0=add;DS_AS=0;DS_RW=0;P0=date;DS_RW=1;DS_AS=1;}uchar read_ds(uchar add){uchar ds_date;DS_AS=1;DS_DS=1;DS_RW=1;P0=add;DS_AS=0;DS_DS=0;P0=0XFF;ds_date=P0;DS_DS=1;DS_AS=1;return ds_date;}void Init12887(){write_ds(0X0a,0x2f);write_ds(0x0b,0x06);write_ds(0x0c,0);}void ReadTime(){uchar temp;temp=read_ds(CENTURY);Time[0]=temp/10;Time[1]=temp%10;temp=read_ds(YEARS);Time[2]=temp/10;Time[3]=temp%10;temp=read_ds(MONTHS);Time[4]=temp/10;Time[5]=temp%10;temp=read_ds(DAYS);Time[6]=temp/10;Time[7]=temp%10;temp=read_ds(HOURS);Time[8]=temp/10;Time[9]=temp%10;temp=read_ds(MINUTES);Time[10]=temp/10;Time[11]=temp%10;temp=read_ds(SECONDS);Time[12]=temp/10;Time[13]=temp%10;}12864驱动#include <define.h>//延时//12MHZ?? ??50??void delay50us(uint t){uchar j;for(;t>0;t--)for(j=19;j>0;j--);}/*------------------查忙-----------------------------*/ void chkbusy(){rs=0;rw=1;e=1;P0=0xff ;while((P0&0x80)==0x80);e=0;}/*------------------写指令-----------------------------*/ void writecom(uchar com)chkbusy();rw=0;rs=0;delay50us(1);P0=com;e=1;delay50us(10);e=0;delay50us(10);}/*------------------写数据-----------------------------*/ void writedat(uchar dat){chkbusy();rw=0;rs=1;delay50us(1);P0=dat;e=1;delay50us(10);e=0;delay50us(10);}4项目软硬件联调4.1印制板图4.2电路原理图4.3 DXP图4.4系统调试打开Proteus 软件,按照方案所选的电路元件来设计整体电路,线把个芯片按一定的位置放好,然后对相应的对象进行连接,连接时需仔细,以免调试时发生错误。

做好之后把编程所生成的。

HEX文件加载到STC15F2K60S2中,运行仿真软件,查看运行效果。

如果运行出错那么就根据他相应的提示来修改错误,直到仿真成功为止5 总结经过这段时间的万年历的设计,让我受益菲浅。

取之长、补之短,在今后的学习和工作中有所受用。

通过本次课程设计,我更加扎实的掌握了有关集成电路设计应用方面的知识,虽然在设计中遇到了许多棘手的问题,但经过认真的思考,仔细的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。

鉴于此,我会更加努力的学习以充实自己。

本次课程设计不仅培养了我科学严谨的学习态度与独立思考、勤于动手的能力,而且还培养了我们的团队协作精神。

使我认识到团结就是力量,只有互相之间默契融洽的配合才能换来最终完美的结果。

相信这次课程设计过后,我的理论水平和实践动手能力都会有一个质的飞跃,也为今后的实践与理论课程的学习打下了坚实的基础。

当然设计能够做到这样的完美,也离不开大家的悉心指导、点化和无私的帮助。

在此表示深深地感谢,也由衷的祝愿你们身体健康,工作顺利,心想事成,万事如意。

参考文献[1]李群芳,张士军,黄建.单片微型计算机与接口技术. 北京:电子工业出版社,2008[2]李群芳.单片机原理接口与应用.北京:清华大学出版社,2005[3]张迎新.单片微型计算机原理、应用及接口技术.北京:国防工业出版社,1999[4]高峰.单片微机应用系统设计及使用技术.北京:机械工业出版社,2007 [5]彭伟.单片机c语音程序设计实例基于protues仿真.北京:电子工业出版社,2007 [7]张冬林,李鑫,戴梅.基于DHT11的。

相关文档
最新文档