一种创意电子万年历

著录项
  • CN201410637112.8
  • 20141113
  • CN105590548A
  • 20160518
  • 上海闵临机电科技有限公司
  • 周志
  • G09D3/12
  • G09D3/12

  • 上海市闵行区元江路5500号1幢E3498室
  • 上海(31)
摘要
本发明一种创意电子万年历由主控模块、时钟模块、存储模块、键盘接口模块、显示模块和闹铃模块共6个模块组成。主控芯片使用52系列AT89S52单片机,时钟芯片是一种高性能、低功耗、带RAM的实时时钟芯片DS1302,存储模块采用串行EEPROM存储芯片AT24C02。利用单片机进行控制,采用DS1302作为实时时钟芯片,其三线接口SCLK、I/O、与单片机进行同步通信,外加掉电存储电路、显示电路、键盘电路和闹铃电路,即构成一个基本的电子万年历系统,若还要添加其他功能,在这基础上外扩电路即可。
权利要求

1.本发明一种创意电子万年历不使用时钟芯片,而直接用AT89S52单片机来实现电子万年历发明;AT89S52是一种带8K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,俗称单片机;单片机的可擦除只读存储器可以反复擦写1000余次;由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89S52是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的发明;

若采用单片机计时,利用它的一个16位定时器/计数器每50ms产生一个中断信号,中断20次后产生一个秒信号,然后根据时间进制关系依次向分、时、日、星期、月、年进位;这样就实现了直接用单片机来实现电子万年历发明;

用单片机来实现电子万年历发明,无须外接其他芯片,充分利用了单片机的资源;但是精度不够高,误差较大,掉电后丢失所有数据,软件编程较复杂;

在以单片机为核心构成的装置中,经常需要一个实时的时钟和日历,以便对一些实时发生事件记录时给予时标,实时时钟芯片便可起到这一作用;过去多用并行接口的时钟芯片,如MC146818,DS12887等;它们已能完全满足单片机系统对实时时钟的要求,但是这些芯片与单片机接口复杂、占用地址,数据总线接线多、芯片体积大占用空间多、近年来串行接口的各种芯片在单片机系统中应用愈来愈多,串行接口的实时时钟芯片也出现了不少,DS1302是一个综合性能较好且价格便宜的串行接口实时时钟芯片;采用它作为记录测控系统中的数据记录,其软硬件发明简单,时间记录准确,既避免了连续记录的大工作量,又避免了定时记录的盲目性,给连续长时间的测量、控制系统的正常运行及检查都来了很大的方便,可广泛应用于长时间连续的测控系统中;在测量控制系统中,特别是长时间无人职守的测控系统中,经常需要记录某些具有特殊意义的数据及其出现的时间;传统的数据记录方式是隔时采样或定时采样,没有具体的时间记录,因此只能记录数据而无法准确记录其出现的时间;若采用单片机计时,一方面需要采用计数器,占用硬件资源,另一方面需要设置中断、查询等,同样耗费单片机的资源,而且某些测控系统可能不允许;而在系统中采用DS1302则能很好地解决这个问题

利用单片机进行控制,采用DS1302作为实时时钟芯片,其三线接口SCLK、I/O、与单片机进行同步通信,外加掉电存储电路、显示电路、键盘电路和闹铃电路,即构成一个基本的电子万年历系统,若还要添加其他功能,在这基础上外扩电路即可。

2.由于在系统发明时,需要考虑以下几点因素:功耗低、精确度高、软件编程较简单,制作过程简便,芯片的体积小、便于携带,芯片成本低等,而DS1302芯片有上面所述的诸多优点;

本发明以AT89S52单片机为核心,构成单片机控制电路,结合DS1302时钟芯片和24C02FLASH存储器,显示阳历的年、月、日、星期、时、分、秒和阴历的年、月、日,在显示阴历时间时,能标明是否闰月,同时完成对它们的自动调整和掉电保护,全部信息用液晶显示出来;输入接口由三个按键来实现,用这三个按键可以对日期和时间进行调整,并可以对闹铃的开关和闹铃的时间进行设置;闹铃功能通过蜂鸣器来实现;软件控制程序实现所有的功能;整机电路使用+5V稳压电源,可稳定工作;其软硬件发明简单,时间记录准确,可广泛应用于长时间连续显示的系统中;

按照系统发明功能的要求,初步确定发明系统由主控模块、时钟模块、存储模块、键盘接口模块、显示模块和闹铃模块共6个模块组成,电路系统构;主控芯片使用52系列AT89S52单片机,时钟芯片使用美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟芯片DS1302,存储模块采用美国ATMEL公司生产的低功耗CMOS串行EEPROM存储芯片AT24C02;DS1302作为主要计时芯片,可以做到计时准确;更重要的是,DS1302可以在很小电流的后备(2.5~5.5V电源,在2.5V时耗电小于300nA)下继续计时,并可编程选择多种充电电流来对后备电源进行慢速充电,可以保证后备电源基本不耗电;

本发明一种创意电子万年历系统核心部分——单片机AT89S52

AT89S52是一个低功耗,高性能CMOS8位单片机,片内含8kBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能强大的微型计算机的AT89S52可为许多嵌入式控制应用系统提供高性价比的解决发明;

AT89S52具有下列主要性能

·8KB可改编程序Flash存储器(可经受1000次的写入/擦除周期)

·全静态工作:0Hz~24MHz

·三级程序存储器保密

·128×8字节内部RAM

·32条可编程I/O线

·2个16位定时器/计数器

·6个中断源

·可编程串行通道

·片内时钟振荡器

AT89S52的引脚及功能

AT89S52单片机的管脚说明;

(1)主要电源引脚

①VCC电源端

②GND接地端

(2)外接晶体引脚XTAL1和XTAL2

①XTAL1接外部晶体的一个引脚;在单片机内部,它是构成片内振荡器的反相放大器的输入端;当采用外部振荡器时,该引脚接收振荡器的信号,既把此信号直接接到内部时发生器的输入端;

②XTAL2接外部晶体的另一个引脚;在单片机内部,它是上述振荡器的反相放大器的输出端;采用外部振荡器时,此引脚应悬浮不连接;

(3)控制或与其它电源复用引脚RST、ALE/

①复位输入端;当振荡器运行时,在该引脚上出现两个机器周期的高电平将使单片机复位;

②ALE/当访问外部存储器时,ALE(地址锁存允许)的输出用于锁存地址的低位字节;即使不访问外部存储器,ALE端仍以不变的频率(此频率为振荡器频率的1/6)周期性地出现正脉冲信号;因此,它可用作对外输出的时钟,或用于定时目的;然而要注意的是:每当访问外部数据存储器时,将跳过一个ALE脉冲;在对Flash存储器编程期间,该引脚还用于输入编程脉冲();

③程序存储允许()输出是外部程序存储器的读选通信号;当AT89S52/LV52由外部程序存储器取指令(或常数)时,每个机器周期两次有效(既输出2个脉冲);但在此期间内,每当访问外部数据存储器时,这两次有效的信号将不出现;

④/VPP外部访问允许端;要使CPU只访问外部程序存储器(地址为0000H~FFFFH),则端必须保持低电平(接到GND端);当端保持高电平(接VSS端)时,CPU则执行内部程序存储器中的程序;

(4)输入/输出引脚P0.0~P0.7、P1.0~P1.7、P2.0~P2.7和P3.0~P3.7

①P0端口(P0.0~P0.7)P0是一个8位漏极开路型双向I/O端口;作为输出口用时,每位能以吸收电流的方式驱动8个TTL输入,对端口写1时,又可作高阻抗输入端用;

②P1端口(P1.0~P1.7)P1是一个带有内部上拉电阻的8位双向I/O端口;P1的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入;对端口写1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口;作输入口时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流;

③P2端口(P2.0~P2.7)P2是一个带有内部上拉电阻的8位双向I/O端口;P2的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入;对端口写1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口;P2作输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流;

④P3端口(P3.0~P3.7)P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流;当P3口写入“1”后,它们被内部上拉为高电平,并用作输入;作为输入,由于外部下拉为低电平,P3口将输出电流,这是由于上拉的缘故;P3口也可作为AT89S52的一些特殊功能。

3.端口引脚兼用功能

P3.0RXD(串行输入口)

P3.1TXD(串行输出口)

P3.2(外部中断0)

P3.3(外部中断1)

P3.4T0(定时器0的外部输入)

P3.5T1(定时器1的外部输入)

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

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

本发明一种创意电子万年历DS1302时钟电路

DS1302芯片介绍

低功耗时钟芯片DS1302可以对年、月、日、时、分、秒进行计时,且具有闰年补偿等多种功能;DS1302用于数据记录,特别是对某些具有特殊意义的数据点的记录上,能实现数据与出现该数据的时间同时记录;这种记录对长时间的连续测控系统结果的分析以及对异常数据出现的原因的查有重要意义;

采用DS1302作为记录测控系统中的数据记录,其软硬件发明简单,时间记录准确,既避免了连续记录的大工作量,又避免了定时记录的盲目性,给连续长时间的测量、控制系统的正常运行及检查都来了很大的方便,可广泛应用于长时间连续的测控系统中;在测量控制系统中,特别是长时间无人职守的测控系统中,经常需要记录某些具有特殊意义的数据及其出现的时间;记录及分析这些特殊意义的数据,对测控系统的性能分析及正常运行具有重要的意义;传统的数据记录方式是隔时采样或定时采样,没有具体的时间记录,因此只能记录数据而无法准确记录其出现的时间;若采用单片机计时,一方面需要采用计数器,占用硬件资源,另一方面需要设置中断、查询等,同样耗费单片机的资源,而且某些测控系统可能不允许;而在系统中采用DS1302则能很好地解决这个问题;

DS1302的性能特性

·实时时钟,可对秒、分、时、日、周、月以及带闰年补偿的年进行计数;

·用于高速数据暂存的31×8位RAM;

·最少引脚的串行I/O;

·2.5~5.5V电压工作范围;

·2.5V时耗电小于300nA;

·用于时钟或RAM数据读/写的单字节或多字节(脉冲方式)数据传送方式;

·简单的3线接口;

·可选的慢速充电(至VCC1)的能力;

DS1302时钟芯片包括实时时钟/日历和31字节的静态RAM;它经过一个简单的串行接口与微处理器通信;实时时钟/日历提供秒、分、时、日、周、月和年等信息;对于小于31天的月和月末的日期自动进行调整,还包括闰年校正的功能;时钟的运行可以采用24h或带AM(上午)/PM(下午)的12h格式;采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据;DS1302有主电源/后备电源双电源引脚:VCC1在单电源与电池供电的系统中提供低电源,并提供低功率的电池备份;VCC2在双电源系统中提供主电源,在这种运用方式中,VCC1连接到备份电源,以便在没有主电源的情况下能保存时间信息以及数据;DS1302由VCC1或VCC2中较大者供电;当VCC2大于VCC1+0.2V时,VCC2给DS1302供电;当VCC2小于VCC1时,DS1302由VCC1供电;

(2)DS1302数据操作原理

DS1302在任何数据传送时必须先初始化,把RST脚置为高电平,然后把8位地址和命令字装入移位寄存器,数据在SCLK的上升沿被输入;无论是读周期还是写周期,开始8位指定40个寄存器中哪个被访问到;在开始8个时钟周期,把命令字节装入移位寄存器之后,另外的时钟周期在读操作时输出数据,在写操作时写入数据;时钟脉冲的个数在单字节方式下为8加8,在多字节方式下为8加字节数,最大可达248字节数;

如果在传送过程中置RST为低电平,则会终止本次数据传送,并且I/O引脚变为高阻态;上电运行时,在VCC大于等于2.5V之前,RST脚必须保持低电平;只有在SCLK为低电平时;

引脚号引脚名称功能

1

VCC2主电源

2,3X1,X2振荡源,外接32768HZ晶振

4GND地线

5

复位/片选线

6I/O串行数据输入/输出端(双向)

7SCLK串行数据输入端

8VCC1后备电源

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

为了提高对32个地址的寻址能力(地址/命令位1~5=逻辑1),可以把时钟/日历或RAM寄存器规定为多字节(burst)方式;位6规定时钟或RAM,而位0规定读或写;在时钟/日历寄存器中的地址9~31或RAM寄存器中的地址31不能存储数据;在多字节方式中,读或写从地址0的位0开始;必须按数据传送的次序写最先的8个寄存器;但是,当以多字节方式写RAM时,为了传送数据不必写所有31字节;不管是否写了全部31字节,所写的每一字节都将传送至RAM;

DS1302共有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式,其日历、时间寄存器及其控制字见表3-3所示,其中奇数为读操作,偶数为写操作。

4.寄存器

名命令字取值

范围各位内容

写操作读操作76543210

秒寄存器80H81H00-59CH10SECSEC

分钟寄存器82H83H00-59010MINMIN

小时

寄存器84H85H1-12或

00-2312/

24010

APHRHR

日期

寄存器86H87H01-28,29,

30,310010DATEDATE

月份寄存器88H89H01-12000IOMMONTH

周日寄存器8AH8BH01-0700000DAY

年份寄存器8CH8DH00-9910YEARYEAR

AM-PM/12-24小时方式:小时寄存器的位7定义为12或24小时方式选择位;它为高电平时,选择12小时方式;在此方式下,位5是AM/PM位,此位是高电平时表示PM,低电平表示AM,在24小时方式下,位5为第二个10小时位(20~23h);

时钟暂停:秒寄存器的位7定义位时钟暂停位;当它为1时,DS1302停止振荡,进入低功耗的备份方式;通常在对DS1302进行写操作时(如进入时钟调整程序),停止振荡;当它为0时,时钟将开始启动;

DS1302的应用

实时时钟芯片DS1302采用串行数据传输,可为掉电保护电源提供可编程的充电功能,也可以关闭充电功能,芯片采用32768Hz晶振;要特别说明的是,备用电源BT1可以用电池或超级电容(10万μF以上);虽然DS1302在主电源掉电后耗电很小,但如果要长时间保证时钟正常,最好选用小型充电电池;如果断电时间较短(几小时或几天),可以用漏电较小的普通电解电容代替(100μF就可以保证1小时的正常走时)[9];DS1302在第一次加电后,需进行初始化操作;初始化后就可以按正常方法调整时间及闹铃;

存储电路

AT24C02的1、2、3脚是三条地址线,用于确定芯片的硬件地址;第8脚和第4脚分别为正、负电源;第5脚SDA为串行数据输入/输出,数据通过这条双向I2C总线串行传送;第6脚SCL为串行时钟输入线;SDA和SCL都需要和正电源间各接一个4.7K的电阻上拉;

I2C总线是一种用于I2C器件之间连接的二线制总线;它通过SDA(串行数据线)及SCL(串行时钟线)两根线在连到总线上的器件之间传送信息,并根据地址识别每个器件:不管是单片机、存储器、LCD驱动器还是键盘接口。

5.AT24C02的特性

(1)I2C总线的基本结构

采用I2C总线标准的单片机或I2C器件,其内部不仅有I2C接口电路,而且将内部各单元电路按功能划分为若干相对独立的模块,通过软件寻址实现片选,减少了器件片选线的连接;CPU不仅能通过指令将某个功能单元电路挂靠或摘离总线,还可对该单元的工作状况进行检测,从而实现对硬件系统的既简单又灵活的扩展与控制;

(2)双向传输的接口特性 

传统的单片机串行接口的发送和接收一般都各用一条线,而I2C总线则根据器件的功能通过软件程序使其可工作于发送或接收方式;当某个器件向总线上发送信息时,它就是发送器(也叫主器件),而当其从总线上接收信息时,又成为接收器(也叫从器件);主器件用于启动总线上传送数据并产生时钟以开放传送的器件,此时任何被寻址的器件均被认为是从器件;I2C总线的控制完全由挂接在总线上的主器件送出的地址和数据决定;

  总线上主和从(即发送和接收)的关系不是一成不变的,而是取决于此时数据传送的方向;SDA和SCL均为双向I/O线,通过上拉电阻接正电源;当总线空闲时,两根线都是高电平;连接总线的器件的输出级必须是集电极或漏极开路,以具有线“与”功能;I2C总线的数据传送速率在标准工作方式下为100kbit/s,在快速方式下,最高传送速率可达400kbit/s;

(3)I2C总线上的时钟信号 

在I2C总线上传送信息时的时钟同步信号是由挂接在SCL时钟线上的所有器件的逻辑“与”完成的;SCL线上由高电平到低电平的跳变将影响到这些器件,一旦某个器件的时钟信号下跳为低电平,将使SCL线一直保持低电平,使SCL线上的所有器件开始低电平期;此时,低电平周期短的器件的时钟由低至高的跳变并不能影响SCL线的状态,于是这些器件将进入高电平等待的状态;

  当所有器件的时钟信号都上跳为高电平时,低电平期结束,SCL线被释放返回高电平,即所有的器件都同时开始它们的高电平期;其后,第一个结束高电平期的器件又将SCL线拉成低电平;这样就在SCL线上产生一个同步时钟;可见,时钟低电平时间由时钟低电平期最长的器件确定,而时钟高电平时间由时钟高电平期最短的器件确定;

(4)数据的传送 

在数据传送过程中,必须确认数据传送的开始和结束;当时钟线SCL为高电平时,数据线SDA由高电平跳变为低电平定义为“开始”信号;当SCL线为高电平时,SDA线发生低电平到高电平的跳变为“结束”信号;开始和结束信号都是由主器件产生;在开始信号以后,总线即被认为处于忙状态;在结束信号以后的一段时间内,总线被认为是空闲的。

6.I2C总线的数据传送格式是:在I2C总线开始信号后,送出的第一个字节数据是用来选择从器件地址的,其中前7位为地址码,第8位为方向位(R/W);方向位为“0”表示发送,即主器件把信息写到所选择的从器件;方向位为“1”表示主器件将从从器件读信息;开始信号后,系统中的各个器件将自己的地址和主器件送到总线上的地址进行比较,如果与主器件发送到总线上的地址一致,则该器件即为被主器件寻址的器件,其接收信息还是发送信息则由第8位(R/W)确定;

  在I2C总线上每次传送的数据字节数不限,但每一个字节必须为8位,而且每个传送的字节后面必须跟一个认可位(第9位),也叫应答位(ACK);每次都是先传最高位,通常从器件在接收到每个字节后都会做出响应,即释放SCL线返回高电平,准备接收下一个数据字节,主器件可继续传送;如果从器件正在处理一个实时事件而不能接收数据时(例如正在处理一个内部中断,在这个中断处理完之前就不能接收I2C总线上的数据字节),可以使时钟SCL线保持低电平,从器件必须使SDA保持高电平,此时主器件产生1个结束信号,使传送异常结束,迫使主器件处于等待状态;当从器件处理完毕时将释放SCL线,主器件继续传送;

当主器件发送完一个字节的数据后,接着发出对应于SCL线上的一个时钟(ACK)认可位,在此时钟内主器件释放SDA线,一个字节传送结束,而从器件的响应信号将SDA线拉成低电平,使SDA在该时钟的高电平期间为稳定的低电平;从器件的响应信号结束后,SDA线返回高电平,进入下一个传送周期;

(5)总线竞争的仲裁 

总线上可能挂接有多个器件,有时会发生两个或多个主器件同时想占用总线的情况;例如,多单片机系统中,可能在某一时刻有两个单片机要同时向总线发送数据,这种情况叫做总线竞争;I2C总线具有多主控能力,可以对发生在SDA线上的总线竞争进行仲裁,其仲裁原则是这样的:当多个主器件同时想占用总线时,如果某个主器件发送高电平,而另一个主器件发送低电平,则发送电平与此时SDA总线电平不符的那个器件将自动关闭其输出级;总线竞争的仲裁是在两个层次上进行的;首先是地址位的比较,如果主器件寻址同一个从器件,则进入数据位的比较,从而确保了竞争仲裁的可靠性;由于是利用I2C总线上的信息进行仲裁,因此不会造成信息的丢失;

24C02与单片机的接口非常简单,A0,A1,A2为器件地址线,WP为写保护引脚,SCL,SDA为二线串行接口,符合I2C总线协议;

液晶显示电路

显示器部分是由HD61202液晶显示控制驱动器和HY12864液晶显示器组成的,下面我们对其分别进行介绍;

液晶显示控制驱动器HD61202的特点

HD61202液晶显示控制驱动器是一种带有驱动输出的图形液晶显示控制器,它可直接与8位微处理器相连,它可与HD61203配合对液晶屏进行行、列驱动;HD61202是一种带有列驱动输出的液晶显示控制器,它可与行驱动器HD61203配合使用,组成液晶显示驱动控制系统[12];

(1)内藏64×64=4096位显示RAM,RAM中每位数据对应LCD屏上一个点的亮、暗状态;

(2)HD61202是列驱动器,具有64路列驱动输出;

(3)HD61202读、写操作时序与68系列微处理器相符,因此它可直接与68系列微处理器接口相连;

(4)HD61202的占空比为1/32~1/64。

7.液晶显示控制驱动器HD61202的引脚功能

引脚CS1,CS2,CS3为芯片的片选端;引脚E为读写使能信号,它是在下降沿时数据被锁存入HD61202的;在E高电平期间,数据被读出;R/W为读写选择信号,当它为一时为读选通,为零时为写选通;DB0-DB7为数据总线RST为复位信号复位信号有效时,关闭液晶显示,使显示起始行为0,RST可跟MCU相连,由MCU控制;也可直接接VDD;

引脚符号状态引脚名称功能

CS1,CS2,CS3输入芯片片选端CS1和CS2低电平选通,CS3高电平选通;

E输入读写使能信号在E下降沿,数据被锁存(写)入HD61202;在E高电平期间,数据被读出

R/W输入读写选择信号R/W=1为读选通,R/W=0为写选通

RS输入数据、指令选择信号RS=1为数据操作

RS=0为写指令或读状态

DB0-DB7三态数据总线

RST输入复位信号复位信号有效时,关闭液晶显示,使显示起始行为0,RST可跟MCU相连,由MCU控制;也可直接接VDD,使之不起作用;

液晶显示控制驱动器HD61202的指令系统

HD61202的指令系统比较简单,总共只有七种;现分别介绍如下;

(1)显示开/关指令

R/WRSDB7DB6DB5DB4DB3DB2DB1DB0

0000111111/0

当DBO=1时,LCD显示RAM中的内容;DBO=0时,关闭显示;

(2)显示起始行(ROW)设置指令

R/WRSDB7DB6DB5DB4DB3DB2DB1DB0

0011显示起始行(0-63)

该指令设置了对应液晶屏最上一行的显示RAM的行号,有规律的改变显示起始行,可以使LCD实现显示滚屏的效果;

(3)页(PAGE)置指令

R/WRSDB7DB6DB5DB4DB3DB2DB1DB0

0010111页号(0-7)

显示RAM共64行,分8页,每页8行;

(4)列地址(YAddress)设置指令

R/WRSDB7DB6DB5DB4DB3DB2DB1DB0

0001显示列地址(0-63)

设置了页地址和列地址,就唯一确定了显示RAM中的一个单元,这样MCU就可以用读、写指令读出该单元中的内容或向该单元写进一个字节数据;

(5)读状态指令

R/WRSDB7DB6DB5DB4DB3DB2DB1DB0

10BUSY0ON/OFFREST0000

该指令用来查询HD61202的状态,各参量含义如下:

BUSY: 1-内部在工作0-正常状态

ON/OFF:1-显示关闭0-显示打开

REST:1-复位状态0-正常状态

在BUSY和REST状态时,除读状态指令外,其它指令均不对HD61202产生作用;在对HD61202操作之前要查询BUSY状态,以确定是否可以对HD61202进行操作;

(6)写数据指令

R/WRSDB7DB6DB5DB4DB3DB2DB1DB0

01写数据

读、写数据指令每执行完一次读、写操作,列地址就自动增一,必须注意的是,进行读操作之前,必须有一次空读操作,紧接着再读才会读出所要读的单元中的数据;

相连;跟HD61202(2)的CS1相连,因此、选通组合信号为,=01选通(1),,=10选通(2);对于HY-12864,只要供给VDD、VSS和V0即可,HD61202和HD61203所需的电源将由模块内部电路在VDD和V0、VSS的作用下产生。

8.HY-12864的应用

以下内容为以单片机89S52为例机的接口电路,控制电路为直接访问方式的接口电路;VSS接地;数字电源VDD接+5V;对比度控制电压V0接电位器,可通过调节电位器调整液晶亮度;数据、指令选择信号RS接单片机P2.0口;读写选择信号R/W接单片机P2.1口;单片机读、写选通信号、通过与非门接液晶的读写使能信号E;DB0~DB7分别接单片机的P0.0~P0.7口;芯片1、芯片2的片选分别接单片机的P2.2、P2.3口;复位端RST、背光正电源LEDA接+5V;液晶驱动电压VEE、背光负电源LEDK接地;

本发明一种创意电子万年历共采用按键3个,分别与单片机的P1.5、P1.6、P1.7口相连,分别对应光标移动,时间、日期调整,退出、闹铃开关键的功能。

说明书

一种创意电子万年历

本发明一种创意电子万年历属于电子设备领域。

随着当今世界经济的快速发展和信息化时代的来临,各种各样的小型智能家电产品陆续出现在我们的生活当中。日历是人们不可或缺的日常用品。但一般日历都为纸制用品,使用不便,寿命不长。电子万年历采用智能电子控制和显示技术,改善了纸制日历的缺陷。本发明以AT89S52单片机为核心,构成单片机控制电路,AT89C52是一种带8K字节闪速可编程可擦除只读存储器(PEROM)的低电压、高性能CMOS8位为控制器。该器件采用ATMEL非易失存储器制造技术制造,与工业标准的80C51和80C52指令集和输出管脚相兼容。结合DS1302时钟芯片和24C02FLASH存储器,完成时间的自动调整和掉电保护,全部信息用液晶显示。时间、日期调整由三个按键来实现,并可对闹铃开关进行设置。日历能显示阳历和阴历年、月、日以及星期、时、分、秒。在显示阴历月份时,能标明是否闰月。

随着科技的不断进步和发展,单片机的使用已经渗透到我们日常生活当中的各个领域,几乎很难到有哪个领域没有使用单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械了。

的电子万年历属于小型智能家用电子产品。利用单片机进行控制,实时时钟芯片进行记时,外加掉电存储电路和显示电路,可实现时间的调整和显示。电子万年历既可广泛应用于家庭,也可应用于银行、邮电、宾馆、饭店、医院、学校、企业、商店等相关行业的大厅,以及单位会议室、门卫等场所。因而,此发明具有相当重要的现实意义和实用价值。

由于现在市面上的电子万年历的种类比较多,因此到底选择什么样的发明在发明中是至关重要的。正确地选择发明就可以使产品更加人性化,并且可以减小开发的难度,缩短开发的周期,降低产品的成本等等,因此就会被人们普遍接受,并且能够更快地将产品推向市场实现其自身的价值。

基于AT89S52单片机的电子万年历发明

不使用时钟芯片,而直接用AT89S52单片机来实现电子万年历发明。AT89S52是一种带8K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦写1000余次。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89S52是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的发明。

若采用单片机计时,利用它的一个16位定时器/计数器每50ms产生一个中断信号,中断20次后产生一个秒信号,然后根据时间进制关系依次向分、时、日、星期、月、年进位。这样就实现了直接用单片机来实现电子万年历发明。

用单片机来实现电子万年历发明,无须外接其他芯片,充分利用了单片机的资源。但是精度不够高,误差较大,掉电后丢失所有数据,软件编程较复杂。

在以单片机为核心构成的装置中,经常需要一个实时的时钟和日历,以便对一些实时发生事件记录时给予时标,实时时钟芯片便可起到这一作用。过去多用并行接口的时钟芯片,如MC146818,DS12887等。它们已能完全满足单片机系统对实时时钟的要求,但是这些芯片与单片机接口复杂、占用地址,数据总线接线多、芯片体积大占用空间多、近年来串行接口的各种芯片在单片机系统中应用愈来愈多,串行接口的实时时钟芯片也出现了不少,DS1302是一个综合性能较好且价格便宜的串行接口实时时钟芯片。采用它作为记录测控系统中的数据记录,其软硬件发明简单,时间记录准确,既避免了连续记录的大工作量,又避免了定时记录的盲目性,给连续长时间的测量、控制系统的正常运行及检查都来了很大的方便,可广泛应用于长时间连续的测控系统中。在测量控制系统中,特别是长时间无人职守的测控系统中,经常需要记录某些具有特殊意义的数据及其出现的时间。传统的数据记录方式是隔时采样或定时采样,没有具体的时间记录,因此只能记录数据而无法准确记录其出现的时间;若采用单片机计时,一方面需要采用计数器,占用硬件资源,另一方面需要设置中断、查询等,同样耗费单片机的资源,而且某些测控系统可能不允许。而在系统中采用DS1302则能很好地解决这个问题

利用单片机进行控制,采用DS1302作为实时时钟芯片,其三线接口SCLK、I/O、与单片机进行同步通信,外加掉电存储电路、显示电路、键盘电路和闹铃电路,即构成一个基本的电子万年历系统,若还要添加其他功能,在这基础上外扩电路即可。

由于在系统发明时,需要考虑以下几点因素:功耗低、精确度高、软件编程较简单,制作过程简便,芯片的体积小、便于携带,芯片成本低等,而DS1302芯片有上面所述的诸多优点。

本发明以AT89S52单片机为核心,构成单片机控制电路,结合DS1302时钟芯片和24C02FLASH存储器,显示阳历的年、月、日、星期、时、分、秒和阴历的年、月、日,在显示阴历时间时,能标明是否闰月,同时完成对它们的自动调整和掉电保护,全部信息用液晶显示出来。输入接口由三个按键来实现,用这三个按键可以对日期和时间进行调整,并可以对闹铃的开关和闹铃的时间进行设置。闹铃功能通过蜂鸣器来实现。软件控制程序实现所有的功能。整机电路使用+5V稳压电源,可稳定工作。其软硬件发明简单,时间记录准确,可广泛应用于长时间连续显示的系统中。

按照系统发明功能的要求,初步确定发明系统由主控模块、时钟模块、存储模块、键盘接口模块、显示模块和闹铃模块共6个模块组成,电路系统构。主控芯片使用52系列AT89S52单片机,时钟芯片使用美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟芯片DS1302,存储模块采用美国ATMEL公司生产的低功耗CMOS串行EEPROM存储芯片AT24C02。DS1302作为主要计时芯片,可以做到计时准确。更重要的是,DS1302可以在很小电流的后备(2.5~5.5V电源,在2.5V时耗电小于300nA)下继续计时,并可编程选择多种充电电流来对后备电源进行慢速充电,可以保证后备电源基本不耗电。

系统核心部分——单片机AT89S52

AT89S52是一个低功耗,高性能CMOS8位单片机,片内含8kBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能强大的微型计算机的AT89S52可为许多嵌入式控制应用系统提供高性价比的解决发明。

AT89S52具有下列主要性能

·8KB可改编程序Flash存储器(可经受1000次的写入/擦除周期)

·全静态工作:0Hz~24MHz

·三级程序存储器保密

·128×8字节内部RAM

·32条可编程I/O线

·2个16位定时器/计数器

·6个中断源

·可编程串行通道

·片内时钟振荡器

AT89S52的引脚及功能

AT89S52单片机的管脚说明。

(1)主要电源引脚

VCC电源端

②GND接地端

(2)外接晶体引脚XTAL1和XTAL2

XTAL1接外部晶体的一个引脚。在单片机内部,它是构成片内振荡器的反相放大器的输入端。当采用外部振荡器时,该引脚接收振荡器的信号,既把此信号直接接到内部时发生器的输入端。

②XTAL2接外部晶体的另一个引脚。在单片机内部,它是上述振荡器的反相放大器的输出端。采用外部振荡器时,此引脚应悬浮不连接。

(3)控制或与其它电源复用引脚RST、ALE/

复位输入端。当振荡器运行时,在该引脚上出现两个机器周期的高电平将使单片机复位。

②ALE/当访问外部存储器时,ALE(地址锁存允许)的输出用于锁存地址的低位字节。即使不访问外部存储器,ALE端仍以不变的频率(此频率为振荡器频率的1/6)周期性地出现正脉冲信号。因此,它可用作对外输出的时钟,或用于定时目的。然而要注意的是:每当访问外部数据存储器时,将跳过一个ALE脉冲。在对Flash存储器编程期间,该引脚还用于输入编程脉冲()。

③程序存储允许()输出是外部程序存储器的读选通信号。当AT89S52/LV52由外部程序存储器取指令(或常数)时,每个机器周期两次有效(既输出2个脉冲)。但在此期间内,每当访问外部数据存储器时,这两次有效的信号将不出现。

④/VPP外部访问允许端。要使CPU只访问外部程序存储器(地址为0000H~FFFFH),则端必须保持低电平(接到GND端)。当端保持高电平(接VSS端)时,CPU则执行内部程序存储器中的程序。

(4)输入/输出引脚P0.0~P0.7、P1.0~P1.7、P2.0~P2.7和P3.0~P3.7

P0端口(P0.0~P0.7)P0是一个8位漏极开路型双向I/O端口。作为输出口用时,每位能以吸收电流的方式驱动8个TTL输入,对端口写1时,又可作高阻抗输入端用。

②P1端口(P1.0~P1.7)P1是一个带有内部上拉电阻的8位双向I/O端口。P1的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。作输入口时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。

③P2端口(P2.0~P2.7)P2是一个带有内部上拉电阻的8位双向I/O端口。P2的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。P2作输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。

④P3端口(P3.0~P3.7)P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流,这是由于上拉的缘故。P3口也可作为AT89S52的一些特殊功能。

端口引脚兼用功能

P3.0RXD(串行输入口)

P3.1TXD(串行输出口)

P3.2(外部中断0)

P3.3(外部中断1)

P3.4T0(定时器0的外部输入)

P3.5T1(定时器1的外部输入)

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

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

DS1302时钟电路

DS1302芯片介绍

低功耗时钟芯片DS1302可以对年、月、日、时、分、秒进行计时,且具有闰年补偿等多种功能。DS1302用于数据记录,特别是对某些具有特殊意义的数据点的记录上,能实现数据与出现该数据的时间同时记录。这种记录对长时间的连续测控系统结果的分析以及对异常数据出现的原因的查有重要意义。

采用DS1302作为记录测控系统中的数据记录,其软硬件发明简单,时间记录准确,既避免了连续记录的大工作量,又避免了定时记录的盲目性,给连续长时间的测量、控制系统的正常运行及检查都来了很大的方便,可广泛应用于长时间连续的测控系统中。在测量控制系统中,特别是长时间无人职守的测控系统中,经常需要记录某些具有特殊意义的数据及其出现的时间。记录及分析这些特殊意义的数据,对测控系统的性能分析及正常运行具有重要的意义。传统的数据记录方式是隔时采样或定时采样,没有具体的时间记录,因此只能记录数据而无法准确记录其出现的时间;若采用单片机计时,一方面需要采用计数器,占用硬件资源,另一方面需要设置中断、查询等,同样耗费单片机的资源,而且某些测控系统可能不允许。而在系统中采用DS1302则能很好地解决这个问题。

DS1302的性能特性

·实时时钟,可对秒、分、时、日、周、月以及带闰年补偿的年进行计数;

·用于高速数据暂存的31×8位RAM;

·最少引脚的串行I/O;

·2.5~5.5V电压工作范围;

·2.5V时耗电小于300nA;

·用于时钟或RAM数据读/写的单字节或多字节(脉冲方式)数据传送方式;

·简单的3线接口;

·可选的慢速充电(至VCC1)的能力。

DS1302时钟芯片包括实时时钟/日历和31字节的静态RAM。它经过一个简单的串行接口与微处理器通信。实时时钟/日历提供秒、分、时、日、周、月和年等信息。对于小于31天的月和月末的日期自动进行调整,还包括闰年校正的功能。时钟的运行可以采用24h或带AM(上午)/PM(下午)的12h格式。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302有主电源/后备电源双电源引脚:VCC1在单电源与电池供电的系统中提供低电源,并提供低功率的电池备份;VCC2在双电源系统中提供主电源,在这种运用方式中,VCC1连接到备份电源,以便在没有主电源的情况下能保存时间信息以及数据。DS1302由VCC1或VCC2中较大者供电。当VCC2大于VCC1+0.2V时,VCC2给DS1302供电;当VCC2小于VCC1时,DS1302由VCC1供电。

(2)DS1302数据操作原理

DS1302在任何数据传送时必须先初始化,把RST脚置为高电平,然后把8位地址和命令字装入移位寄存器,数据在SCLK的上升沿被输入。无论是读周期还是写周期,开始8位指定40个寄存器中哪个被访问到。在开始8个时钟周期,把命令字节装入移位寄存器之后,另外的时钟周期在读操作时输出数据,在写操作时写入数据。时钟脉冲的个数在单字节方式下为8加8,在多字节方式下为8加字节数,最大可达248字节数。

如果在传送过程中置RST为低电平,则会终止本次数据传送,并且I/O引脚变为高阻态。上电运行时,在VCC大于等于2.5V之前,RST脚必须保持低电平。只有在SCLK为低电平时。

引脚号引脚名称功能

1VCC2主电源

2,3X1,X2振荡源,外接32768HZ晶振

4GND地线

5复位/片选线

6I/O串行数据输入/输出端(双向)

7SCLK串行数据输入端

8VCC1后备电源

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

为了提高对32个地址的寻址能力(地址/命令位1~5=逻辑1),可以把时钟/日历或RAM寄存器规定为多字节(burst)方式。位6规定时钟或RAM,而位0规定读或写。在时钟/日历寄存器中的地址9~31或RAM寄存器中的地址31不能存储数据。在多字节方式中,读或写从地址0的位0开始。必须按数据传送的次序写最先的8个寄存器。但是,当以多字节方式写RAM时,为了传送数据不必写所有31字节。不管是否写了全部31字节,所写的每一字节都将传送至RAM。

DS1302共有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式,其日历、时间寄存器及其控制字见表3-3所示,其中奇数为读操作,偶数为写操作。

AM-PM/12-24小时方式:小时寄存器的位7定义为12或24小时方式选择位。它为高电平时,选择12小时方式。在此方式下,位5是AM/PM位,此位是高电平时表示PM,低电平表示AM,在24小时方式下,位5为第二个10小时位(20~23h)。

时钟暂停:秒寄存器的位7定义位时钟暂停位。当它为1时,DS1302停止振荡,进入低功耗的备份方式。通常在对DS1302进行写操作时(如进入时钟调整程序),停止振荡。当它为0时,时钟将开始启动。

DS1302的应用

实时时钟芯片DS1302采用串行数据传输,可为掉电保护电源提供可编程的充电功能,也可以关闭充电功能,芯片采用32768Hz晶振。要特别说明的是,备用电源BT1可以用电池或超级电容(10万μF以上)。虽然DS1302在主电源掉电后耗电很小,但如果要长时间保证时钟正常,最好选用小型充电电池。如果断电时间较短(几小时或几天),可以用漏电较小的普通电解电容代替(100μF就可以保证1小时的正常走时)[9]。DS1302在第一次加电后,需进行初始化操作。初始化后就可以按正常方法调整时间及闹铃。

存储电路

AT24C02的1、2、3脚是三条地址线,用于确定芯片的硬件地址。第8脚和第4脚分别为正、负电源。第5脚SDA为串行数据输入/输出,数据通过这条双向I2C总线串行传送。第6脚SCL为串行时钟输入线。SDA和SCL都需要和正电源间各接一个4.7K的电阻上拉。

I2C总线是一种用于I2C器件之间连接的二线制总线。它通过SDA(串行数据线)及SCL(串行时钟线)两根线在连到总线上的器件之间传送信息,并根据地址识别每个器件:不管是单片机、存储器、LCD驱动器还是键盘接口。

AT24C02的特性

(1)I2C总线的基本结构

采用I2C总线标准的单片机或I2C器件,其内部不仅有I2C接口电路,而且将内部各单元电路按功能划分为若干相对独立的模块,通过软件寻址实现片选,减少了器件片选线的连接。CPU不仅能通过指令将某个功能单元电路挂靠或摘离总线,还可对该单元的工作状况进行检测,从而实现对硬件系统的既简单又灵活的扩展与控制。

(2)双向传输的接口特性 

传统的单片机串行接口的发送和接收一般都各用一条线,而I2C总线则根据器件的功能通过软件程序使其可工作于发送或接收方式。当某个器件向总线上发送信息时,它就是发送器(也叫主器件),而当其从总线上接收信息时,又成为接收器(也叫从器件)。主器件用于启动总线上传送数据并产生时钟以开放传送的器件,此时任何被寻址的器件均被认为是从器件。I2C总线的控制完全由挂接在总线上的主器件送出的地址和数据决定。

  总线上主和从(即发送和接收)的关系不是一成不变的,而是取决于此时数据传送的方向。SDA和SCL均为双向I/O线,通过上拉电阻接正电源。当总线空闲时,两根线都是高电平。连接总线的器件的输出级必须是集电极或漏极开路,以具有线“与”功能。I2C总线的数据传送速率在标准工作方式下为100kbit/s,在快速方式下,最高传送速率可达400kbit/s。

(3)I2C总线上的时钟信号 

在I2C总线上传送信息时的时钟同步信号是由挂接在SCL时钟线上的所有器件的逻辑“与”完成的。SCL线上由高电平到低电平的跳变将影响到这些器件,一旦某个器件的时钟信号下跳为低电平,将使SCL线一直保持低电平,使SCL线上的所有器件开始低电平期。此时,低电平周期短的器件的时钟由低至高的跳变并不能影响SCL线的状态,于是这些器件将进入高电平等待的状态。

  当所有器件的时钟信号都上跳为高电平时,低电平期结束,SCL线被释放返回高电平,即所有的器件都同时开始它们的高电平期。其后,第一个结束高电平期的器件又将SCL线拉成低电平。这样就在SCL线上产生一个同步时钟。可见,时钟低电平时间由时钟低电平期最长的器件确定,而时钟高电平时间由时钟高电平期最短的器件确定。

(4)数据的传送 

在数据传送过程中,必须确认数据传送的开始和结束。当时钟线SCL为高电平时,数据线SDA由高电平跳变为低电平定义为“开始”信号;当SCL线为高电平时,SDA线发生低电平到高电平的跳变为“结束”信号。开始和结束信号都是由主器件产生。在开始信号以后,总线即被认为处于忙状态;在结束信号以后的一段时间内,总线被认为是空闲的。

I2C总线的数据传送格式是:在I2C总线开始信号后,送出的第一个字节数据是用来选择从器件地址的,其中前7位为地址码,第8位为方向位(R/W)。方向位为“0”表示发送,即主器件把信息写到所选择的从器件;方向位为“1”表示主器件将从从器件读信息。开始信号后,系统中的各个器件将自己的地址和主器件送到总线上的地址进行比较,如果与主器件发送到总线上的地址一致,则该器件即为被主器件寻址的器件,其接收信息还是发送信息则由第8位(R/W)确定。

  在I2C总线上每次传送的数据字节数不限,但每一个字节必须为8位,而且每个传送的字节后面必须跟一个认可位(第9位),也叫应答位(ACK)。每次都是先传最高位,通常从器件在接收到每个字节后都会做出响应,即释放SCL线返回高电平,准备接收下一个数据字节,主器件可继续传送。如果从器件正在处理一个实时事件而不能接收数据时(例如正在处理一个内部中断,在这个中断处理完之前就不能接收I2C总线上的数据字节),可以使时钟SCL线保持低电平,从器件必须使SDA保持高电平,此时主器件产生1个结束信号,使传送异常结束,迫使主器件处于等待状态。当从器件处理完毕时将释放SCL线,主器件继续传送。

当主器件发送完一个字节的数据后,接着发出对应于SCL线上的一个时钟(ACK)认可位,在此时钟内主器件释放SDA线,一个字节传送结束,而从器件的响应信号将SDA线拉成低电平,使SDA在该时钟的高电平期间为稳定的低电平。从器件的响应信号结束后,SDA线返回高电平,进入下一个传送周期。

(5)总线竞争的仲裁 

总线上可能挂接有多个器件,有时会发生两个或多个主器件同时想占用总线的情况。例如,多单片机系统中,可能在某一时刻有两个单片机要同时向总线发送数据,这种情况叫做总线竞争。I2C总线具有多主控能力,可以对发生在SDA线上的总线竞争进行仲裁,其仲裁原则是这样的:当多个主器件同时想占用总线时,如果某个主器件发送高电平,而另一个主器件发送低电平,则发送电平与此时SDA总线电平不符的那个器件将自动关闭其输出级。总线竞争的仲裁是在两个层次上进行的。首先是地址位的比较,如果主器件寻址同一个从器件,则进入数据位的比较,从而确保了竞争仲裁的可靠性。由于是利用I2C总线上的信息进行仲裁,因此不会造成信息的丢失。

24C02与单片机的接口非常简单,A0,A1,A2为器件地址线,WP为写保护引脚,SCL,SDA为二线串行接口,符合I2C总线协议。

液晶显示电路

显示器部分是由HD61202液晶显示控制驱动器和HY12864液晶显示器组成的,下面我们对其分别进行介绍。

液晶显示控制驱动器HD61202的特点

HD61202液晶显示控制驱动器是一种带有驱动输出的图形液晶显示控制器,它可直接与8位微处理器相连,它可与HD61203配合对液晶屏进行行、列驱动。HD61202是一种带有列驱动输出的液晶显示控制器,它可与行驱动器HD61203配合使用,组成液晶显示驱动控制系统[12]。

(1)内藏64×64=4096位显示RAM,RAM中每位数据对应LCD屏上一个点的亮、暗状态;

(2)HD61202是列驱动器,具有64路列驱动输出;

(3)HD61202读、写操作时序与68系列微处理器相符,因此它可直接与68系列微处理器接口相连;

(4)HD61202的占空比为1/32~1/64。

液晶显示控制驱动器HD61202的引脚功能

引脚CS1,CS2,CS3为芯片的片选端;引脚E为读写使能信号,它是在下降沿时数据被锁存入HD61202的;在E高电平期间,数据被读出;R/W为读写选择信号,当它为一时为读选通,为零时为写选通;DB0-DB7为数据总线RST为复位信号复位信号有效时,关闭液晶显示,使显示起始行为0,RST可跟MCU相连,由MCU控制;也可直接接VDD。

液晶显示控制驱动器HD61202的指令系统

HD61202的指令系统比较简单,总共只有七种。现分别介绍如下。

(1)显示开/关指令

R/WRSDB7DB6DB5DB4DB3DB2DB1DB0

0000111111/0

当DBO=1时,LCD显示RAM中的内容;DBO=0时,关闭显示。

(2)显示起始行(ROW)设置指令

R/WRSDB7DB6DB5DB4DB3DB2DB1DB0

0011显示起始行(0-63)

该指令设置了对应液晶屏最上一行的显示RAM的行号,有规律的改变显示起始行,可以使LCD实现显示滚屏的效果。

(3)页(PAGE)置指令

显示RAM共64行,分8页,每页8行。

(4)列地址(YAddress)设置指令

R/WRSDB7DB6DB5DB4DB3DB2DB1DB0

0001显示列地址(0-63)

设置了页地址和列地址,就唯一确定了显示RAM中的一个单元,这样MCU就可以用读、写指令读出该单元中的内容或向该单元写进一个字节数据。

(5)读状态指令

R/WRSDB7DB6DB5DB4DB3DB2DB1DB0

10BUSY0ON/OFFREST0000

该指令用来查询HD61202的状态,各参量含义如下:

BUSY: 1-内部在工作0-正常状态

ON/OFF:1-显示关闭0-显示打开

REST:1-复位状态0-正常状态

在BUSY和REST状态时,除读状态指令外,其它指令均不对HD61202产生作用。在对HD61202操作之前要查询BUSY状态,以确定是否可以对HD61202进行操作。

(6)写数据指令

R/WRSDB7DB6DB5DB4DB3DB2DB1DB0

01写数据

读、写数据指令每执行完一次读、写操作,列地址就自动增一,必须注意的是,进行读操作之前,必须有一次空读操作,紧接着再读才会读出所要读的单元中的数据。

相连;跟HD61202(2)的CS1相连,因此、选通组合信号为,=01选通(1),,=10选通(2)。对于HY-12864,只要供给VDD、VSS和V0即可,HD61202和HD61203所需的电源将由模块内部电路在VDD和V0、VSS的作用下产生。

HY-12864的应用

以下内容为以单片机89S52为例机的接口电路,控制电路为直接访问方式的接口电路。VSS接地;数字电源VDD接+5V;对比度控制电压V0接电位器,可通过调节电位器调整液晶亮度;数据、指令选择信号RS接单片机P2.0口;读写选择信号R/W接单片机P2.1口;单片机读、写选通信号、通过与非门接液晶的读写使能信号E;DB0~DB7分别接单片机的P0.0~P0.7口;芯片1、芯片2的片选分别接单片机的P2.2、P2.3口;复位端RST、背光正电源LEDA接+5V;液晶驱动电压VEE、背光负电源LEDK接地。

键盘电路

本发明共采用按键3个,分别与单片机的P1.5、P1.6、P1.7口相连,分别对应光标移动,时间、日期调整,退出、闹铃开关键的功能。

闹铃电路

当闹铃显示“关”时,闹铃不起作用;当闹铃显示“开”时,设定闹铃时间,闹铃时间只可设定时和分,当前时间不断与设定的闹铃时间比较,不相等时不产生任何现象,一旦相等,P3.5输出一个低电平使三极管导通,从而使蜂鸣器工作,闹铃起作用。

4.1阳历程序的发明

因为使用了时钟芯片DS1302,阳历程序只需从DS1302各寄存器中读出年、周、月、日、[小]时、分、秒等数据,再处理即可。在首次对DS1302进行操作之前,必须对它进行初始化,然后从DS1302中读出数据,再经过处理后,送给显示缓冲单元。

时间调整程序发明

调整时间用三个调整按钮,一个作为移位、控制用,一个作为加用,一个作为退出调整和闹铃开关用。分别定义为控制按钮、加按钮、退出按钮。在调整时间过程中,要调整的位与别的位应该有区别,所以增加了闪烁功能,即调整的位一直在闪烁,直到调整下一位。闪烁原理就是,让要调整的一位每隔一定的时间熄灭一次,例如间隔时间为50ms。利用定时器计时,当达到50ms溢出时,就送给该位熄灭符,在下一次溢出时,再送正常显示的值,不断交替,直到调整该位结束。此时送正常显示值给该位,再进入下一位调整闪烁程序。

阴历程序发明

阴历程序的实现是要靠阳历日期来推算的。要根据阳历来推算阴历日期,首先要发明算法。推算方法是,根据阳历当前日期在一年中的天数来计算阴历日期。阳历一个月不是30天就是31天(2月除外,闰年2月为29天,平年2月为28天)。阴历一年有12个月或13个月(含闰月),一个月为30天或29天。如果把一个只有29天的月称为小月,用1为标志,把30天的月称为大月,用0为标志,那么12位二进制就能表示一年12个月的大小。如果有闰月,则把闰月的月份作为一个字节的高4位,低4位表示闰月大小,大月为0,小月为1,这样一个字节就包括了所有闰月的信息。阴历春节和阳历元旦相差的天数也用一个字节表示。总共用4字节就可以存储一年中任何一天阳历和阴历的对应关系的有关数据。

2004年的春节和元旦差21天,这样2004年的信息表示为:21,42H,52H,21H。其中表示12个月大小信息的字节,第4位和第7位不用,第1个字节为十进制,其它的都为十六进制。按此方法,50年的阳历和阴历对应关系表总共使用200字节。

有了算法和数据以后,就可以发明软件了。先要根据当前阳历的日期,算出阳历为该年中的第几天。计算阳历中任何一天在该年中为第几天的程序流程。

计算出当前阳历日期为该年中的第几天后,再减去阳历该年春节和元旦的日差,如果够减,则相减的结果就是阴历在该年中的总第几天了。根据该数据就可以推算出具体的当前阴历日期;如果不够减,则表示当前阴历年为阳历年的前一年。这种情况下,根据实际,当前阴历日期会处于阴历11月或12月,此时春节和元旦的日差减去前面计算出的当前阳历日期在阳历年为第几天的数据,其结果表示当前阴历日期离春节的天数。计算出的阳历天数为该年的第几天,存放在寄存器R2和R3中。计算出天数后,如果大于#FFH,则把#FFH存放在R2中,余值存放在R3中。也就是说在用寄存器R2和R3表示的天数信息中,R2充当主寄存器,数据先存满R2,再存R3。在整个转换程序中,这里面的数据不能被覆盖。

计算出阳历总天数后,就可以根据它来推算阴历日期。推算方法是,先用总天数减去春节和元旦的日差,如果结果为1,则该天正好是春节(因为春节在元旦之后,在计算春节和元旦的日差时,假设元旦为0天,春节为n天,则日差为n。而前面计算的阳历总天数是该天在该年中的第几天,是以元旦为1而得到的,与计算春节和元旦日差的这样方法相比,其数值少了1,所以要在原来本应该以0作为该天就是春节的依据的基础上加1,所以以1作为该天是春节的标志);如果结果小于1,则阴历应该是阳历的前一年;如果结果大于1,说明阳历和阴历为同一年。再根据查表所得的该年的阴历的闰年和大小月的信息,就可以推算出该天的阴历日期了。

调节10K电位器R4可调整液晶显示屏的亮度。调整到合适亮度后,按控制按钮,光标会从阳历年位开始闪烁,进入设定调整状态。此时按加按钮,当前数字就可改变。按一次,数字加1;若长按,则数字连续加。此时,调整的位一直在闪烁,直到再次按光标移动控制位,光标跳到下一位闪烁。调整顺序依次为:阳历年、月、日,阴历年、月、日,时、分、秒,闹铃时、分。当全部参数调整完毕后,按退出按钮,光标停止闪烁,退出设定调整状态;当再次按下此按钮,闹铃显示“开”;当第三次按下此键,闹铃显示“关”。若当前月为闰月,则屏幕左下角会显示“闰月”;若不是闰月,则无显示。

调试分为硬件调试和软件调试。硬件调试主要是检测硬件电路是否有短路、断路、虚焊等。DS1302的硬件电路很简单,只通过3根线与单片机相连,很容易检测,主要是检查其引脚,如晶振和电源等是否接好。另外可以通过软件来调试硬件,如为了测试显示电路连接是否正确,可以编写一个简单的显示程序来测试它。接下来可进行软件调试,可以编写只含DS1302的计时和读写程序、显示程序,测试DS1302是否正常工作。最后调试时间调整程序和阴历推算程序。

计时器最关键的是计时的精度。电子万年历中DS1302电路使用专用的晶振,经测试制作的电子万年历,一星期快了3s左右,误差较大,实验发明中可换用标准晶振或用软件进行修正。

本文发布于:2024-09-24 10:24:01,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/73022.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议