数字万年历课程设计报告

合集下载

万年历课程设计报告报告

万年历课程设计报告报告

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>程序运行测试①进入程序界面:。

数字万年历实训报告电气

数字万年历实训报告电气

一、实训目的随着科技的不断发展,电子产品的应用越来越广泛。

数字万年历作为一种常见的电子设备,具有显示日期、星期、农历、节假日等多种功能,给人们的生活带来了极大的便利。

为了更好地掌握电子产品的设计原理和制作方法,提高自身的实践能力,本次实训旨在通过设计和制作数字万年历,使学生对电子技术、电路设计、编程等方面有一个全面的认识和掌握。

二、实训内容1. 数字万年历的设计(1)功能需求分析根据用户需求,数字万年历应具备以下功能:1)显示日期、星期、农历、节假日等信息;2)具有闹钟功能,可设定闹钟时间、闹钟音量等;3)具有定时关机功能,可根据用户需求设定关机时间;4)具备背光功能,便于夜间使用;5)具有定时更新功能,可自动更新农历、节假日等信息。

(2)硬件设计1)主控芯片:选用STM32F103系列单片机,具有丰富的片上资源,易于编程和控制。

2)显示模块:采用TFT LCD显示屏,显示效果清晰,支持触摸操作。

3)按键模块:采用独立按键,实现功能选择、闹钟设置、关机等操作。

4)时钟模块:采用DS3231实时时钟模块,提供高精度的时间测量和闹钟功能。

5)背光模块:采用LED背光,可调节亮度,满足不同环境需求。

6)电源模块:采用DC-DC转换器,将5V输入电压转换为3.3V输出电压,为电路提供稳定电源。

(3)软件设计1)系统初始化:初始化各个模块,包括显示模块、按键模块、时钟模块等。

2)主循环:根据用户操作,实现功能切换、闹钟设置、关机等功能。

3)闹钟功能:实现闹钟时间设置、闹钟音量调节、闹钟提醒等功能。

4)定时关机功能:根据用户设置,实现定时关机功能。

5)背光功能:实现背光亮度调节,满足不同环境需求。

6)定时更新功能:自动更新农历、节假日等信息。

2. 数字万年历的制作(1)焊接电路板:按照电路图,焊接各个模块,确保电路连接正确。

(2)编程:使用Keil uVision5开发环境,编写STM32F103单片机程序,实现数字万年历的功能。

多功能数字万年历课程设计

多功能数字万年历课程设计
5.2用PROTEUS对电子万年历的硬件电路设计1..4
5.3用PROTEUS进行电子万年历的仿真测试15
结论1..7..
致谢18
参考文献19
附录20
1
1.1
随着科技的快速发展,时间的流逝,从观太阳、摆钟到现在电子钟,人类不断研究,不 断创新纪录。它可以对年、月、日、时、分、秒进行计时,还具有闰年补偿等多种功能, 而且DS1302的使用寿命长,误差小。对于数字电子万年历采用直观的数字显示,可以同 时显示年、月、日、时、分、秒和温度等信息, 还具有时间校准等功能。 该电路采用AT89C51单片机作为核心,功耗小,能在3V的低压工作,电压可选用3~5V电压供电。
(8)软件设计时必须要有完善的思路,要做到程序简单,调试方便。
2
单片机电子万年历的制作有多种方法,可供选择的器件和运用的技术也有很多种。所 以,系统的总体设计方案应在满足系统功能的前提下,充分考虑系统使用的环境,所选的 结构要简单使用、易于实现,器件的选用着眼于合适的参数、稳定的性能、较低的功耗以 及低廉的成本。
对Flash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过多特殊功能寄存器(SFR)区中的8EH单元的D0位置,可禁止ALE操作。该位置后,只有一条MOVX和MOVC指令ALE才会被激活。另外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE无效。
PSEN:程序存储允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C51
2.1
系统的功能往往决定了系统采用的结构,经过成本,性能,功耗等多方面的考虑决定 用三个8位74LS164串行接口外接LED显示器,RESPACK-8对单片机AT89C51进行供电,时间芯片DS1302连接单片机AT89C51。从而实现电子万年历的功能。

数字万年历课程设计

数字万年历课程设计

《数字万年历》课程设计报告专业:自动化班级:*****姓名:*****指导老师:*****二零一一年六月摘要在当代繁忙的工作与生活中,时间与我们每个人都有非常密切的关系,每个人都被时间影响着,我们必须对时间有个度量,因此设计万年历来记录时间,本设计采用AT89C51和DS1302实时时钟芯片进行万年历电路设计和软件设计,该万年历能实现能够实现年、月、日、时、分的显示,也可以人为校正时间,初始时间:2000 01 01 12.00。

本次设计以12MHZ晶振与AT89C51相连,通过编程实现以24小时为一周期,利用单片机的定时器和计数器产生定时效果,通过编程产生数字时钟效果,然后用数码管动态扫描显示内部处理的数据。

通过端口读入当前外部控制状态来改变程序的不同状态从而实现不同功能。

本次万年历设计以单片机为核心软硬件结合,使硬件部分大为简化,也提高了系统的稳定性。

关键词:万年历单片机DS1302目录一、方案的确定 (3)1.1单片机芯片的选择方案 (3)1.2显示方案 (3)1.3时钟芯片的选择方案 (5)二、系统的硬件设计与实现 (6)2.1电路设计框图 (6)2.2主要单元电路的设计 (7)2.2.1单片机主控制模块的设计 (7)2.2.2时钟电路模块的设计 (8)三、系统的软件设计 (9)3.1程序流程框图 (9)3.1.1电子时钟计算程序图 (10)3.1.2调整流程图 (11)3.2程序设计 (12)四、致谢词 (15)参考文献 (15)附录:proteus仿真图 (16)一.方案的确定1.1单片机芯片的选择方案方案1:采用89C51芯片作为硬件核心,采用Flash ROM,内部具有4KB ROM 存储空间,能于3V的超低压工作,而且与MCS-51系列单片机完全兼容,实验室学生用的较多的也较为熟悉的处理单元。

方案2:采用AT89S52,片内ROM全都采用Flash ROM;能以3V的超底压工作;同时也与MCS-51系列单片机完全该芯片内部存储器为8KB ROM 存储空间,同样具有89C51的功能,但AT89S52性价比不高。

万年历设计报告

万年历设计报告

万年历设计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两个和专业相关的软件,极大的拓宽了自己的知识宽度,期间产生的问题都与老师一起讨论得到了很好的解决,这对自己的问题阐述能力以及解决问题的能力都有很大的提升。

课程设计___数字万年历(显示温度星期)

课程设计___数字万年历(显示温度星期)

信息与电子工程学院课程设计报告目录一、课程设计概述 (3)1、课程设计背景 (3)2、课程设计内容 (3)二、方案的选择及确定 (3)2.1设计思路 (3)2.2设计方案 (3)2.3 方案比较论证 (3)三、系统硬件设计 (4)3.1总体硬件设计 (4)3.2 单片机主控制模块的设计 (4)3.3 时钟电路模块的设计 (5)3.4 温度采集模块设计 (6)3.5 功能按钮设计 (6)3.6 16*2 LCD1602液晶显示电路设计 (7)3.7总体电路图 (7)四、系统软件设计 (8)4.1 系统模块的功能分划分 (8)4.2 总体程序流程框图 (9)4.3 时钟调整时间的流程图 (9)4.4 修改键“UP”的功能流程图 (10)4.5温度转换流程图 (11)五、系统调试过程 (13)六、遇到的问题及解决方法/总结 (13)七、参考文献 (13)八、附录 (13)1、仪器与设备 (13)2、元器件清单 (14)3、原理图 (14)4、PCB图 (15)5、实物图 (15)6、操作说明书 (16)一、课程设计概述1、课程设计背景随着计算机技术的和控制系统的广泛应用,以及设备向小型化、智能化发展,单片机作为高新技术之一,以其体积小、功能强、价格低、使用灵活等优势,显示出了很强的生命力。

进入21世纪以来,开发推出单片机的公司很多,各种高性能单片机芯片市场异常活跃,新技术的不断采用,更加使单片机的种类、性能以及应用领域不断扩大和提高。

因其功耗低、超高型、低成本、功能完整,在国内越来越受到用户的重视和广泛使用。

2、课程设计内容要求设计的单片机作息时间控制钟完成以下功能:①实时显示当前温度;②实时显示当前时间;③实时显示当前日期;④能修改当前时钟二、方案的选择及确定2.1设计思路用STC89C52RC处理产生内部时钟数据或者读取外部时钟数据和采集外部传感器的信息进行处理,并暂时寄存在其内部的储存器中,再通过单片机调用内部RAM 的数据并送到LCD或者LED数码管上显示出来。

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

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

第一部分:正文一,课程设计名称: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把程序分解成多个小函数,那么问题就分解成几个小问题。

数字万年历课程设计

数字万年历课程设计

《数字万年历》学号:B10040221 姓名:李重阳本设计采用AT89C51和DS1302实时时钟芯片进行万年历电路设计和软件设计,该万年历能实现能够实现年、月、日、时、分的显示,也可以人为校正时间,初始时间:2000 01 01 12.00。

本次设计以12MHZ晶振与AT89C51相连,通过编程实现以24小时为一周期,利用单片机的定时器和计数器产生定时效果,通过编程产生数字时钟效果,然后用数码管动态扫描显示内部处理的数据。

通过端口读入当前外部控制状态来改变程序的不同状态从而实现不同功能。

本次万年历设计以单片机为核心软硬件结合,使硬件部分大为简化,也提高了系统的稳定性。

一.方案的确定1.1单片机芯片的选择方案采用89C51芯片作为硬件核心,采用Flash ROM,内部具有4KB ROM 存储空间,能于3V的超低压工作,而且与MCS-51系列单片机完全兼容1.2显示方案硬件方案:采用51单片机作为核心控制单元,采用7SEG-MPX6对时间进行显示,同时为了节省I/O口线采用MAX7221,方案设计的电路图如下图所示:1.3时钟芯片的选择方案采用DS1302时钟芯片实现时钟,DS1302芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、周、月、年以及闰年补偿的年进行计数,而且精度高, RAM 做为数据暂存区,工作电压2.5V ~5.5V 范围内,2.5V 时耗电小于300nA 。

二.系统的硬件设计与实现2.1电路设计框图:2.2主要单元电路的设计2.2.1单片机主控制模块的设计MCS-51单片机共有4个8位的I/O口(P0、P1、P2、P3),每一条I/O线都能独立地作输出或输入。

单片机的最小系统如下图所示,2.2.2时钟电路模块的设计下图为DS1302的引脚排列,其中Vcc1为后备电源,Vcc2为主电源。

在主电源关闭的情况下,也能保持时钟的连续运行。

DS1302由Vcc1或Vcc2两者中的较大者供电。

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

数字万年历课程设计报告课程名称:微机原理课程设计题目:万年历摘要随着电子技术的迅速发展,特别是随大规模集成电路出现,给人类生活带来了根本性的改变。

由其是单片机技术的应用产品已经走进了千家万户。

电子万年历的出现给人们的生活带来的诸多方便。

本文首先描述系统硬件工作原理,并附以系统结构框图加以说明,着重介绍了本系统所应用的各硬件接口技术和各个接口模块的功能及工作过程,其次,详细阐述了程序的各个模块和实现过程。

本设计以数字集成电路技术为基础,单片机技术为核心。

本文编写的主导思想是软硬件相结合,以硬件为基础,来进行各功能模块的编写。

本设计是一种基于STC89C51单片机控制,DS1302报时的数字时钟设计。

它具有多项显示和控制功能。

能用LCD实时显示当前年、月、日、星期、时间;可对时间进行调整;具有调整时间和日期功能。

本设计通过一个基于单片机的能实现万年历功能电子时钟的设计,从而达到学习、了解单片机相关指令在各方面的应用。

系统由主控制器AT89C51、时钟电路DS1302、显示电路、按键电路和复位电路等部分构成,能实现时钟日历显示的功能,能进行时、分、秒的显示。

关键词:STC89C52单片机、LCD液晶显示、DS1302时钟芯片目录一、设计任务与要求 ........................................................................... - 6 -1.1 设计任务 .............................................................................................. - 6 -1.2 设计要求 .............................................................................................. - 6 -1.3 发挥部分 .............................................................................................. - 6 -二、方案总体设计 ..................................................................................... - 7 -2.1 显示部分 .............................................................................................. - 7 -2.2 时钟信号的选择 .................................................................................. - 8 -2.3 总体方案 .............................................................................................. - 8 -三、硬件设计 ..................................................................................... - 10 -3.1 单片机最小系统 ................................................................................ - 10 -3.2 DS1302时钟电路............................................................................... - 17 -3.3 LCD液晶显示模块............................................................................ - 19 -3.4 按键电路 ............................................................................................ - 21 -3.5 电源指示灯部分 ................................................................................ - 25 -四、软件设计 ..................................................................................... - 26 -4.1 主程序流程图显示 ............................................................................ - 26 -4.2 时间设定程序流程图 ........................................................................ - 27 -五、系统仿真与调试 ......................................................................... - 29 -5.1 Proteus仿真软件简介 ....................................................................... - 29 -5.2 仿真及实物 ........................................................................................ - 31 -六、设计总结 ..................................................................................... - 34 -七、参考文献 ..................................................................................... - 35 -一、设计任务与要求1.1 设计任务基于52单片机的DS1302万年历;1.2 设计要求基于52单片机,利用DS1302时钟芯片生成万年历,使用液晶显示年月日时分秒,显示值可通过按键修改。

1.3 发挥部分1)添加了闹钟功能,可设置三个闹钟,闹钟时间可修改;2)闹钟铃声设置了四种,用户可自由选择;3)设计了菜单模式方便用户的操作;二、方案总体设计2.1 显示部分方案一:led数码管(LED Segment Displays)是由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。

led数码管常用段数一般为7段有的另加一个小数点,还有一种是类似于3位“+1”型。

位数有半位,1,2,3,4,5,6,8,10位等等,led数码管根据LED的接法不同分为共阴和共阳两类,了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。

图2是共阴和共阳极数码管的内部电路,它们的发光原理是一样的,只是它们的电源极性不同而已。

颜色有红,绿,蓝,黄等几种。

led数码管广泛用于仪表,时钟,车站,家电等场合。

选用时要注意产品尺寸颜色,功耗,亮度,波长等。

方案二:采用LCD显示。

LCD液晶显示具有丰富多样性、灵活性、电路简单、易于控制而且功耗小等优点,对于信息量多的系统,是比较适合的。

鉴于上述原因,我们采用方案二。

2.2 时钟信号的选择数字时钟是本设计的核心的部分。

根据需要可采用以下两种方案实现:方案一:直接采用单片机定时计数器提供秒信号,使用程序实现年、月、日、星期、时、分、秒计数。

采用此方案虽然减少芯片的使用,节约成本,但是,实现的时间误差大。

方案二:采用DS1302时钟芯片实现时钟,DS1302芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、周、月、年进行计数,而且精度高,位的RAM做为数据暂存区,工作电压 2.5——5.5V,2.5V时耗电小于300nA。

基于时钟芯片的上述优点,本设计采用方案二完成数字时钟的功能。

2.3 总体方案设计总体框架图如图1所示,按照系统设计的要求和功能,将系统分为主控模块、时钟电路模块、按键扫描模块、LCD显示模块、电源电路、复位电路、晶振电路几个模块,系统框图如图1所示。

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

STC89C52R 复位电路晶振电路时钟电路按键扫描LCD液晶显图1 基于STC89C52单片机的电子万年历系统框图按照系统设计的要求和功能,将系统分为主控模块、时钟电路模块、按键扫描模块、LCD 显示模块、电源电路、复位电路、晶振电路几个模块,系统框图如图1所示。

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

三、硬件设计硬件设计是在单片机最小系统的基础上增加DS1302时钟电路、1602液晶电路、按键电路和电源指示灯模块,各模块详细介绍如下。

3.1 单片机最小系统STC89C52为40引脚双列直插芯片,有四个I/O口P0,P1,P2,P3,每一条I/O线都能独立地作输出或输入。

单片机的最小系统如下图所示,18引脚和19引脚接晶振电路,XTAL1接外部晶振和微调电容的一端,在片内它是振荡器倒相放大器的输入,XTAL2接外部晶振和微调电容的另一端,在片内它是振荡器倒相放大器的输出。

第9引脚为复位输入端,接上电容,电阻及开关后够上电复位电路,20引脚为接地端,40引脚为电源端。

如下图所示:图2 单片机管脚定义1)P0口:P0口为一个8位漏级开路双向I/O 口每脚可吸收8TTL门电流。

当P0口的管脚第一次写1时,被定义为高阻输入。

P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。

在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须接上拉电阻。

相关文档
最新文档