资源描述
基于51单片机的万年历设计(毕业设计)分类号 编号烟 台 大 学 文 经 学 院毕 业 论 文(设 计)基于51单片机的万年历设计Calendar Design Based On 51 SCM申请学位:通信工程 学士系 别:电子信息与计算机科学系 专 业: 通信工程 班 级: 文通084-2 姓 名: 贾昌征 学 号: 200890512213 指导老师:张志刚(副教授)2012年 5 月 20 日烟台大学文经学院基于51单片机的万年历设计申请人: 贾昌征 导 师: 张志刚 2011年 5 月20 日烟台大学文经学烟台大学文经学院毕业论文(设计)任务书院(系):电子信息与计算机科学系姓名贾昌征学号200890512213毕业届别专业通信工程毕业论文(设计)题目基于51单片机的万年历设计指导教师张志刚学历研究生 职称副教授所学专业具体要求 主要内容、基本要求、主要参考资料等 :主要内容:本课题立足于一个具体的制作实例,即以单片机为控制核心的电子万年历的设计与制作。具体做法是以单片机及其最小系统为核心,AT89C51作为主控制系统,集时钟芯片DS1302,液晶12864显示, 按键电路,复位电路等为一体,通过对单片机进行C语言编程,设计一个电子万年历。基本要求:(1显示公历年、月、日、星期、小时、分钟和秒(2) 可随时可以调校年、月、日或时、分、秒;() 能够显示温度。)(1)熟悉资料,完成开题报告 0.(3)(4)(5)()论文答辨准备和答辨 指导教师(签字): 2010年 3月 10日院(系)意见: 教学院长(主任)(签字): 年 月 日备注:摘要电子万年历是一种非常广泛日常计时工具,给人们的带来了很大的方便,在社会上越来越流行。 它可以对年、月、日、时、分、秒进行计时,采用直观的数字显示,可以同时显示年月日时分秒和温度等信息,还有时间校准等功能。该电子万年历主要采用AT89C51单片机作为主控核心,用DS1302时钟芯片作为时钟、液晶12864显示屏显示。AT89C51单片机是由Atmel公司推出的,功耗小,电压可选用46V电压供电;DS1302时钟芯片是美国DALLAS公司推出的具有细电流充电功能的低功耗实时时钟芯片,它可以对年、月、日、星期、时、分、秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命长,误差小;数字显示是采用的液晶显示屏来显示,可以同时显示年、月、日、星期、时、分、秒和温度等信息。此外,该电子万年历还具有时间校准等功能。Abtract E-calendar day time is a very wide range of tools,giving great convenience to people, increasingly popular in modern society. It can be year, month, day, Sunday, hours, minutes, seconds for time, using an intuitive digital display can simultaneously display year, month, day, Sunday, hours, minutes, seconds, and temperature and other information, but also a time-calibration and other functions. The main use of the electronic calendar AT89C51 single-chip microcomputer as the main core, provided by the DS1302 clock chip clock, DS18B20 the temperature chip acquisition transition temperature, LED display shows the dynamic scan. AT89C51 single-chip microcomputer is introduced by Atmel Corporation, a small power consumption, voltage can be selected 4 6V power supply voltage; DS1302 clock chip is introduced DALLAS fine with trickle charge function of current low-power real-time clock chip, which can of the year, month, day, week, hour, minute, second for time, also has multiple functions, such as a leap year compensation, and long life of the DS1302, a small error; DS18B20 temperature chip is a digital temperature sensor with a measurement accuracy high, a simple circuit to connect the characteristics of such sensors only need a data cable for data transmission; digital 12864 display is used to display LED screen, can display year, month, day, week, hour, minute, second and temperature, etc. information. In addition, the electronic calendar is also a time-calibration functions. Keywords: single-chipAT89C51 clock chip DS1302 liquid crystal 12864 temperature绪论随着人们生活水平的提高和生活节奏的加快,对时间的要求越来越高,精准数字计时的消费需求也是越来越多。二十一世纪的今天,最具代表性的计时产品就是电子万年历,它是近代世界钟表业界的第三次革命。第一次是摆和摆轮游丝的发明,相对稳定的机械振荡频率源使钟表的走时差从分级缩小到秒级,代表性的产品就是带有摆或摆轮游丝的机械钟或表。第二次革命是石英晶体振荡器的应用,发明了走时精度更高的石英电子钟表,使钟表的走时月差从分级缩小到秒级。第三次革命就是单片机数码计时技术的应用(电子万年历),使计时产品的走时日差从分级缩小到1/600万秒,从原有传统指针计时的方式发展为人们日常更为熟悉的夜光数字显示方式,直观明了,并增加了全自动日期、星期、温度以及其他日常附属信息的显示功能,它更符合消费者的生活需求!因此,电子万年历的出现带来了钟表计时业界跨跃性的进步我国生产的电子万年历有很多种,总体上来说以研究多功能电子万年历为主,使万年历除了原有的显示时间,日期等基本功能外,还具有闹铃,报警等功能。商家生产的电子万年历更从质量,价格,实用上考虑,不断的改进电子万年历的设计,使其更加的具有市场。除了采用集成化的时钟芯片外,还有采用MCU的方案,利用AT89系列单片微机制成万年历电路,采用软件和硬件结合的方法,控制LED数码管输出,分别用来显示年、月、日、时、分、秒,其最大特点是:硬件电路简单,安装方便易于实现,软件设计独特,可靠。AT89C51是由ATMEL公司推出的一种小型单片机。95年出现在中国市场。其主要特点为采用Flash存贮器技术,降低了制造成本,其软件、硬件与MCS-51完全兼容,可以很快被中国广大用户接受。本文介绍了基于单片机设计的电子万年历。可以同时显示年、月、日、星期、时、分、秒和温度等信息还具有时间校准等功能。2).显示模块选择在本万年历当中12864 液晶显示当前的实时时间重要的阴阳历节日等功能。12864 液晶具有如下的特性:? 提供8 位,4 位并行接口及串行接口可选? 并行接口适配M6800 时序? 自动电源启动复位功能? 内部自建振荡源3 .时钟芯片选择采用DS1302时钟芯片实现时钟,DS1302芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、周、月、年以及闰年补偿的年进行计数,而且精度高,位的RAM做为数据暂存区,工作电压2.5V5.5V范围内,2.5V时耗电小于300nA。4 .温度传感器的选择在本万年历当中温度的采集采用数字温度传感器DS18B20。它属于单总线器件,具有线路简单,体积小的特点。因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。另外,数字式温度传感器还具有测量精度高、测量范围广等优点。具有如下的经济特点:(1)只要求一个端口即可实现通信。(2)在DS18B20 中的每个器件上都有独一无二的序列号。(3)实际应用中不需要外部任何元器件即可实现测温。(4)测量温度范围在55。C 到125。C 之间。(5)数字温度计的分辨率用户可以从9 位到12 位选择。(6)内部有温度上、下限告警设置。电路设计方案最终确定综上各方案所述,对此次作品的方案选定: 采用AT89C51 作为主控制系统; DS1302 提供时钟;数字式温度传感器;液晶12864作为显示。三、系统的硬件设计与实现3.1 电路设计框图蜂鸣报警模块 3.2 系统硬件概述本电路是由STC89C52 单片机为控制核心,具有操作简单的优点;时钟电路由DS1302提供,它是一种高性能、低功耗、带RAM 的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V5.5V。采用三线接口与CPU 进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM 数据。DS1302 内部有一个31*8 的用于临时性存放数据的RAM 寄存器。可产生年、月、日、周日、时、分、秒,具有使用寿命长,精度高和低功耗等特点,同时具有掉电自动保存功能;温度的采集由DS18B20构成。3.3 主要单元电路的设计. 单片机主控制模块的设计本系统采用的是美国ATMEL公司生产的AT89C51单片机,首先我们来熟悉一下AT89C51单片机的外部引脚和内部结构。1.单片机的引脚功能AT89C51单片机有40个引脚。Vcc:电源电压+5VGND:接地P0口:P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。作为输出口用时,每位能驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线服用,在访问期间激活内部上拉电阻。在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时要求外接上拉电阻。P1口:P1口是一个带内部上拉电阻的8位双向I/O,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。 Flash 编程和程序校验期间,P1接收低8位地址。P2口:P2口是一个带内部上拉电阻的8位双向I/O,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVXDPTR指令)时,P2口送出高8位地址数据。在访问8位地址的外部数据存储器(MOVX Ri指令)时,P2口线上的内容(也即特殊功能寄存器(SFR)区中P2寄存器的内容),在整个访问期间不改变。Flash 编程和程序校验期间,P2亦接收低高位地址和其他控制信号。P3口:P3口是一组带内部上拉电阻的8位双向I/O,P3的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写入“1”时,它们被内部的上拉电阻拉高并可作为输入端口。作输入端时,被外部拉低的P3口将用上拉电阻输出电流。P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,见表3-1所示:P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。表3-1 P3口的第二功能图端口引脚第二功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2INT0(外中断0)P3.3INT1(外中断1)P3.4T0(定时/计时器0外部输入)P3.5T1(定时/计时器1外部输入)P3.6WR(外部数据存储器写选通)P3.7RD(外部数据存储器读选通)RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。WDT溢出将使引脚输出高电平,设置SFR AUXR的DISRT0(地址8EH)可打开或关闭该功能。DISRT0位缺省为RESET输出高电平打开状态。ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存器允许)输出脉冲用于锁存地址的低8位字节。即使不访问外部存储器,ALE仍以时钟振荡频率的1/6输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对Flash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过多特殊功能寄存器(SFR)区中的8EH单元的D0位置,可禁止ALE操作。该位置后,只有一条MOVX和MOVC指令ALE才会被激活。另外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE无效。PSEN:程序存储允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C51由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。当访问外部数据存储器,没有两次有效的PSEN信号。EA/VPP:外部访问允许。欲使CPU仅访问外部程序存储器(地址为0000HFFFFH),EA端必须保持低电平(接地)。需要注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU则执行内部程序存储器中的指令。Flash存储器编程时,该引脚加上+12V的变成电压Vpp.XTAL1:振荡器反相放大器及内部时钟发生器的输入端。XTAL2:振荡器反相放大器的输出端。AT89C51单片机内部结构2.AT89C51单片机与MCS-51完全兼容 看门狗(WDT):WDT是一种需要软件控制的复位方式。WDT 由13位计数器和特殊功能寄存器中的看门狗定时器复位存储器(WDTRST)构成。WDT 在默认情况下无法工作;为了激活WDT,用户必须往WDTRST 寄存器(地址:0A6H)中依次写入01EH 和0E1H。当WDT激活后,晶振工作,WDT在每个机器周期都会增加。WDT计时周期依赖于外部时钟频率。除了复位(硬件复位或WDT溢出复位),没有办法停止WDT工作。当WDT溢出,它将驱动RSR引脚输出一个高电平。可编程串口(UART)在AT89C51中,UART 的操作与AT89C51 和AT89C52 一样。AT89C51系列单片机的串行通信口可以工作于同步和异步通信方式。当工作于异步方式时,它具有全双工的操作功能,也就是说,它可以同时进行数据的发送和接收。串行口内的接收器采用的是双缓冲结构,能够在接收到的第一个字节从接收寄存器读走之前就开始接收第二个字节(当然,如果第二个字节接收完毕,而第一个字节仍然没有被读走,那将会丢掉一个字节)。串行口的发送和接收操作都是通过特殊功能寄存器中的数据缓冲寄存器SBUF进行的,但在SBUF的内部,接收寄存器和发送寄存器在物理结构上是完全独立的。如果将数据写入SBUF,数据会被送入发送寄存器准备发送。如果执行SBUF指令,则读出的数据一定来自接收缓存器。因此,CPU对SBUF的读写,实际上是分别访问2个不同的寄存器。这2个寄存器的功能决不能混淆。振荡电路:AT89C51系列单片机的内部振荡器,由一个单极反相器组成。XTAL1反相器的输入,XTAL2为反相器的输出。可以利用它内部的振荡器产生时钟,只要XTAL1和XTAL2引脚上一个晶体及电容组成的并联谐振电路,便构成一个完整的振荡信号发生器,此方式称为内部方式。另一种方式由外部时钟源提供一个时钟信号到XTAL1端输入,而XTAL2端浮空。在组成一个单片机应用系统时,多数采用这种方式,这种方式结构紧凑,成本低廉,可靠性高。在电路中,对电容C1和C2的值要求不是很严格,如果使用高质的晶振,则不管频率为多少,C1、C2通常都选择30pF。定时/计数器:AT89C51单片机内含有2个16位的定时器/计数器。当用于定时器方式时,定时器的输入来自内部时钟发生电路,每过一个机器周期,定时器加1,而一个机器周期包含有12个振荡周期,所以,定时器的技术频率为晶振频率的1/12,而计数频率最高为晶振频率的1/24。为了实现定时和计数功能,定时器中含有3种基本的寄存器:控制寄存器、方式寄存器和定时器/计数器。控制寄存器是一个8位的寄存器,用于控制定时器的工作状态,方式寄存器是一个8位的寄存器,用于确定定时器的工作方式,定时器/计数器是16位的计数器,分为高字节和低字节两部分。RAM:高于7FH内部数据存储器的地址是8位的,也就是说其地址空间只有256字节,但内部RAM的寻址方式实际上可提供384字节。的直接地址访问同一个存储空间,高于7FH的间接地址访问另一个存储空间。这样,虽然高128字节区分与专用寄器 ,即特殊功能寄存器区的地址是重合的,但实际上它们是分开的。究竟访问哪一区,存是通过不同的寻址方式加以区分的。SFR:SFR是具有特殊功能的所有寄存器的集合,共含有22个不同寄存器,它们的地址分配在80HDS1302 是一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个318的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。图-1 示出DS1302 的引脚排列,其中Vcc1 为后备电源,Vcc2 为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302 由Vcc1 或Vcc2 两者中的较大者供电。当Vcc2大于Vcc1+0.2V 时,Vcc2 给DS1302 供电。当Vcc2 小于Vcc1 时,DS1302 由Vcc1 供电。X1和X2 是振荡源,外接32.KHz 晶振。RST 是复位/片选线,通过把RST 输入驱动置高电平来启动所有的数据传送。RST 输入有两种功能:首先,RST 接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST 提供终止单字节或多字节数据的传送手段。当RST 为高电平时,所有的数据传送被初始化,允许对DS1302 进行操作。如果在传送过程中RSTS置为低电平,则会终止此次数据传送,I/O 引脚变为高阻态。上电动行时,在Vcc 大于等于2.5V 之前,RST 必须保持低电平。中有在SCLK 为低电平时,才能将RST 置为高电平,I/O为串行数据输入端(双向)。SCLK 始终是输入端。 图-1 DS1302 的引脚图. 显示模块的设计在本万年历当中12864 液晶显示当前的实时时间重要的阴阳历节日等功能。12864 液晶具有如下的特性:1 提供8 位,4 位并行接口及串行接口可选2 并行接口适配M6800 时序3 自动电源启动复位功能4 内部自建振荡源6416 位字符显示RAM(DDRAM 最多16 字符4 行,LCD 显示范围162 行) 改为半角输入 2M 位中文字型ROM(CGROM),总共提供8192 个中文字型(1616 点阵)16K 位半宽字型ROM HCGROM ,总共提供126 个西文字型(168 点阵)6416 位字符产生RAM(CGRAM)1516 位总共240 点的ICON RAM(ICONRAM)其与单片机的连接电路如下 图-2 12864 液晶显示接口电路图.集模块设计如图-3所示。采用数字式温度传感器DS18B20,它是数字式温度传感器,具有测量精度高,电路连接简单特点,此类传感器仅需要一条数据线进行数据传输,使用0.7与DS18B20的I/O口连接加一个上拉电阻,Vcc接电源,Vss接地。 图-3 DS18B20温度采集. 按键调整系统模块设计按键采用4个独立的按键,一个功能键、一个确认键、一个加按键、一个减按键通过这四个按键可以来合理的设置时钟的调整和闹铃的设定温度报警的上下限数值。与单片机的连接电路如下. 蜂鸣器报警模块当实际的温度高于设定温度时或者当前的时间等于设置闹钟时间时蜂鸣器便会发出声音进行提示。与单片机的连接电路如下:四、系统的软件设计4.1程序流程框图4.2 时间调整的程序流程图4.3 温度采集程序流程图4.4 定时铃声程序流程图4.5 农历流程图五、结束语2012年月我开始了我的毕业论文工作,时至今日,论文基本完成。从最初的茫然,到慢慢的进入状态,再到对思路逐渐的清晰,整个写作过程难以用语言来表达。历经了个月的奋战,紧张而又充实的毕业设计终于落下了帷幕。回想这段日子的经历和感受,我感慨万千,在这次毕业设计的过程中,我拥有了无数难忘的回忆和收获。毕业论文的制作过程是我的一次再学习,再提高的过程。在论文中我充分地运用了大学期间所学到的知识。我不会忘记这难忘的几个月的时间。毕业论文的制作给了我难忘的回忆。在我徜徉书海查找资料的日子里,最难忘的是每次找到资料时的激动和兴奋;记忆最深的是每一步小小思路实现时那幸福的心情;看着亲手打出的一字一句,心里满满的只有喜悦我从资料的收集中,掌握了很多单片机的知识,让我对我所学过的知识有所巩固和提高,并且让我对当今单片机的最新发展技术有所了解。在整个过程中,我学到了新知识,增长了见识。在今后的日子里,我仍然要不断地充实自己,争取在所学领域有所作为。毫无疲惫。这段旅程看似荆棘密布,实则蕴藏着无尽的宝藏。脚踏实地,认真严谨,实事求是的学习态度,不怕困难、坚持不懈、吃苦耐劳的精神是我在这次设计中最大的收益。我想这是一次意志的磨练,是对我实际能力的一次提升,也会对我未来的学习和工作有很大的帮助)烟台大学文经学院毕业论文 设计 评审表(指导教师用)题 目学生姓名学号专业指导教师姓 名职称所学专业是否同意参加答辩:得分评语:评阅人(签字): 年 月 日烟台大学文经学院毕业论文 设计 评审表 评阅人用 题 目学生姓名学号专业指导教师姓 名职称所学专业是否同意参加答辩:得分评语:评阅人(签字): 年 月 日烟台大学文经学院毕业论文 设计 评审表(答辩小组用)题 目学生姓名学号指导教师姓 名职称得分评语:答辩委员会(小组)(全体成员签字): 年 月 日烟台大学文经学院毕业论文 设计 综合评定成绩表指导教师评分评阅人评分答辩评分综合评定成绩 按4:2:4 答辩委员会负责人(签字): 年 月 日烟台大学文经学院毕业论文(设计)液晶12864显示模块AT89C51主控制模 块键盘模块DS1302时钟模块温度采集模块开始初始化读、写日期、时间和温度分离日期时间温度显示值显示子程序农历自动更新子程序日期、时间修改子程序闰月子程返回定时闹铃子程序温度采集子程序判断是否进行温度采集NY采集数据将采集到的数据累计到5次求和,再进行除5转换定时子程序NNNNNNY判断是否到月判断是否到日判断是否到年 判断是否开铃声Y4Y4Y4Y4返回打开铃声标志判断是否到分判断是否到时Y4
展开阅读全文