数字万年历课程设计报告.doc_第1页
数字万年历课程设计报告.doc_第2页
数字万年历课程设计报告.doc_第3页
数字万年历课程设计报告.doc_第4页
数字万年历课程设计报告.doc_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程名称: 微机原理课程设计 题 目: 万年历 摘要随着电子技术的迅速发展,特别是随大规模集成电路出现,给人类生活带来了根本性的改变。由其是单片机技术的应用产品已经走进了千家万户。电子万年历的出现给人们的生活带来的诸多方便。本文首先描述系统硬件工作原理,并附以系统结构框图加以说明,着重介绍了本系统所应用的各硬件接口技术和各个接口模块的功能及工作过程,其次,详细阐述了程序的各个模块和实现过程。本设计以数字集成电路技术为基础,单片机技术为核心。本文编写的主导思想是软硬件相结合,以硬件为基础,来进行各功能模块的编写。本设计是一种基于STC89C51单片机控制,DS1302报时的数字时钟设计。它具有多项显示和控制功能。能用LCD实时显示当前年、月、日、星期、时间;可对时间进行调整;具有调整时间和日期功能。本设计通过一个基于单片机的能实现万年历功能电子时钟的设计,从而达到学习、了解单片机相关指令在各方面的应用。系统由主控制器AT89C51、时钟电路DS1302、显示电路、按键电路和复位电路等部分构成,能实现时钟日历显示的功能,能进行时、分、秒的显示。关键词:STC89C52单片机、LCD液晶显示、DS1302时钟芯片目录一、设计任务与要求- 4 -1.1 设计任务- 4 -1.2 设计要求- 4 -1.3 发挥部分- 4 -二、方案总体设计- 5 -2.1 显示部分- 5 -2.2 时钟信号的选择- 5 -2.3 总体方案- 5 -三、硬件设计- 7 -3.1 单片机最小系统- 7 -3.2 DS1302时钟电路- 10 -3.3 LCD液晶显示模块- 11 -3.4 按键电路- 12 -3.5 电源指示灯部分- 14 -四、软件设计- 15 -4.1 主程序流程图显示- 15 -4.2 时间设定程序流程图- 16 -五、系统仿真与调试- 17 -5.1 Proteus仿真软件简介- 17 -5.2 仿真及实物- 18 -六、设计总结- 21 -七、参考文献- 22 -一、设计任务与要求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.55.5V,2.5V时耗电小于300nA。基于时钟芯片的上述优点,本设计采用方案二完成数字时钟的功能。2.3 总体方案设计总体框架图如图1所示,按照系统设计的要求和功能,将系统分为主控模块、时钟电路模块、按键扫描模块、LCD显示模块、电源电路、复位电路、晶振电路几个模块,系统框图如图1所示。主控模块采用STC89C51单片机,按键模块用4个按键,用于调整时间,显示模块采用LCD1602,时钟电路模块采用DS1302实时时钟实现对时间,日期的操作。图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外部必须接上拉电阻。 2) P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为低八位地址接收。3) P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。4) P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口:P3.0 RXD(串行输入口);P3.1 TXD(串行输出口);P3.2 /INT0(外部中断0);P3.3 /INT1(外部中断1);P3.4 T0(记时器0外部输入);P3.5T1(记时器1外部输入);P3.6 /WR(外部数据存储器写选通);P3.7 /RD(外部数据存储器读选通);P3口同时为闪烁编程和编程校验接收一些控制信号。5) RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。6) ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。7) /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。8) /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。9) XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。10) XTAL2:来自反向振荡器的输出。振荡器特性:XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。图3 单片机最小系统l 晶振电路时钟振荡电路图3所示,时钟振荡电路用于产生单片机正常工作时所需要的时钟信号,电路由两个20pF的瓷片电容和一个12MHz的晶振组成,并接入到单片机的XTAL1和XTAL2引脚处,使单片机工作于内部振荡模式。此电路在加电后延迟大约10ms振荡器起振,在XTAL2引脚产生幅度为3V左右的正弦波时钟信号,其振荡频率主要由石英晶振的频率决定。时钟振荡电路如图3所示。图4 STC89C52晶振电路l 复位电路复位电路由电阻和极性电容组成,如图4所示,通过高电平使单片机复位,在时钟电路开始工作后,当高电平的时间超过大约2us时,即可实现复位。此复位电路同时具备了上电复位和手动复位的功能,上电复位发生在开机加电时,由系统自动完成,手动复位通过一个按键来实现,在程序运行时,若遇到死机,死循环或程序“跑飞”等情况,通过手动复位就可以实现重新启动的操作。手动按钮复位需要人为在复位输入端RST上加入高电平。一般采用的办法是在RST端和正电源VCC之间接一个按钮以及在RST端和地之间接一个电阻,如图所示,当人为按下按钮时,则VCC的+5V电平就会直接加到RST端,由于人的动作再快也会使按钮保持接通达数十毫秒,只要满足复位时间超过两个机器周期就可以,所以,完全能够满足复位的时间要求。这里晶振大小选用12MHz,电容选用两个20pf的瓷片电容。图5 复位电路3.2 DS1302时钟电路DS1302是美国DALLAS公司推出的具有涓细电流充电能力的低功耗实时时钟电路DS1302的结构、工作原理及其在实时显示时间中的应用。它可以对年、月、日、周日、时、分、秒进行计时,且具有闰年补偿等多种功能。DS1302的引脚排列,其中Vcc1为后备电源,VCC2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。图6 DS1302管脚定义X1和X2是振荡源,外接32.768kHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在Vcc2.5V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。I/O为串行数据输入输出端(双向),SCLK为时钟输入端。时钟电路主要由时钟芯片DS1302、晶振等几部分组成,DS1302采用3线串行接口,占用引脚少,如图6所示;DS1302的接口电路如图7所示。图7 DS1302时钟电路3.3 LCD液晶显示模块LCD1602简介1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。图8为实物图图8 1602液晶实物图显示电路采用LCD1602液晶显示,如图6所示。3脚用于调节LCD1602的背光,4、5、6为LCD1602的控制口,用于控制其写入或是读出指令,7至14脚为LCD1602的数据口,将数传送到LCD1602中。图9为LCD接口电路图。图9 1602液晶接口电路3.4 按键电路在正常状态下LCD1602显示时钟,当按下K4时,液晶显示菜单模式,下面就配合各菜单下按键的作用对数字钟功能进行一一地说明。菜单模式:主菜单中有Time,Clock,Music,BACK四个子菜单。K1:进入Time子菜单K2:进入Clock子菜单K3:进入Music子菜单K4:退回时钟显示界面1)Time子菜单:注意:进入Time子菜单模式,设置完之后,需要退回到时钟显示界面才能再次进行调整,但可以进入其他子菜单进行设定。当前已进入调整时间模式,通过按键可以进行表示时间的各项参数的调节。K1:切换光标位置,光标所在位置便可以通过K2进行参数调节,光标走向为沿八字形循环移动。K2:对光标所在的时间参数进行调节,且根据不同的时间参数有不同的调节范围,如小时的十位只有0,1,2的取值,且当小时的十位为2时,小时的个位只能取0,1,2,3,4。被调节的参数在其调节范围内循环改变。K3:保存当前设定的时间,并且有”Save Ok”字样提醒用户修改生效,此键按下后退回到主菜单。K4:不保存当前设定的时间,并且有”Not Save”字样提醒用户修改无效,此键按下后退回到主菜单。2)Clock子菜单:可实现年月日时分秒周的定时!注意:进入Clock子菜单模式,设置完之后,需要退回到时钟显示界面才能再次进行调整,但可以进入其他子菜单进行设定。当闹钟响时,按任意键退出。当前已进入设置闹钟模式,通过按键可以进行3个闹钟时间的设定。K1:切换光标位置,光标所在位置便可以通过K2进行参数调节,光标走向为沿八字形循环移动。K2:对光标所在的时间参数进行调节,且根据不同的时间参数有不同的调节范围,如小时的十位只有0,1,2的取值,且当小时的十位为2时,小时的个位只能取0,1,2,3,4。被调节的参数在其调节范围内循环改变。K3:切换闹钟,在3个闹钟之间循环切换,切换时,若切换前闹钟被修改,便会有”Svae Yes or No”字样提醒是否修改切换前的闹钟,在此字样下,K3代表Yes,K4代表No,K3按下便是使被修改的闹钟生效,K4则是不保存修改,K3或K4被按下后便切换到下一个闹钟K4:用于退出Clock模式,在退出Clcok模式前,如果当前显示的闹钟被修改,便会跳出便会有”Svae Yes or No”字样提醒是否修改切换前的闹钟,在此字样下,K3代表Yes,K4代表No,K3按下便是使被修改的闹钟生效,K4则是不保存修改,K3或K4被按下后便回到主菜单界面。3)Music子菜单:当前已进入设置闹铃模式,通过按键可以进行闹铃的设定,注意三个闹钟对应同样的闹铃K1:选择song1作为闹铃,此键按下后自动退出到显示时钟界面。K2:选择song2作为闹铃,此键按下后自动退出到显示时钟界面。K3:选择song3作为闹铃,此键按下后自动退出到显示时钟界面。K4:选择song4作为闹铃,此键按下后自动退出到显示时钟界面。按键电路连接图如图10所示:图10 按键电路3.5 电源指示灯部分电源指示灯部分包括一个开关,发光二级管和限流电阻。当电源接通时发光二级管点亮,表明电路已上电。图11 电源模块四、软件设计4.1 主程序流程图显示主程序首先初始化定时器、LCD1602及DS1302,然后就开始查询按键,有键按下则开始调整时间,若没有按下,则执行下面的时间、日期时间的显示,最后依次循环这些相同的操作,程序的编写采用模块化编程,共分为DS1302模块,LCD1602模块,延时模块,主函数模块,菜单模块,按键模块,主函数模块通过调用各子模块中的外部函数来实现相应的功能,程序源代码请见附件KEIL文件,相应流程图以及系统框架如下图所示:图12 主程序流程图图13 系统框架图4.2 时间设定程序流程图时间设定程序流程如图14所示图14 时间设定程序流程图五、系统仿真与调试5.1 Proteus仿真软件简介Proteus软件是英国Labcenter electronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年即将增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、KEI

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论