电子日历毕业设计论文

徐州经贸学院

毕业设计(论文)

设计(论文)题目:基于At89C系列的

电子万年历

系别:1

专业:

班级:

姓名:

学号:

指导教师:

完成时间:

摘要

在当代繁忙的工作与生活中,时间与我们每一个人都有非常密切的关系,每个人都受到时间的影响。我们必须对时间有一个度量,因此产生了钟表。钟表的发展是非常迅速的,从刚开始的机械式钟表到现在普遍用到的数字式钟表,即使现在钟表千奇百怪,但是它们都只是完成一种功能——计时,只是工作原理不同而已,在人们的使用过程中,逐渐发现了钟表的功能太单一,没有更大程度上的满足人们的需求。因此在这里,我想能不能把一些辅助功能加入钟表中去。在此设计中所设计的钟表具有钟表的功能。

本系统采用了以广泛使用的单片机技术为核心,软硬件结合,使硬件部分大为简化,提高了系统稳定性,并采用LCD显示电路、键盘电路,本方案设计出的万年历可以显示日期时间、农历,设置闹铃功能。

In busy job of the present age and life, time has very close something to do with all of us , everyone all accepts the time effect. we must have a magnanimity to time , have produced clock and watch therefore. Development of clock and watch is very prompt , use clock and watch to the digital from just originally mechanical dyadic clock and watch to now commonly, even if now clock and watch is exceedingly strange, they accomplish but one kind of time function of function all only , are only operating principle diversity, in the process of people's usage, the function having discovered clock and watch gradually is very unitary, need not having the satisfied people on bigger degree. Want to be able to I put some auxiliary function in going to in clock and watch therefore in here. Function designing that middle what be designed that clock and watch has average clock and watch's .

And the monolithic machine technology that this system has adopt to use broad usage has been that core , soft hardware combine , the hardware part has facilitated a messenger extremely , has raised system stability, adopt LCD demonstrates circuit , keyboard circuit , The perpetual calendar that the scheme designs out can demonstrate date time , unar calendar , set up the noisy bell function.

关键字:AT89C52、字符液晶显示模块、DS1302

目录

摘要 (2)

关键字 (2)

第一章概述 (4)

1.1 课题的背景研究意义 (4)

1.2 本课题实现的功能及要求 (4)

1.3 方案论证 (4)

1.4 章节安排 (4)

第二章系统硬件设计

2.1 硬件电路设计总框图 (5)

2.2 主控制器AT89C52的介绍 (5)

2.3 其余应用电路的介绍 (8)

第三章软件设计

3.1 软件设计总述 (13)

3.2 程序模块介绍 (13)

第四章调试和总结

4.1 硬件调试 (20)

4.2 软件调试 (20)

4.3 联调 (21)

第五章心得体会 (22)

参考文献

附录一汇编源程序 (23)

附录二仿真电路图 (35)

附录三参考文献 (36)

第一章概述

1.1 课题的背景、研究意义

随着电子技术的迅速发展,时间的流逝,从观察太阳、摆钟到现在的电子钟, 人类不断研究、不断创新。现市场的电子钟具有低功耗的实时时钟电路,它们可以对年、月、日、周日、时、分、秒进行计时,还具有润年补偿等功能,且使用寿命长、误差小、使用方便。电子万年历的出现给人们的生活带来的诸多方便。目前,国际上的电子万年历正从模拟式向数字式、由集成化向智能化的方向飞速发展。

综上所述此万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。

1.2实现的功能及要求

(1)基本要求

①具有年、月、日、星期、时、分、秒等功能;

②具备年、月、日、星期、时、分、秒校准功能。

③校准时具有闪烁功能。

( 2 ) 创新要求

①具有上、下课响铃功能;

1.3 方案论证

显示模块选择方案和论证:

方案一:采用LED数码管动态扫描,LED数码管价格适中,对于显示数字最合适,而且采用动态扫描法与单片机连接时,占用的单片机口线少。但这里显示位数多,所要求的数码管多,成本更高。

方案二:采用LCD液晶显示屏,液晶显示屏的显示功能强大,可显示大量文字,图形,显示多样,清晰可见,虽价格昂贵,但接口线多,所以在此设计中采用LCD液晶显示屏。

时钟芯片的选择方案和论证:

方案一:采用DS1302时钟芯片实现时钟,DS1302芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、周、月、年以及闰年补偿的年进行计数,而且精度高,结构简单。所以采用DS1302时钟芯片。方案二:直接采用单片机定时计数器提供秒信号,使用程序实现年、月、日、星期、时、分、秒计数。采用此种方案虽然减少芯片的使用,节约成本,但是,实现的时间误差较大。且算法复杂,所以不采用此方案。

经论证本次设计采用采用AT89S52作为主控制系统; DS1302提供时钟;采用LCD液晶作为显示。

1.4章节安排

第一章概述

第二章系统硬件设计

第三章系统软件设计

第四章调试

第五章心得体会

第二章系统硬件设计

2.1硬件的设计总框图

本次设计的基于单片机控制的电子万年历,其具有年、月、日、星期、时、分、秒的显示等功能;具有时间与阴、阳历能够自动关联;可以设置闹铃的功能。其具体实现过程就是由主控制发送信息给DS1302时钟芯片再由时钟芯片反馈给单片机,再由主控制器传送给LCD显示信息。并且可以在键盘设置模块输入修改时间,设置闹铃等信息,当键盘设置时间、日期时,单片机主控制根据输入信息,通过串口通信传送给DS1302时钟芯片,DS1302芯片读取当前新信息产生反馈传送给单片机,然后单片机根据控制最后输送显示信息到LCD模块上显示。

2.2主控制器AT89C52介绍

1.AT89C52功能介绍

AT89C52是8字节FLASH闪速存储器,256字竹内部RAM , 32个I/O口线,3个16 位定时/计数器,一个6向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89c52可降至OHz的静态逻辑操作,并支持两种软件可选的节电上作模式。空闲方式停止CPU 的工作,但允许RAM,定时/计数器.串行通信口及中断系统继续工作。掉电方式保存RAM 中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位.

2.功能引脚说明:

Vcc:电源电压

GND:地

P0:P0口是一组8位漏极开路型双向1/O 口,也即地址/数据总线复用口。作为输出口用时.每位能吸收电流的方式驱动8个TTL 逻辑门电路,对端口P0 写“1”时,可作为高阻抗输入端用。

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

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

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

与AT89C51不同之处是,Pl.0 和P1.1还可分别作为定时/计数器2 的外部计数输入(Pl.0/T2 )和输入(P1.1/T2EX) ,

FLASH编程和程序校验期间,Pl接收低8位地址。

PI.O 和PI.l 的第二功能:

P2 是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)

作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(llt )。在访问外部程序存储器或16位地址的外部数据存储器,P2送出高8 位地址数据。在访问8位地址的外部数据存储器、如执行MOVX@RI指令)时,P2口输出P2锁存器的内容。

FLASH编程或校验时,P2亦接收高位地址和一些控制信号。

P3口:P3口是一组带有内部上拉电阻的8位双向I/O口。P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的P3口将用上拉电阻输出电流(IIL) .

P3口除了作为一般的I/0口线外,更重要的用途是它的第二功能,如下表所示:

P3.0 RXD(串行输入口〕

P3.1 TXD(串行输出口〕

P3.2 INTO(外中断0〕

P3.3 INTO(外中断l)

P3.4 TO (定时/计数器0 )

P3.5 Tl (定时/计数器l )

P3.6 WR(外部数据存储器写选通)

P3.7 RD(外部数据存储器读选通)

此外,P3口还接收一些用于FLASH闪速存储器编程和程序校验的控制信号。

RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。

ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节.一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对Flash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位.可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活,此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。

PSEN:程序储存允许PSEN输出是外部程序存储器的读选通信号,当AT89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。在此期间,当访问外部数据存储器,将跳过两次PSEN信号。

EA/VPP:外部访问允许。欲使CPU 仅访问外部程序存储器(地址为0000H-FFFFH ) , EA端必须保持低电平(接地).需注怠的是:如果加密位LBI被编程,复位时内部会锁存EA端状态。

3.最小系统

单片机最小系统包括时钟电路、电源和复位电路等,是单片机工作的基本要求。单片机控制整个系统的工作,一方面读取日历时钟芯片中的日期等数据,检测是否需要设置,并处理相应的按键。另一方面,控制显示器的工作,将各种数据送到液晶显示器去显示。

(1)时钟电路

80C52型单片机内有一增益反相放大器,振荡频率取决于石英晶体的振荡频率。范围可取1。

2—12MHZ,C01、C02主要起频率微调和稳定作用。

(2)复位电路

单片机在开关机时都需要复位,以便中央处理器CPU及其他功能部件都RC构成处于一个确定的初始状态,并从这个状态开始工作。80C51的RST引脚是复位信号的输入端。复位信号高电平有效,持续时间需要24个时钟周期以上。

RC构成微分电路,在接电瞬间,产生一个微分脉冲,其宽度若大于2个机器周期,80C51型单片机将复位。为保证微分脉冲宽度足够大,RC时间常数应大于2个机器周期。一般取10uF电容、8.2K欧姆电阻。

4.振荡器特性:

和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。

2.3其余电路介绍

2.3.1显示电路

液晶显示器的接口有两种:一种是总线式接口电路方式;另一种是非总线接口电路方式。总线式接口方式是把液晶显示器看做外部的数据存储器,访问液晶显示器就像访问数据存储器的一个单元一样,采用这种方式能充分发挥单片机的总线读写功能,便于升级和扩展。而非总线方式是直接利用IO 口进行读写,较灵活,不便于升级。这里采用总线式接口方式。接口时要注意显示器的功能信号E是高电平有效,所以要取反。这里使用的液晶显示器为LCD1602为字符点阵式液晶显示器。可以显示16×2个字符,而要显示日期字符有23个,可以满足要求。

1、LCD模块接口引脚功能

液晶显示模块具有体积小、功耗低、显示内容丰富、超薄轻巧等优点,在袖珍式仪表和低功耗应用系统中得到广泛的应用。目前字符型液晶显示模块已经是单片机应用设计中最常用的信息显示器件。这里向大家介绍一款LCD1602液晶显示模块,它可以显示两行,每行16个字符,采用单+5V电源供电,外围电路配置简单,价格便宜,具有很高的性价比。

2. 硬件电路

DS1302的4、5、6的三个管脚是其控制位。其7、8、9、10、11、12、13、14管脚是总线接口。1管脚是电源地。2管脚是电源接口。

3、LCD1602与AT89c52的接口

AT89c52的P1口直接与液晶模块的数据总线D0~D7相连;P2 口的0,1,2脚分别与液晶模块的RS、RW、E脚相连。滑动变阻器用于调整液晶显示的亮度。

液晶显示器的接口有两种:一种是总线式接口电路方式;另一种是非总线接口电路方式。总线式接口方式是把液晶显示器看做外部的数据存储器,访问液晶显示器就像访问数据存储器的一个单元一样,采用这种方式能充分发挥单片机的总线读写功能,便于升级和扩展。而非总线方式是直接利用IO口进行读写,较灵活,不便于升级。这里采用总线式接口方式。接口时要注意显示器的功能信号E是高电平有效,所以要取反。这里使用的液晶显示器为LCD1602为字符点阵式液晶显示器。可以显示16×2个字符,而要显示日期字符有23个,可以满足要求。

2.3.2时钟电路

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.0V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。I/O为串行数据输入输出端(双向),后面有详细说明。SCLK为时钟输入端。下图为DS1302的引脚功能图:

(一)引脚功能(如图 6)

VCC1.VCC2:电源引脚。

其中VCC2接主电源.VCC1接备用电源。

GND:接地。输出数据。

X1、X2:32.768kHz。晶振引脚。

RST为复位端,高电平时允许I/O端进行数据传输,低电平则禁止数据传送且使I/O端呈高阻状态;I/O为串行数据输入、输出端,所有输入、输出数据的传送顺序均以最低位LSB打头,最高位MSB结束;SCLK为同步时钟脉冲端,其上升沿将I/O端数据按位写入DS1302,下降沿使DS1302按位输出数据至I/O 端;VCC2、VCC1为主电源和备份电源端,当主电源VCC2大于备份电源VCC1+0.2V时,由VCC2对芯片供电,否则,由VCC1对芯片供电。工作电压范围为2.5~5.5 V,工作电源和备份电源双引脚输入,功耗很低,当工作电压为2.5 V时正常工作,所需电流不超过300 nA。另外,如果选择了涓流充电功能,在正常情况下,主电源还可对备份电源进行慢速充电,有效延长了备份电源的使用寿命,保证了系统时间的连续可靠运行。

内部有振荡器。若采用外部振荡信号时。32768Hz的信号从 X1脚输入.x2脚悬空。 CE:片选端,高电平有效,在有些早期资料中该引脚标成爪ST,实际功能一样。CE端接通控制逻辑,当其为‘0”时,IO引脚变为高阻截状态,所有的数据传送中止,当其为‘1’时,允许数据传送。CE由‘0’至‘1’时。SCIX必须为“0”。

DS1302的内部主要由移位寄存器、指令和控制逻辑、振荡分频电路、实时时钟以及RAM组成。每次操作时,必须首先把CE置为高电平。再把提供地址和命令信息的8位装入移位寄存器。数据在SCLK 的上升沿串行输入。无论是读周期还是写周期发生,也无论传送方式是单字节还是多字节,开始8位将指定内部何处被进行访问。在开始 8个时钟周期把含有地址信息的命令字装入移位寄存器之后。紧随其后的时钟在读操作时输出数据.

2.3.3串口电路

DS1302与微处理器的接口电路如下图所示。该微处理器采用宏晶科技推出AT89C51单片机作为主控芯片,该产品具有片内资源丰富、超强抗干扰、高抗静电、超低功耗、宽电压、不怕电源抖动、在系统可编程、加密性强、无法解密、可降低单片机时钟对外部电磁辐射等特点,其良好的性能保证了各个器件的协调可靠工作及控制要求。在电路中单片机的P1.7控制DS1302的复位输入端,P1.4与数据输入/输出引脚相连,P1.3用来作为 DS1302的输入时钟SCLK控制端。由于单片机复位时,所有单片机的端口均为高电平,如果直接用单片机的某一口线同DS1302的RST相连,则影响了系统加电时对DS1302的初始化,从而造成 DS1302计时的不稳定。因此,本主电源(5 V)接 VCC2,备份电池采用可充电镉镍电池(3.6 V)接 VCC1,可启用内部涓流充电器在主电压正常时向电池充电,以延长电池使用时间。备份电池也可用1微法以上的超容量电容代替,但需要注意的是备份电池电压应略低于主电源工作电压。

2.3.4键盘设置电路

1. 键盘接口介绍

(1)独立式键盘

独立式键盘是指直接用I/O口线构成单个按键电路,每个按键占用一条I/O口线,当某个键闭合时,相应的I/O口线变为低电平,当CPU查询到为低电平的I/O口线时,就可

以判别出与其对应的键处于释放状态。

(2)行列式键盘

将I/O口线的一部分作为行线,另一部分作为行线,按键设置在行线的交叉点上。CPU 通过其电平的高低来判别键是否被按下。但每根线上接有4个按键,任何键按下都有可能使

其电平变低,到底是哪个键按下呢?这是采用了“时分复用”的方法,即在一个查询周期里

把时间分为4个间隔,每个时间间隔对应一个键,在哪个时间间隔查到低电平,则代表是与

之相对应的键被按下。时间间隔的划分是通过列线P1.4~P1.7来实现的。

依次使列线P1.4~P1.7中的一根输出为低电平,则只有与之对应的键按下时,才能使行线为低电平,此时其他列线都输出高电平,与它们对应的键按下,不能使行线电平变低,

所以就实现了行线的时分复用。

由于行列式键盘的按键数量比较多,为了使程序简洁,一般在键处理程序中,给予每个键一个键号,由从列线I/O口输出的数据和从行线I/O口读入的数据得到按键的键号,然后

由该键号通过散转表进入各按键的服务程序。

2.设置电路介绍

设置电路的功能主要是把时间和日期设置到当前的时间,可以在系统运行中进行。用4个独立式按键完成,分别接到单片机P1口的高4位。第1个按钮表示是否进行设置,按下时表示设置,并且每按一次,在显示器上分别在年、月、日等日期时间上跳转,表示对相应的项进行更改;第2个按钮按下表示对第1个按钮选中的项进行加1操作;第3个按钮按下表示进行减1操作;第4个按钮按下表示停止设置。只有在第1个按钮按时才可进行加减操作。其电路如图3所示。其中电容的作用是消除按键的抖动,也可用双稳态触发器去除按键时的抖动,同时为了提高可靠性,硬件去抖动的同时,还可以用软

第三章系统软件设计

3.1软件设计总述

系统软件设计主要包括主程序设计、日期数据采集子模块程序设计、按键处理子模块程序设计和显示子模块程序设计等。主程序主要完成器件的初始化,并判断有无按键按下,并根据判断的结果调用相应的子模块程序;日期数据采集子模块程序完成相应的数据采集、处理和保存,按键处理子模块程序完成日期的设置,而显示子模块程序只要把上述子模块储存的数据送去显示即可。

程序流程图

3.2程序模块介绍

3.2.1显示模块

1.LCD1602的指令系统

液晶模块内部的控制器共有11条控制指令,如表1所示,

(说明:1为高电平、0为低电平)

指令1:清显示,指令码01H,光标复位到地址00H位置

指令2:光标复位,光标返回到地址00H

指令3:光标和显示模式设置

I/D:光标移动方向,高电平右移,低电平左移

S: 屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效

指令4:显示开关控制。

D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示

C:控制光标的开与关,高电平表示有光标,低电平表示无光标

B:控制光标是否闪烁,高电平闪烁,低电平不闪烁

指令5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标

指令6:功能设置命令

DL:高电平时为4位总线,低电平时为8位总线

N:低电平时为单行显示,高电平时双行显示

F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符

指令7:字符发生器RAM地址设置

指令8:DDRAM地址设置

指令9:读忙信号和光标地址 BF:忙标志位,高电平表示忙,此时模块不能接收命令

指令10:写数据

指令11:读数据

液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告

置。

2.控制器接口时序说明(HD44780及兼容芯片)

读操作时序

写操作时序

3.液晶程序

4.子程序流程图

3.2.2 时钟模块设计

对年、月、13、时、分、秒进行计时

1.编程思想

DS1302所进行的一切工作必须先由 CPU向 DS1302发送命令字节,命令字节格式如图 3所示。各位定义如下:命令字节的最高位 7必须为“1”,否则禁止对 DS1302进行操作。第 6位是时钟/日历或 RAM 选择位,如它为“1,,可对内部 RAM读写,如它为“0”可对时钟/日历操作。此处所谓日历型数据即数据格式为压缩型 BCD码,且数值必须在它的定义域内;例如,“月份”的定义域为 1~12,“秒”的定义域为 0~59等等。所谓RAM 型数据即指一般 16进制数据。位 5至位 1为 DS1302内部寄存器地址。DS1302有单字节和多字节两种读、写方式。所谓单字节读、写方式即每次只能从DS1302中读、写 1字节数据。所谓多字节读、写方式则每次可从 DS1302中连续读、写若干字节数据。当位 5至位 1各位均为“1”时,DSI302为多字节读、写方式。最低位 0为“0”表示写操作,否则为读操作。命令字节的传输都是从最低位开始。

DS1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式,其日历、时间寄存器及其控制字见表。DS1302所有的时间数据都放到数据寄存器中:

2. 读,写时序

DS1302采用串行方式与微控制器通讯。在片选信号RST变为高电平后,可向芯片发送指令及读取数据。DS1302的命令字的传输从最低位开始。当对 DS1302进行写数据时,首先发写控制指令,在控制指令字输入后的下一个 SCLK时钟的上升沿,数据被写入 DS1302,数据输入从低位即位 0开始。当对DS1302进行读数据时,首先发读控制指令,在紧跟 8位的控制指令字后的下一个 SCLK脉冲的下降沿读出 DS1302的数据,读出数据时从低位 0位至高位 7。注意在 SCLK为高电平期问,不能读 I/0线,此期间 l/O端为高阻状态。因此,在程序设计时应保证在 SCLK上升沿之前读 I/O线,即可正确读出时钟数据。

DS1302的读,写时序如网所示。输入数据时.在 SCLK上升沿.砌输入的数据位被有效接受输出数据时,在SCLK下降沿时砌输出数据位。要注意的是.在读 DS1302时.当8位命令字写入后紧跟着的第一个下降沿芯片即开始输出数据。

3.时钟子程序设计

实时时钟软件首先应将Et历信息初值——秒、分、时、日、月、星期、年等按序写入到 DS1302相关寄存器中,此后,时钟便以此初值为基准进行计时,只要主电源 VCC2和备份电源 VCC1尚有一个工作正常,则计时就不会终止。初始化El历信息程序分为三部分:

(1)发送“解除写保护”命令字 8EH 和内容

COH,以开放 DS1302写操作。

内部充电电路为一只串联二极管和 8kn限流电阻,因此常规情况下,主电源 VCC2对备份电源 VCC1之最大充电电流为 Imax:(VDD一二极管压降)/限流电阻一(5--0.7)--8=0.538mA。

(3)发送“多字节写日历型数据”或“单字节写日历型数据”命令字写入日历信息初值。上述第1、第2部分属于对 DS1302内部功能寄存器操作,因此必须以“单字节”方式进行发送;而第 3部分属于对 DS1302一般寄存器操作,故可以采用“多字节”方式发送,以便提高效率。同时,在仪表工作过程中需要读取时间日历信息时,可根据具体需要采用“多字节”方式或“单字节”方式。这里,无论采用“单字节”还是“多字节”方式,能否可靠、准确地读出这些信息,其技术关键是和硬件密切相联的 DS1302读写驱动程序的设计。该驱动程序的功能是产生正确的同步时钟脉冲,并在同步时钟脉冲上升沿将数据按位写人 DS1302或在同步时钟脉冲的下降沿按位从 DS1302中读出日历型数据,从而完成 1字节数据的发送或接收。对于“多字节”方式,只需改变命令控制字和增加循环次数即可完成多字节的连续读写。

(4)流程图

3.2.3键盘模块设计

1.程序流程图

2.出现的问题

⑴键的消抖

理想的按键信号是方波形,是一个标准的负脉冲,但实际情况并非如此。按下和释放都需要经过一个过程才能达到稳定,这一过程是处于高低电平之间的一种不稳定状态,称为抖动。抖动持续时间的长短、频率的高低与按键的机械特性及人的操作有关,一般在5~10ms之间。这就有可能造成CPU对一次按键过程做多次处理。为了避免这种情况的发生,应采取措施消除抖动。消除抖动的方法有两种,一种是采取硬件来实现,如用滤波器电路、双稳态电路等。

⑵一键一操作

一键一操作的原理就是当按键按下再弹起时才会有数据传送给主控制器,所以在程序中要有指令,否则会引起误操作,从而成为一键几操作的现象。

相关文档
最新文档