电子万年历电路系统.doc_第1页
电子万年历电路系统.doc_第2页
电子万年历电路系统.doc_第3页
电子万年历电路系统.doc_第4页
电子万年历电路系统.doc_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

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

文档简介

中文摘要随着社会、科技的发展,人类得知时间,从观太阳、摆钟到现在电子钟,不断研究、创新。为了在观测时间的同时,能够了解其它与人类密切相关的信息,比如温度、星期、日期等,电子万年历诞生了,它集时间、日期、星期和温度功能于一身,具有读取方便、显示直观、功能多样、电路简洁等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。该电子万年历主要采用at89c51单片机作为主控核心,由ds1302时钟芯片提供时钟、led动态扫描显示屏显示。at89c51单片机是由atmel公司推出的,功耗小,电压可选用46v电压供电;ds1302时钟芯片是美国dallas公司推出的具有涓细电流充电功能的低功耗实时时钟芯片,它可以对年、月、日、星期、时、分、秒进行计时,还具有闰年补偿等多种功能,而且ds1302的使用寿命长,误差小;数字显示是采用的led液晶显示屏来显示,可以同时显示年、月、日、星期、时、分、秒和温度等信息。此外,该电子万年历还具有时间校准等功能。关键词:时钟电路,时钟芯片ds1302,led动态扫描,单片机at89c51abstractwith the society, science and technology, mankind learned that time, from the view of the sun, to the present electronic clock pendulum clock, continuous research and innovation. observation time in the same time, be able to understand other human beings is closely related to information, such as temperature, week, date and so on, the birth of the electronic calendar, and it set the time, date, week and temperature-in-one, with easy to read, intuitive display functional diversity, and many other advantages of simple circuit with the electronic instrumentation of the development trend of the market prospects are broad.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 led display is used to display lcd 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: clock circuit, clock chip ds1302, led dynamic scanning, single-chipat89c51目录第1章 绪论1第2章 设计要求与方案论证22.1引言22.2功能要求22.3方案论证22.3.1 技术可行性22.3.2 单片机的选择32.3.3 显示模块的选择32.3.4 键盘模块的选择32.3.5总体方案论证与选择4第3章 系统硬件电路的设计53.1电路设计53.2系统硬件概述53.2.1主控制器at89c5153.2.2时钟电路ds130263.2.3显示驱动74ls16473.3主要单元电路的设计83.3.1显示电路83.3.2查询式按键及其接口93.3.3时钟电路9第4章 系统的软件设计114.1阳历程序设计114.2时间调整程序设计114.3阴历程序设计12第5章 调试及性能分析165.1调试步骤165.2性能分析16结束语17致谢18参考文献19附录: 程序清单20徐州建筑职业技术学院毕业设计说明书第1章 绪论随着人们生活水平的提高和生活节奏的加快,对时间的要求越来越高,精准数字计时的消费需求也是越来越多。二十一世纪的今天,最具代表性的计时产品就是电子万年历,它是近代世界钟表业界的第三次革命。第一次是摆和摆轮游丝的发明,相对稳定的机械振荡频率源使钟表的走时差从分级缩小到秒级,代表性的产品就是带有摆或摆轮游丝的机械钟或表。第二次革命是石英晶体振荡器的应用,发明了走时精度更高的石英电子钟表,使钟表的走时月差从分级缩小到秒级。第三次革命就是单片机数码计时技术的应用(电子万年历),使计时产品的走时日差从分级缩小到1/600万秒,从原有传统指针计时的方式发展为人们日常更为熟悉的夜光数字显示方式,直观明了,并增加了全自动日期、星期、温度以及其他日常附属信息的显示功能,它更符合消费者的生活需求!因此,电子万年历的出现带来了钟表计时业界跨跃性的进步我国生产的电子万年历有很多种,总体上来说以研究多功能电子万年历为主,使万年历除了原有的显示时间,日期等基本功能外,还具有闹铃,报警等功能。商家生产的电子万年历更从质量,价格,实用上考虑,不断的改进电子万年历的设计,使其更加的具有市场。本设计为软件,硬件相结合的一组设计。在软件设计过程中,应对硬件部分有相关了解,这样有助于对设计题目的更深了解,有助于软件设计。基本的要了解一些主要器件的基本功能和作用。除了采用集成化的时钟芯片外,还有采用mcu的方案,利用at89系列单片微机制成万年历电路,采用软件和硬件结合的方法,控制led数码管输出,分别用来显示年、月、日、时、分、秒,其最大特点是:硬件电路简单,安装方便易于实现,软件设计独特,可靠。at89c51是由atmel公司推出的一种小型单片机。95年出现在中国市场。其主要特点为采用flash存贮器技术,降低了制造成本,其软件、硬件与mcs-51完全兼容,可以很快被中国广大用户接受。 本文介绍了基于at89c51单片机设计的电子万年历。 首先我们在绪论中简单介绍了单片机的发展与其在中低端领域中的优势以及课题的开发意义;接着介绍了at89c51单片机的硬件结构和本毕业设计所要外扩的led显示及其驱动方法,并在此基础上实现了万年历基本电路的设计;然后使用单片机汇编语言进行万年历程序的设计,程序采用模块化结构,使得逻辑关系简单明了,维护方便。 第2章 设计要求与方案论证2.1引言随着电子技术的发展,人类不断研究,不断创新纪录。万年历目前已经不再局限于以书本形式出现。以电脑软件或者电子产品形式出现的万年历被称为电子万年历。与传统书本形式的万年历相比,电子万年历得到了越来越广泛的应用,采用电子时钟作为时间显示已经成为一种时尚。目前市场上各式各样的电子时钟数不胜数,但多数是只针对时间显示,功能单一不能满足人们日常生活需求。 本文提出了一种基于at89c51单片机的万年历设计方案,本方案以at89c51单片机作为主控核心,与时钟芯片ds1302、按键、led显示等模块组成硬件系统。在硬件系统中设有独立按键和led显示器,能显示丰富的信息,根据使用者的需要可以随时对时间进行校准、选择时间等,综上所述此万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。2.2功能要求本电子万年历能显示阳历年、月、日、星期、小时、分、秒和阴历月、日,在显示阴历时间时能标明是否为闰月。此外我们还可以通过按键校整年月日及时间。2.3方案论证2.3.1 技术可行性 随着国内超大规模集成电路的出现,微处理器及其外围芯片有了迅速的发展。集成技术的最新发展之一是将cpu和外围芯片,如程序存储器、数据存储器、并行i/o口、串行i/o口、定时/计数器、中断控制器及其他控制部件集成在一个芯片之中,制成单片计算机(single-chip microcomputer)。而近年来推出的一些高档单片机还包括有许多特殊功能单元,如a/d、d/a转换器、调制解调器、通信控制器、锁相环、dma、浮点运算单元、pwm控制输出单元、pwm输出时的死区可编程控制功能等。因此,只要外加一些扩展电路及必要的通道接口就可以构成各种计算机应用系统,如工业流水线控制系统、作为家用电器的主控制器、分布式控制系统的终端节点或作为其主控制节点起中继的作用、数据采集系统、自动测试系统等。单片机的出现,并在各技术领域中得到如此迅猛的发展,与单片机构成计算机应用系统所形成的下述特点有关: 1、单片机构成的应用系统有较大的可靠性。这些可靠性的获得除了依靠单片机芯片本身的高可靠性以及应用有最少的联接外,还可以方便地采用软、硬件技术。2、系统扩展、系统配置较典型、规范,容易构成各种规模的应用系统,应用系统有较高的软、硬件利用系数。 3、由于构成的应用系统是一个计算机系统,相当多的测、控功能由软件实现,故具有柔性特征,不须改变硬件系统就能适当地改变系统功能。4、有优异的性能、价格比。2.3.2 单片机的选择方案一:采用传统的at89c51作为电机的控制核心。单片机算术运算功能强,软件编程灵活、自由度大,可用软件编程实现各种算法和逻辑控制,并且由于其功耗低、体积小、技术成熟和成本低等优点,使其在各个领域应用广泛。方案二:采用ftc10f04单片机,还带有非易失性flash程序存储器。它是一种高性能、低功耗的8位cmos微处理芯片,市场应用最多。其主要特点如下:8kb flash rom,可以擦除1000次以上,数据保存10年。由于本系统对cpu运算速度要求很高,需要执行很复杂的运算,方案一成本比较低,适合做设计,方案二运算速度高,性能好,所以两种方案都有可取之处。选用方案一作为主方案,方案二作为备用方案。2.3.3 显示模块的选择 方案一:使用液晶显示屏显示时间数字。 液晶显示屏(lcd)具有轻薄短小、低耗电量、无辐射危险,平面直角显示以及影象稳定不闪烁等优势,可视面积大,画面效果好,分辨率高,抗干扰能力强等特点。但由于液晶是以点阵的模式显示各种符号,需要利用控制芯片创建字符库,编程工作量大,控制器的资源占用较多,其成本也偏高。在使用时,不能有静电干扰,否则易烧坏液晶的显示芯片,不易维护。方案二:使用传统的led数码管显示。 数码管具有:低能耗、低损耗、低压、寿命长、耐老化、防晒、防潮、防火、防高(低)温,对外界环境要求低,易于维护,同时其精度比较高,称重轻,精确可靠,操作简单。数码管采用bcd编码显示数字,程序编译容易,资源占用较少。根据以上的论述,采用方案二。在本系统中,我们采用了八段六位和八位一体数码管串口的动态显示,由于显示位数较多,故应使用显示驱动,在本设计中采用74ls164显示驱动芯片。2.3.4 键盘模块的选择在对日期和时间进行控制,对日期和时间进行调节校准过程中,系统需要产生激励电流,因此需要用按键。方案一:使用独立式键盘。独立式键盘是指直接用i/o口线构成的单个按键电路。独立式按键电路配置灵活,软件结构简单。方案二:使用矩阵式键盘。矩阵式键盘是由行线和列线组成,按键位于行、列的交叉点上,行线、列线分别连接到按键开关的两端。其特点是简单且不增加成本,这种键盘适合按键数量较多的场合。根据以上的论述,因本系统需要的按键不多,控制键/右移键,左移键,加1键,减1键,要求简单。所以采用方案一独立式键盘。2.3.5总体方案论证与选择(89c51)主控模块按照系统设计功能的要求,初步确定系统由主控模块、时控模块、显示驱动及显示模块和按键接口模块共4个模块组成,电路系统构成框图如图所示。按键电路ds1320时钟电路 显示电路图2-1电子万年历电路系统构成框图主控芯片使用51系列at89c51单片机,时钟芯片使用美国dallas公司推出的一种高性能、低功耗、带ram的实时时钟ds1302。采用ds1302作为计时芯片,可以做到计时准确。更重要的是,ds1302可以在很小电流的后备电源(2.55.5v电源,再2.5v时耗电小于300na),而且ds1302可以编程选择多种充电电流来队后备电源进图行慢速充电,可以保证后备电源基本不耗电。显示驱动采用74ls164,74ls164是一个串行输入并行输出的移位寄存器,74ls164内部为8个d触发器,用以实现数据的串行移位。74ls16 和微处理器只需三根导线连接,每位显示数字有一个地址由微处理器写入。允许使用者选择每位是bcd 译码或不译码。使用者还可选择停机模式、数字亮度控制、从18 选择扫描位数和对所有led 显示器的测试模式。显示模块采用普通的共阳极六位和八位位一体八段led数码管。第3章 系统硬件电路的设计3.1电路设计图示为电子万年历电路设计原理图,系统由主控制器at89c51、时钟电路ds1302、串口显示电路及按键电路组成。图3-1 电子万年历设计原理图3.2系统硬件概述3.2.1主控制器at89c51atmel公司生产的at89c51单片机采用高性能的静态80c51设计,并采用先进工艺制造,还带有非易失性flash程序存储器。它是一种高性能、低功耗的8位cmos微处理芯片,市场应用最多。其主要特点如下:8kb flash rom,可以擦除1000次以上,数据保存10年。 256字节内部ram; 电源控制模式; 时钟可停止和恢复; 空闲模式; 掉电模式; 6个中断源; 4个中断优先级; 4个8位i/o口; 全双工增强型tuar; 3个16位定时/计数器:t0、t1(标准80c51)和增加的t2(捕获和比较) 全静态工作方式:024mhz3.2.2时钟电路ds1302ds1302的性能特性: 实时时钟,可对秒、分、时、日、周、月以及带闰年补偿的年进行比较; 用于高速数据暂存的31*8位ram; 最少引脚的串行i/o; 2.55.5v电压工作范围; 2.5v时耗小于300na; 用于时钟或ram数据读/写的单字节或多字节(脉冲方式)数据传送方式; 简单的三线接口; 可选的慢速充电(至vcc1)的能力。ds1302在任何数据传送时必须先初始化,把rst脚置为高电平,然后把8位地址和命令字装入移位寄存器,数据在sclk的上升沿被访问到。在开始8个时钟周期,把命令字节装入移位寄存器后,另外的时钟周期在读操作时输出数据,在写操作时写入数据。时钟脉冲的个数在单字节方式下为8+8,在多字节方式下为8+字节数,最大可达248字节数。如果在传送过程中置rst脚为低电平,则会终止本次数据传送,并且i/o引脚变为高阻态。上电运行时,在vcc2.5v之前,rst脚必须保持低电平。只有在sclk为低电平时,才能将rst置为高电平。ds1302的控制字如图所示。控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入到ds1302中。位6如果为0,则表示存取日历时钟数据;为1则表示存取ram数据。位51(a4a0)指示操作单元的地址。最低有效位(位0)如果为0,则表示药进行写操作;为1表示进行读操作。控制字节总是从最低位开始输入/输出。表3-1 ds1302控制字表765432111ram/cka4a3a2a1a0ram/k为了提高对32个地址寻址能力(地址/命令位15=逻辑1),可以把时钟/日历或ram寄存器规定为多字节(burst)方式。位6规定时钟或ram,而位0规定读或写。在时钟/日历寄存器中的地址931或ram寄存器中的地址31不能存储数据。在多字节方式下,读或写从地址0的位0开始。必须按数据传送的次序写最先的8个寄存器。但是,当以多字节方式写ram时,为了传送数据不必写所有的31字节,不管是否谢了全部31字节,所写的每一字节都将传送至ram。ds1302共有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为bcd码形式。其日历、时间寄存器及其控制字如下表所示,其中奇数为读操作,偶数为写操作。表3-2 ds1302日历、时间寄存器及其控制字表时钟暂停:秒寄存器的位7定义位时钟暂停位。当它为1时,ds1302停止振荡,进入低功耗的备份方式,通常在对ds1302进行写操作时(如进入时钟调整程序),停止振荡。当它为0时,时钟将开始启动。am-pm/12-24小时方式:小时寄存器的位7定义为12或24小时方式选择位。它为高电平时,选择12小时方式。在此方式下,位5为第二个10小时位(2023h)。ds1302的晶振选用32768hz,电容推荐值为6pf。因为振荡频率较低,也可以不接电容,对计时精度影响不大。3.2.3显示驱动74ls16474ls164为8位移位寄存器,74ls164是一个串行输入并行输出的移位寄存器,74ls164内部为8个d触发器,用以实现数据的串行移位。其封装图如下所示,其中 q0q7 并行输出端 。 a,b串行输入端。 mr 清除端, 为0时,输出清零。 cp 时钟输入端。 图3-2 74ls164封装图 图3-3 74ls164结构图表3-3 74ls164特性表操作模式输入输出复位mrabq0q1q7移位lxxlq0q6hlllq0q6hlhlq0q6hhllq0q6hhhhq0q63.3主要单元电路的设计3.3.1显示电路显示部分采用普通的共阳数码管显示,采用动态扫描,以减少硬件电路。考虑到一次扫描19位数码管显示时会出现闪烁情况,设计时19个数码管分三排同时扫描。第一排6个数码管分别为千年,百年,十年,年,十月,月,第二排七位数码管分别为十日,日,星期,阴历十月,阴历月,阴历十日,阴历日。第三排6位数码管分别为十时,时,十分,分,十秒,秒。显示时采用串行口输出段码,用三片74ls164来驱动3排数码管,这样扫描一次只需7ms。74ls164内部为8个d触发器,用以实现数据的串行移位。单片机以串行口方式0(移位寄存器方式)输出数据,3片74ls164作为3排共阳数码管的串/并转换显示接口。74ls164位ttl单向8位移位寄存器,可实现串行输入,并行输出。其中a、b(第1、2脚)为串行数据输入端,2个引脚按逻辑“与”运算规律输入信号,共一个输入信号时可并接,共同作为输入脚。cp(第8脚)为时钟端输入,可连接到串行口的txd端。每一个时钟信号的上升沿加到cpd端时,移位寄存器移一位。8个时钟脉冲过后,8位二进制数全部移入74ls164中。mr脚(第9脚)为复位端,当该脚为低电平时,移位寄存器各位复0;只有当他为高电平时,时钟脉冲才起作用。q1q8(第36和第1013引脚)并行输出端分别接数码管的ag(因为串行口从低位开始传送)各段对应的引脚上。在给出的8个脉冲后,最先进入74ls164的第一个字节数据到达了最高位。再来1个脉冲,第1个脉冲就会从高位移出,进入下一个74ls164的地1位。3片74ls164首尾相串,而时钟端则连在一起。这样当输入8个脉冲时,从单片机rxd端输出的第1字节数据就进入了第1片74ls164中,而当第2个8个脉冲到来后,第一字节数据就进入了第2片74ls164,而随后的第2字节的数据则进入了第1片74ls164。这样当第3个脉冲完成后,首次送出的数据被送到了最上面的74ls164(第3片)中,其他数据依次出现在第二和第一片74ls64中的串行输入、并行输出。在方式0状态下,串行口为同步移位寄存器方式,其波特律是固定的,为fosc/12。数据由rxd(p3.0)端输入或输出,同步移位脉冲由txd(p3.1)端输出。发送、接收数据时低位在先。所以,根据本小节下面提供的硬件电路图,在编写程序时,查共阳数码管的段码的二进制数据应该将正常的共阳数码管09的二进制值按位反序排列,如原来的二进制为11000000(c0h),要改为00000011(03h),就能使数码管正常显示。3.3.2查询式按键及其接口按照键盘与cpu的连接方式可以分为查询按键和矩阵式键盘。查询式按键是各按键相互独立,每个按键占用一根i/o口线,每根i/o口线上的按键工作状态不会影响其他i/o口线上按键的工作状态。查询式按键电路配置灵活,软件结构简单,但每个按键必须占用一根i/o口线,在按键数量较多时,i/o口线浪费较大,且电路结构显得繁杂。故这种形式适用于按键数量较少的场合。本设计提供了解4个按钮的小键盘,四个按钮功能分别为:控制键/右移键,左移键,加1键,减1键,它们依次接p1.1,p1.2,p1.3,p1.4。如果在有键按下后,有一定的延时,防止键盘抖动。3.3.3时钟电路ds1302 是美国dallas公司推出的一种高性能、低功耗、带ram的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5v5.5v。采用三线接口与cpu进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或ram数据。ds1302内部有一个318的用于临时性存放数据的ram寄存器。ds1302是ds1202的升级产品,与ds1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。图x示出ds1302的引脚排列,其中vcc1为后备电源,vcc2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。ds1302由vcc1或vcc2两者中的较大者供电。当vcc2大于vcc10.2v时,vcc2给ds1302供电。当vcc2小于vcc1时,ds1302由vcc1供电。x1和x2是振荡源,外接32.768khz晶振。rst是复位/片选线,通过把rst输入驱动置高电平来启动所有的数据传送。rst输入有两种功能:首先,rst接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,rst提供终止单字节或多字节数据的传送手段。当rst为高电平时,所有的数据传送被初始化,允许对ds1302进行操作。如果在传送过程中rst置为低电平,则会终止此次数据传送,i/o引脚变为高阻态。上电运行时,在vcc2.5v之前,rst必须保持低电平。只有在sclk为低电平时,才能将rst置为高电平。ds1302的引脚及内部结构图如图4所示,表1为各引脚的功能。 图3-4 ds1302引脚排列图 图 3-5 ds1302引脚及内部结构图表3-4 ds1302引脚功能表引脚号引脚名称功 能1vcc2主电源2、3x1,x2震荡源,外接32768khz晶振4gnd地线5rst复位/片选线6i/o串行数据输入/输出端(双向)7sclk串行数据输入端8vcc1后备电源第4章 系统的软件设计4.1阳历程序设计因为使用了时钟芯片ds1302,阳历程序只需从ds1302各寄存器中读出年、周、月、日、(小)时、分、秒等数据,再处理即可。在首次对ds1302进行操作之前,必须对它进行初始化,然后从ds1302中读出数据,再经过处理后,送给显示缓冲单元。阳历程序流程图见图4-1所示。 开始初使化1302从1302开始震荡从1302中读出年、周、月、日、(小)时、分、秒读出的数据都为bcd码,将其高低位分离,送显示缓冲单元图4-1 阳历程序流程图4.2时间调整程序设计调整时间用4个调整按扭,2个作为移位、控制用,另外两个作为加和减用,分别定义为控制按扭、移位钮、加按扭、减按扭。在调整时间的过程中,要调整的位与别的位应该有区别,所以增加了闪烁功能,即调整的位一直在闪烁,直到调整下一位。闪烁原理就是,让要调整的一位每各一定时间熄灭一次,比如说50ms。利用定时器计时,当达到50ms益出时,就送给该位熄灭符,在下一次益出时,再送正常显示的值,不断交替,直到调整该位结束。此时送正常显示值给该位,再进入下一位调整闪烁程序。时间调整程序程流程图如图7所示。控制键有效,进入年调整程序等待按键程序年加1减键有效加键有效月加1减键有效等待按键程序控制键有效,进入月调整程序月减1加键有效控制键有效,进入日调整程序控制键有效,进入星期调整程序等待按键程序年减1等待按键程序加键有效加键有效减键有效减键有效日加1星期加1星期减1日减1控制键有效,进入分调整程序控制键有效,进入(小)时调整程序等待按键程序等待按键程序加键有效加键有效减键有效减键有效分加1(小)时加1分减1(小)时减1控制键有效,跳出时间调整程序,进入主循环程序图4-2 时间调整程序流程图4.3阴历程序设计阴历程序的实现是要靠阳历日期来推算的。要根据阳历来推算阴历日期,首先要设计算法。推算方法是,根据阳历当前日期在一年中的天数来计算阴历日期。阳历一个月不是30天就是31天(2月除外,闰年2月为29天)。阴历一年有12个月或13个月(含闰月),一个月为30天或29天。如果把一个只有29天的月称为小月,用1为标志,把30天的月称为大月,用0为标志,那么12位二进制就能表示一年12个月的大小。如果有闰月,则把闰月的月份作为一个字节的高四位,低四位表示闰月大小,大月为0,小月为1,这样一个字节就包含了所有的闰月的信息。阴历春节和阳历元旦相差的天数也用一个字节表示。总共用4个字节就可以存储一年中任何一天阴历和阳历的对应关系的有关数据,例如2004年的阴历和阳历对应关系如表4所列。表4-1 2004年的阴历和阳历对应关系表月份123456789101112闰2月大小小大大大小大小大小大小大小天数29303030293029302930293029二进制1000101010101十六进制425212004年的春天和元旦差21天,这样2004年的信息表为:21,42h,52h,21h。其中表示12个月大小信息的字节,第四位和第七位不同。第一个字节为十进制,其他的都为十六进制。按此方法,50年的阳历和阴历对应关系表总共使用200字节。20002050年的关系表:35,15h,51h,00h(2000) 23,11h,52h,41h(2001) 42,12h,65h,00h(2002)31,11h,32h,00h(2003) 21,42h,52h,21h(2004) 39,52h,25h,00h(2005)28,25h,04h,71h(2006) 48,66h,42h,00h(2007) 37,33h,22h,00h(2008)25,15h,24h,51h(2009) 44,05h,52h,00h(2010) 33 ,22h, 65h, 00h (2011)22, 21h, 25h,41h(2012) 40,24h,52h,00h(2013) 30 ,52h, 42h, 91h (2014)49, 55h, 05h,00h(2015) 38,26h,44h,00h(2016) 27 ,53h, 50h, 60h (2017)46, 53h, 24h,00h(2018) 35,25h,54h,00h(2019) 24 ,41h, 52h, 41h (2020)42, 45h, 25h,00h(2021) 31,24h,52h,00h(2022) 21 ,51h, 12h, 21h (2023)40, 55h, 11h,00h(2024) 28,26h,21h,61h(2025) 47 ,26h, 61h, 00h (2026)36, 13h, 31h,00h(2027) 25,05h,31h,51h(2028) 43 ,12h, 54h, 00h (2029)33, 51h, 25h,00h(2030) 22,42h,25h,31h(2031) 41 ,32h, 22h, 00h (2032)30, 55h, 02h,71h(2033) 49,55h,22h,00h(2034) 38 ,26h, 62h, 00h (2035)27, 13h, 64h,60h(2036) 45,13h,32h,00h(2037) 34 ,12h, 55h, 00h (2038)23, 10h, 53h,51h(2039) 42,22h,45h,00h(2040) 31 ,52h, 22h, 00h (2041)21, 52h, 44h,21h(2042) 40,55h,44h,00h(2043) 29 ,26h, 50h, 71h (2044)47, 26h, 64h,00h(2045) 36,25h,32h,00h(2046) 25 ,23h, 32h, 50h (2047)44, 44h, 55h,00h(2048) 32,24h 45h,00h(2049) 22 ,55h, 11h, 30h (2050)有了算法和数据以后,就可设计软件了。首先要根据当前的日期,算出阳历为该年中的第几天。图8为计算阳历中任何一天在该年中为第几天的程序流程图。总天数中加入该月天数当前月为1月?当前号数是总天数月数加1总天数中加入号数计算阴历天数结束,总天数的数据为当前日期在阴历年中第几天与前月同?置阳历总天数为0nn y y 图 4-3 计算阳历天数程序流程图计算出当前阳历日期为该年中的第几天后,再减去阳历该年春节和元旦的日差,如果够减,则相减的结果就是阴历在该年中的总第几天了。根据该数据就可以推算出具体的当前阴历日期;如果不够减,则表示当前阴历年为阳历年的前一年。这种情况下,根据实际,当前阴历日期会处于阴历11月或12月,此时春节和元旦的日差减去前面计算出的当前阳历日期在阳历年为第几天的数据,其结果表示当前阴历日期离春节的天数。计算出的阳历天数为该年的第几天,存放在及存器r2和r3中。计算出天数后,如果大于#ffh存放在r2中,余值存放在r3中。也就是说在用寄存器r2和r3表示的天数信息中,r2充当主寄存器,数据先存满r2,再存r3.在整个装换程序中,这里面的数据不能被覆盖。计算出阳历总天数后,就可以根据它来推算阴历日期。推算方法是,先用总天数减去春节和元旦的日差,如果结果为1,则该天正好是春节(因为春节在元旦之后,在计算春节和元旦的日差时,假设元旦为0天,春节为n天,则日差为n。而前面计算的阳历总天数是该天在该年中的第几天,是以元旦为1而得到的,与计算春节和元旦日差的这种方法相比,其数值少了1,所以要在原来本应该以0作为天就是春节的依据的基础上加1,所以以1作为该天是春节的标志);如果结果小于1,则阴历应该是阳历的前一年;如果结果大于1,说明阳历和阴历为同一年。再根据查表所得的该年的阴历的闰年和大小月的信息,就可以推算出该天的阴历日期了。图9为由总天数推算出阴历的程序流程图。r2减一个月天数月加1r2=r2+r3r3=0减去闰年天数程序入口月份为当年前正在减的月份,号数为r2中的值月份为当年前正在减的月份的前一个月的最后一天r2=0?下个月为闰月?够减?r3=0?yyyynnnn图 4-4 推算阴历日期的程序流程图第5章 调试及性能分析5.1调试步骤 调试分为硬件调试和软件调试。硬件调试主要是检测硬件电路是否有短路、断路、虚焊等。ds1302的硬件电路很简单,只通过3根线于单片机相连,很容易检测,主要是检查其引脚,如晶振和电源等是否接好。另外可以通过软件来调试硬件,如为了测试显示电路连接是否正确,可以编写一个简单的显示程序来测量它。接下来可进行软件调试,可以编写只含ds1302的计时和读写程序、显示程序,测试ds1302是否正常工作。最后调试时间,调整程序和阴历推算程序。 5.2性能分析计时器最关键的是计时的精度。电子万年历中ds1302上最好使用专用的晶振。经测试制作的电子万年历,一星期快了3秒左右,误差较大,试验设计中可换用标准晶振或用软件进行修正。 结束语拿到我的毕业设计题目时,很熟悉,很贴近生活电子万年历。说的一点都不夸张,我们现在已经基本离不开电子时钟了。可是越是熟悉的东西越是容易被忽略,所以我对电子时钟的认识也是了了啊,比如硬件设置,软件设计,具体的实施方法等。所以我们一遍一遍的去找陈老师,他也很有耐心的讲解,给我们正确的引导思路,在设计过程中应注意的事项,在此向陈老师致谢。有了思路后,就是根据题目的要求,设计系统的几个重要模块,也就是整体的骨架有了,包括主控电路,时钟电路,显示电路等,要显示19位,又要节省硬件设备,所以要用到驱动电路。然后就是查阅相关的书籍,面对着书的海洋,真有点手足无措,还好有老师的指导,同学的帮忙。当然在科技如此发达的今天,网络已经成了我们获取信息的一种重要手段。经过了几个星期的查找,基本的资料准备的差不多了,然后就是把它们进行比较。对比硬件的性能和实用性并进行筛选。最后确定驱动电路选择74ls164,主控电路用at89c51等。到目前为止,准备工作已基本完成,我们就开始着手把这些零碎的东西进行整合,开始论文的写作。期间又遇到很多的困难,很着急,有时问同学,有时不得不把已经的忘掉的东西再重新拾起,解决问题的过程就是学习的过程,一次全面巩固的过程,就这样一直到最后。到目前为止论文已经完成。这次设计过程中,让我进一步的体验到团队力量的重要,刻苦专研的美丽与快乐。我也很感谢我的伙伴,他的吃苦耐劳的精神值得我学习。结语很简单,可是过程不简单。也忠心的希望自己能在将来的学习工作中逐渐磨砺出坚忍不拔的性格。最后要感谢我的指导老师,您的细心指导使我很快进入主题,并顺利的完成毕业论文。致谢本论文是在我的导师陈老师悉心的指导下完成,在整个设计的阶段,陈老师除了给我提出方案外,也留给我主动解决问题的空间,使我在整个过程中很好的锻炼了主动分析和解决问题的能力。毕业设计本身就是将理论和实际工作结合起来的演习,是陈老师的指导和帮助教会了我独立思考,主动分析和解决问题,为我今后走出校门和迈向工作岗位奠定了坚定地基础,在此对导师表示衷心感谢和敬意。同时还要感谢和我一起学习的组员们,他们在我设计期间给予我很多帮助。没有大家帮助,我将无法顺利完成设计,再次致以衷心的感谢。参考文献1 王新颖. 单片机原理及应用. 北京:北京大学出版社,20082 陈忠平. 单片机基础与最小系统实践. 北京:北京航空航天大学出版社,20063 窦振中. 单片机外围器件实用手册存储器分册. 北京:北京航空航天大学出版社,20054 沈庆阳,郭庭吉. 8051单片机实践与应用. 北京:清华大学出版社,20035 侯玉宝,李成群. 基于proteus的51系列单片机设计与仿真. 北京: 电子工业出版社,20086 何立民.单片机应用技术选编. 北京:北京航空航天出版社,20067 杨振江,杜铁军. 流行单片机实用子程序及应用实例.西安:西安电子科技大学出版社,20078 于复生,宋现春. 时钟芯片ds1302及其在数据记录中的应用. 北京:北京航空航天大学出版社,2006 9 王明顺.可涓流充电的串行实时时钟芯片ds1302及应用设计.西安:电子技术应用,200910 刘和平.单片机原理及接口程序设计. 北京: 北京航天航空大学出版社,2008 11 李学海.pic单片机使用教程-提高篇 . 北京:北京航天航空大学出版社,2009 12 耿长青.单片机应用技术 . 北京: 化工出版社,2008附录1: 程序清单;*;* 万年历程序 *;*;67h(高两位年)66h(低两位年)65h(月)64h(星期);63h(日)62h(小时)61h(分)60h(秒)57h(农历月)56h(农日);显示缓冲单元7ch7bh(4ch4bh)年低位,7ah79h(4ah49h)月,;78h(48h)星期,77h76h(47h46h)日,75h74h(45h44h)时,;73h72h(43h42h)分,71h70h(41h40h)秒,5eh5dh(55h54h)农历年;5ch5bh(53h52h)农历月,5ah59h(51h50h)农历日;闰年标志为f0,定时器t1为调整时候闪烁用; lcall getweek; mov 78h,weeksclk bit p3.2io bit p3.3rst bit p3.4time_year data 66htime_month data 65hweek data 64htime_day data 63hhour data 62hmintue data 61hsecond data 60hds1302_addr data 32hds1302_data data 31hstart_year equ 01; 定义查询表起始

温馨提示

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

评论

0/150

提交评论