基于AT89C51单片机的多功能电子万年历的设计

更新时间:2024-07-06 12:43:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

青岛科技大学本科毕业设计(论文)

1. 前言

1.1 课题研究背景

伴随着科技的快速发展,时间的流逝,从观察太阳、摆钟到现在电子钟,人类不断的研究,不断的创新纪录。随着人们的生活水平的提高和生活节奏加快,对时间的要求也越来越高,精准数字计时的消费需求也就越来越多。二十一世纪的今天,最具有代表性的计时产品就是电子数字万年历,它是近代世界钟表业界的第三次革命。第一次是摆和摆轮游丝的发明,相对较稳定的机械振荡频率源使钟表的走时差从分级缩小至秒级,代表性的产品是带有摆或摆轮游丝的机械钟或者表。第二次革命则是石英晶体振荡器的应用,发明了走时精度更高的石英电子钟表,也使钟表的走时月差从分级缩小到秒级。第三次革命就是单片机数码计时技术的应用(电子数字万年历),使计时产品的走时日差从分级缩小至1/600万秒,从原有的传统指针计时的方式发展成为人们日常更为熟悉的夜光数字显示方式,直观明了,并且增加了全自动日期、星期、温度以及其他日常附属带来了钟表计时业界跨跃性的进步。

国产的电子万年历有很多种,总体上来说以研究多功能电子数字万年历为主,使万年历除了原有的显示时间,日期等基本功能之外,还具有闹铃,报警等功能。商家生产的电子数字万年历更从质量,价格,实用上考虑,不断的改进电子万年历的设计,使其更加的具有市场。

本设计为软硬件相结合的一组设计。在软件设计过程中,应对硬件部分有相关了解,有助于对设计题目的更深了解和软件设计。要了解一些主要器件的基本功能和作用。

除了采用集成化的时钟芯片之外,利用AT89系列单片机制成万年历电路,采用软硬件结合的方法,分别用来显示年、月、日、时、分、秒,其最大特点是:硬件电路简单,安装方便易于实现,软件设计独特,可靠。AT89C51单片机是由ATMEL公司推出的一种小型单片机。95年出现在中国市场。主要特点为采用了Flash存贮器技术,降低了制造成本,其软硬件与MCS-51完全兼容,可以很快被中国广大用户接受。

1

基于AT89C51单片机的多功能电子万年历的设计的毕业设计

1.2课题研究目的与意义

二十一世纪是数字化技术高速发展的时期,同时单片机在数字化高速发展的时期扮演着非常重要的地位。电子数字万年历的开发研究在信息化时代的今天也是当务之急,因为其应用在学校、机关、企业、部队等等单位礼堂、训练场地、教学室、公共场地等多种场合,可以说几乎遍及了人们生活的每一个角落。所以说电子数字万年历的开发是满足国家之所需,社会之所需,人民之所需。

随着电子技术发展,人类的不断研究,不断的创新纪录。万年历目前已经不再局限于以书本的形式出现。以电脑软件或者电子产品形式出现的万年历被称为电子数字万年历。与传统书本式的万年历相比,电子数字万年历得到了越来越广泛的应用,采用电子时钟作为时间显示已经成为时尚。目前市场上各式各样的电子时钟早已数不胜数,但大多数是只针对时间显示,功能单一不能满足人们日常生活需求。

本文提出了一种基于AT89C51单片机的万年历设计的方案,本方案以AT89C51单片机作为主控核心,与时钟芯片DS1302、LED显示等模块组成硬件系统。能显示丰富的信息,此万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等多项优点,符合电子仪器仪表的未来发展趋势,具有广阔的市场前景。

随着社会对信息交换不断提高的要求和高新技术的逐步发展,促使电子数字万年历的发展并且投入市场可以得到非常广泛应用。

1.3课题解决的主要内容

本课题所研究的电子数字万年历是单片机控制技术的一个具体的应用,主要研究内容包括以下几个方面:

(1)选用电子数字万年历芯片时,重点应考虑功能实在、使用方便、单片存储、低功耗、抗断电的元器件。

(2)根据选用的电子数字万年历芯片设计外围电路和单片机的接口电路。 (3)在硬件设计时,设计结构要尽量简单实用、易于实现,使系统电路尽量简单明了。

(4)根据硬件电路图,在开发板上完成元器件的焊接。

青岛科技大学本科毕业设计(论文)

(5)根据设计的硬件电路,编写控制AT89C51的单片机程序。

(6)通过编程、编译、调试,把编写的程序下载到单片机上进行运行,并实现本设计的功能。

(7)在硬件电路和软件程序设计时,主要考虑放在提高人机界面的友好性,方便用户操作等多种因素。

(8)软件设计时必须要拥有完善的思路,做到程序简单,调试方便。

3

基于AT89C51单片机的多功能电子万年历的设计的毕业设计

2.系统的整体设计

单片机电子数字万年历的制作有多种方法,可供选择的元器件和运用的技术也有很多种。所以,系统总体设计方案应在满足系统功能前提下,充分的考虑系统的使用环境,所选的结构要方便使用、易于实现,元器件的选用着重于合适的参数、稳定的性能、较低的功耗以及低廉的成本等多种因素。

2.1系统方案的构想与确定

系统的功能通常决定了系统采用的结构,经过成本,性能,功耗等多方面考虑决定用三个8位74LS164串行接口外接LED显示器,RESPACK-8对AT89C51单片机进行供电,时间芯片DS1302连接AT89C51单片机。从而实现电子数字万年历的功能。

2.2 器件的选用

单片机:AT89C51 电容:RESPACK-8 三个8位74LS164串行接口 传感器DS1302 2.2.1单片机的选择

单片机自70年代问世以来都以微处理器(MPU)技术及超大规模集成电路技术的发展为先导,通过广泛的应用领域拉动得到了蓬勃发展,单片机功能也日渐完善。由于单片机的应用,使许多领域的技术水平和自动化程度都大大提高,可以不夸张的说当今世界正在经受着一场以单片机技术为标志的新技术革命浪潮冲击。主要的单片机类型如下:

(1)MCS-51系列单片机

MCS-51系列单片机主要指Intel公司生产的以51位内核的单片机芯片,具有8位CPU、4K字节的ROM、128字节的RAM、同时可扩展外部64K字节RAM和ROM、两个16位的定时器、四个8位并行I/O口、一个全双工串行I/O口、21字节专用寄存器、五个中断源、片内自带振荡器、片内单总线等功能部件。

青岛科技大学本科毕业设计(论文)

(2)AT89C51单片机

AT89C51是一种带4K字节FLASH存储器 (FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能的CMOS 8位微处理器,俗称为单片机。AT89C2051单片机是一种带2K字节闪存,可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用了ATMEL高密度非易失存储器制造技术制造,和工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在了单个芯片中,ATMEL的AT89C51是一种高效微控制器,而AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性较高且价廉的方案。

外形及引脚的排列如图2-1所示

图2-1 AT89C单片机外形及引脚排列 Figure 2-1 AT89C chip shape and alignment pins

5

基于AT89C51单片机的多功能电子万年历的设计的毕业设计

AT89C51单片机主要的特性如下: ? 和MCS-51产品指令系统完全兼容

? 4K字节在线编程Flash存储器,1000次擦写周期 ? 工作电压范围4.0~5.5V ? 全静态工作模式:0~33MHz ? 三级程序存储器锁 ? 内部RAM128×8字节 ? 三十二个可编程I/O口线 ? 两个16位定时/计数器 ? 六个中断源

? 全双工串行UART通道 ? 低功耗空闲和掉电模式 ? 中断可从空闲模式唤醒系统 ? 看门狗(WDT)和双数据指针 ? 掉电标识和快速编程的特性 ? 具有掉电状态下中断恢复功能

? 灵活的在系统编程(ISP字节或页写模式)

因为AT89C51单片机片内有4K字节的在线编程Flash存储器,而且可以擦写1000次,具有掉电模式,而且具有掉电状态下中断恢复功能,对设计开发非常实用。所以选用AT89C51单片机作为电子数字万年历芯片的控制单片机。

青岛科技大学本科毕业设计(论文)

3. 软件无线电及其组成

根据上述所确定的系统方案构想,下面开始进行系统硬件电路的具体设计,系统总体结构框图如下图所示。

3.1 软件无线电的概念

3.1.1系统硬件框图

系统硬件框图如图3-1

时钟芯片DS1302 AT89C51 P2口 串口 LED显示器 驱动电路

图3-1 系统硬件框图

Figure 3-1 block diagram of system hardware

3.1.2 AT89C51单片机结构

本系统采用的是ATMEL公司生产的AT89C51单片机,首先我们来熟悉一下AT89C51单片机的外部引脚与内部结构。

1.单片机的引脚功能:

? AT89C51单片机共有40个引脚。 ? Vcc:电源电压+5V ? GND:接地

? P0口:P0口是一组8位漏极开路型双向I/O口,即地址/数据总线复用

口。作为输出口时,每位能驱动8个TTL逻辑门电路,对端口写“1”可以作为高阻抗输入端用。

7

基于AT89C51单片机的多功能电子万年历的设计的毕业设计

在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)与数据总线服用,在访问期间激活内部上拉电阻。

Flash编程时,P0口接收指令字节,但在程序校验时,输出指令字节,校验时要求外接上拉电阻。

P1口:P1口是一个带内部上拉电阻的八位双向I/O,P1的输出缓冲级可以驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉至高电平,这时可作输入口。作为输入口使用时,因为内部存在上拉电阻,当某个引脚被外部信号拉低时会输出一个电流。

Flash 编程和程序校验时,P1接收低8位地址。

P2口:P2口是一个带有内部上拉电阻的8位双向I/O,P2的输出缓冲级可以驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉至高电平,此时可以作输入口。作为输入口使用时,因为内部存在有上拉电阻,某个引脚被外部信号拉低时会输出一个电流。

在访问外部程序存储器或者16位地址的外部数据存储器(例如执行MOVX@DPTR指令)时,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口的第二功能图

Table 3-1 P3 port second function diagram

端口引脚 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 第二功能 RXD(串行输入口) TXD(串行输出口) INT0(外中断0) INT1(外中断1) T0(定时/计时器0外部输入) T1(定时/计时器1外部输入) WR(外部数据存储器写选通) RD(外部数据存储器读选通) 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仅访问外部程序存储器(地址为0000H—FFFFH),EA端必须保持低电平(接地)。需要注意的是:如加密位LB1被编程,复位时内部会锁存EA端状态。

如EA端为高电平(接Vcc端),CPU则要执行内部程序存储器中的指令。

9

基于AT89C51单片机的多功能电子万年历的设计的毕业设计

Flash存储器编程时,该引脚加+12V的变成电压Vpp. XTAL1:振荡器反相放大器和内部时钟发生器的输入端。 XTAL2:振荡器反相放大器的输出端。 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单片机内含有两个16位的定时器/计数器。当用于定时器方式时,定时器的输入来自于内部时钟发生电路,每过一个机器周期,

青岛科技大学本科毕业设计(论文)

定时器加1,因为一个机器周期包含有12个振荡周期,所以,定时器的技术频率为晶振频率的1/12,计数频率最高为晶振频率的1/24。为了实现定时和计数功能,定时器中含有3种基本的寄存器:方式寄存器、控制寄存器和定时器/计数器。方式寄存器是一个8位的寄存器,用于确定定时器的工作方式,控制寄存器是一个8位的寄存器,用于控制定时器的工作状态,定时器/计数器是16位的计数器,分为高字节和低字节两部分。

RAM:高于7FH内部数据存储器的地址是8位的,也就是说其地址空间大小只有256字节,但内部RAM的寻址方式实际上可提供384字节的直接地址访问同一个存储空间,高于7FH的间接地址访问另外一个存储空间。这样,虽然高128字节区分与专用寄器 ,即特殊功能寄存器区的地址是重合的,但是实际上它们是分开的。究竟访问哪一区,是通过不同的寻址方式加以区分的。

SFR:SFR是具有特殊功能的所有寄存器的集合,共含有22个不同寄存器,它们的地址分配在80H~FFH中。虽然如此,并不是所有的单元都被特殊功能寄存器占用,未被占用的单元,其内容是不能确定的。如对这些单元进行读操作,得到的是一些随机数,而写入则无效,所以在编程时不应该将数据写入这些不确定的地址单元中,特殊功能寄存器主要有B寄存器、累加器ACC、程序状态字寄存器PSW、堆栈指针SP、数据指针DPTR、I/O端口、串行口数据缓冲器SBUF、捕捉寄存器、定时器寄存器、控制寄存器。

中断系统:AT89C51单片机有6个中断源,中断系统主要是由中断允许寄存器IE、中断优先级寄存器IP、优先级结构和一些逻辑门组成的。IE寄存器用于允许或禁止中断;IP寄存器用于确定中断源的优先级别;优先级结构用于执行中断源的优先排序;有关逻辑门用于输入中断请求信号。整个中断响应过程中CPU所执行的操作步骤如下:

(1)完成当前指令的操作 (2)将PC内容压入堆栈 (3)保存当前中断状态 (4)阻止同级中断请求

(5)将中断程序入口地址送PC寄存器 (6)执行中断服务程序 (7)返回

11

基于AT89C51单片机的多功能电子万年历的设计的毕业设计

3.1.3 8位移位寄存器74LS164(串行输入,并行输出)

74LS164为8位移位寄存器,其主要电特性的典型值如表3-2:

表3-2 74LS164主要电特性典型值

Table 3-2 74LS164 main electrical characteristics of typical

value

型号 54/74164 54/74LS164 fm 36MHz 36 MHz Pn 185mW 80mW 当清除端(CLEAR)为低电平时,输出端(QA-QH)均为低电平。 串行数据输入端(A,B)可控制数据。当A、B任意一个为低电平时停止新数据输入,在时钟端(CLOCK)脉冲上升沿作用下Q0为低电平。当有一个为高电平,则另一个就允许输入数据,并在CLOCK上升沿作用Q0的状态。

引出端符号

CLOCK 时钟输入端

CLEAR 同步清除输入端(低电平有效) A,B 串行数据输入端 QA-QH 输出端

逻辑及封装图,如3-2,3-3

青岛科技大学本科毕业设计(论文)

图3-2 逻辑图 Figure 3-2 logic diagram

图3-3 封装图 Figure 3-3 package diagram

极限值

电源电压?????????????7V 输入电压?????????????5.5V 工作环境温度

54164??????????????-55~125℃ 74164??????????????-0~70℃ 储存温度??????????????-65℃~150℃

13

基于AT89C51单片机的多功能电子万年历的设计的毕业设计

图3-4真值表 Figure 3-4 truth table

H-高电平L-低电平X-任意电平↑-低到高电平跳变 QA0,QB0,QH0-规定的稳态条件建立前的电平 QAn,QGn-时钟最近的↑前的电平 时序图如下3-5

图3-5 时序图 Figure 3-5 sequence diagram

青岛科技大学本科毕业设计(论文)

推荐工作条件如图3-6:

图3-6推荐工作条件

Figure 3-6 recommended operating conditions

静态特性(TA为工作环境温度范围)如图3-7

图3-7工作环境温度范围

Figure 3-7 operating ambient temperature range

[1]:测试条件中的“最小”和“最大”用推荐工作条件中的相应值。 动态特性(TA=25℃)如图3-8

15

基于AT89C51单片机的多功能电子万年历的设计的毕业设计

图3-8动态特性

Figure 3-8dynamic characteristics

[2]:fmax最大时钟频率。tPLH输出由低电平到高电平传输延迟时间tPHL输出由高电平到低电平传输延迟时间 3.1.4 ds1302

现在流行的串行时钟电路很多,例如DS1302、 DS1307、PCF8485等。这些电路的接口简单、价格低廉、使用方便,被广泛地采用。以下介绍的实时时钟电路DS1302是DALLAS公司的一种具有涓细电流充电能力的电路,主要的特点是采用串行数据传输,可为掉电保护电源提供可编程的充电功能,并可以关闭充电功能。采用普通32.768kHz晶振。

DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、周、日、时、分、秒进行计时,具有闰年补偿功能,工作电压范围为2.5V~5.5V。采用三线接口与CPU进行同步通信,并且可以采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。DS1302为DS1202的升级产品,与DS1202兼容,但增加了主电源/后背电源双电源引脚,并且提供了对后背电源进行涓细电流充电的能力。

DS1302的引脚排列,Vcc1为后备电源,Vcc2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大的一个供电。在Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。在Vcc2小于Vcc1时,DS1302由Vcc1供电。X1和X2是振荡源,外接32.768kHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能性:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或者多字节数据的传送手段。在RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程当中RST

青岛科技大学本科毕业设计(论文)

置为低电平,就会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在Vcc≥2.5V之前,RST必须保持低电平。在SCLK为低电平时,才能将RST置为高电平。I/O为串行数据输入输出端(双向),后面有详细说明。SCLK始终是输入端。

DS1302 的控制字节的最高有效位必须是逻辑1,如果它为0,就不能把数据写入DS1302中,位6如果为0,就表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。

在控制指令字输入后的下一个SCLK时钟的上升沿时,数据会被写入DS1902,数据输入从低位即位0开始。同上,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时候从低位0位到高位7。

DS1302拥有12个寄存器,其中有7个寄存器和日历、时钟相关,存放的数据位为BCD码形式。

此外,DS1302 还有年份寄存器、充电寄存器、控制寄存器、时钟突发寄存器及和RAM相关的寄存器等。时钟突发寄存器可以一次性顺序读写除充电寄存器外的其他所有寄存器内容。 DS1302和RAM相关的寄存器分为两种:一种是单个RAM单元,共31个,每一个单元组态为一个8位的字节,其命令控制字为C0H~FDH,其中,奇数为读操作,偶数为写操作;另一种为突发方式下的RAM寄存器,在此方式下可一次性读写RAM的所有31个字节,命令控制字为FEH(写)、FFH(读)。

DS1302与CPU的连接共需要三条线,即SCLK(7)、I/O(6)、RST(5)。 DS1302与CPU的连接,实际上,在调试程序的时候可以不加电容器,只需加一个32.768kHz 的晶振即可。只是在选择晶振时,不同的晶振,误差也会较大。另外,也可以加入DS18B20,同时可以显示实时温度。只要占用CPU的一个口线即可。 LED也可以换成LCD,也可以使用北京卫信杰科技发展有限公司生产的10位多功能8段液晶显示模块LCM101,内含看门狗(WDT)/时钟发生器和两种频率的蜂鸣器驱动电路,并且有内置显示RAM,可以显示任意字段笔划,并具有3-4线串行接口,可以与任何单片机、IC接口。功耗较低,显示状态时电流为2μA (典型值),省电模式时小于1μA,工作电压范围为2.4V~3.3V,显示较清晰。

下面对DS1302的基本操作进行编程:

17

基于AT89C51单片机的多功能电子万年历的设计的毕业设计

根据本人在调试中遇到的一些问题,特作如下说明:

DS1302 和微处理器进行数据交换时,首先是由微处理器向电路发送命令字节,命令字节最高位MSB(D7)必须是逻辑1,如果D7=0,则禁止写DS1302,即写保护;D6=0,指定时钟数据,D6=1,指定RAM数据;D5~D1指定输入或输出的特定寄存器;最低位LSB(D0)为逻辑0,指定写操作, D0=1,指定读操作。

在DS1302的时钟日历或者RAM进行数据传送时,DS1302必须先发送命令字节。若进行单字节传送,在8位命令字节传送结束之后,在下两个SCLK周期的上升沿输入数据字节,或在下八个SCLK周期的下降沿输出数据字节。

DS1302和RAM相关的寄存器分为两种:一种是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0H~FDH,其中奇数是读操作,偶数是写操作;再一种为突发方式下的RAM寄存器,在此方式下可一次性读、写RAM所有的31个字节。

要特别说明的是备用电源B1,可以使用电池或者超级电容器(0.1F以上)。虽然DS1302在主电源掉电后的耗电极小,但是,如果要保证时钟长时间的正常,最好选用小型的充电电池。可以使用老式电脑主板上的3.6V充电电池。如果断电时间较短(几小时或几天)的时候,就可以使用漏电较小的普通电解电容器进行代替。100 μF就可以保证时钟1小时的正常走时。DS1302在第一次加电后,必须要进行初始化操作。初始化后就可以按照正常方法调整时间。

DS1302 存在时钟精度不高,较易受环境影响,出现时钟混乱等缺点。DS1302可以用于数据的记录,特别是对某些具有特殊意义的数据点的记录,能够实现数据和出现该数据的时间同时记录。这种记录对于长时间的连续测控系统结果的分析和对异常数据出现原因的查找都具有很重要的意义。传统的数据记录方式是隔时采样或者定时采样,没有具体的时间记录,因此只能记录数据却无法准确记录其出现的时间;如果采用单片机计时,一方面需要采用计数器,会占用硬件资源,另一方面还需要设置中断、查询等,同样会耗费单片机的资源,而且,某些测控系统还可能不允许。但是,如果在系统中采用时钟芯片DS1302,就可以很好地解决这个问题。

青岛科技大学本科毕业设计(论文)

4. 系统的软件设计

电子数字万年历的功能是在程序控制下实现的。该系统的软件设计方法和硬件设计相对应,按照整体功能分成多个不同的程序模块,分别进行设计、编程和调试,最后再通过主程序将各程序模块连接起来。这样有利于程序的修改和调试,增强程序的可移植性。

4.1 主程序

主程序如图4-1所示:

开始 读年、月、日 送第一块LED显示 读星期、闰、年、日 送第二块LED显示 读时、分、秒 送第三块LED显示 返回 图4-1 主程序图

Figure 4-1main program diagram

19

基于AT89C51单片机的多功能电子万年历的设计的毕业设计

4.2 从1302读取日期和时

读1302日期和时间 N 需要调整时间吗? Y 调整时间和日期 系统初始化 开 始

图4-2 从1302读取程序 Figure 4-2from1302 to read program

本文来源:https://www.bwwdw.com/article/hx1.html

Top