基于51单片机的日历时钟显示系统设计_第1页
基于51单片机的日历时钟显示系统设计_第2页
基于51单片机的日历时钟显示系统设计_第3页
基于51单片机的日历时钟显示系统设计_第4页
基于51单片机的日历时钟显示系统设计_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

1、带日历电子钟的设计摘 要随着电子技术的迅速发展,特别是大规模集成电路的出现,确实给人类生活带来了根本性的改变,单片机技术的应用产品也已经走进了千家万户。时间的流逝,至从观太阳、摆钟到现在电子钟,人类不断研究,不断创新纪录。本文首先描述系统硬件工作原理,并附以系统结构图加以说明,着重介绍了本系统所应用的各硬件接口技术和各个接口模块的功能及工作过程;其次,详细阐述了程序的各个模块和实现过程。本设计以数字集成电路技术为基础,单片机技术为核心。本文编写的主导思想是软硬件相结合,以硬件为基础,软件为主导,来进行各功能模块的编写。本系统以AT89S52单片机为控制核心,以DS1302实时时钟电路对年、月、

2、日、星期、时、分、秒进行计时,,同时用汇编语言和C语言进行软件设计。系统通过LCD液晶显示芯片显示数据,所以具有人性化的操作和美观的效果。关键词:AT89S52;DS1302;LCD1602液晶显示;With the design of electric clock calendarABSTRACTWith the rapid development of electronic technology, especially with the emergence of large-scale integrated circuits, to human life brought about fun

3、damental changes. Its single-chip technology is the product has entered the tens of thousands of households. The emergence of the electronic calendar to peoples lives is brought about by a lot of convenience.This article will first describe the working principle of the system hardware with the syste

4、m block diagram to illustrate the structure , highlighted by the application of the system interface technology of the hardware and the interface module functions and work processes, and secondly, the procedures described in detail the various module and the realization of processes. The design of d

5、igital integrated circuits technology takes single-chip technology as the core. This article is the guiding philosophy of the preparation of a combination of hardware and software to hardware-based, to the preparation of various functional modules .AT89S52 in the system for the control of single-chi

6、p core to real-time clock circuitry on the DS1302 year, month, day, weekdays, hours, minutes, seconds for time, also has multiple functions, such as a leap year compensation, at the same time with assembly language software design, increase the readability and procedures. LCD display data through th

7、e system and therefore have a user-friendly operation and aesthetic results.Key words:AT89S52;DS1302;LCD1602;39目 录第一章 绪论11.1 选题意义11.2 当今应用领域电子钟的发展趋势11.3 本课题主要研究的内容2第二章 系统方案论证32.1 系统具体要求32.2 系统基本方案的选择和论证32.2.1 单片机芯片的选择方案和论证42.2.2 显示器件的选择方案和论证42.2.3 时钟电路的选择方案和论证42.3 电路设计最终方案决定5第三章 系统的硬件设计与实现53.1 系统硬件描

8、述53.2 芯片介绍63.2.1 AT89S52芯片63.2.2 DS1302实时时钟芯片83.2.3 LCD1602液晶显示芯片93.3 系统硬件模块的设计123.3.1 AT89S52主控模块的设计123.3.2 DS1302时钟模块的设计133.3.4 LCD1602显示模块的设计13第四章 系统软件设计144.1 软件整体设计154.2 子模块设计154.2.1 DS1302时钟子模块的设计154.2.2 LCD1602显示子模块的设计194.3 软件测试234.3.1 测试结果及分析234.3.2 测试结论23第五章 系统调试245.1 软件调试245.1.1 仿真软件介绍245.1

9、.2 软件调试过程及结果分析255.2 硬件调试26课程设计总结27致 谢28参考文献29附录A 系统电路设计原理图37附录B 系统源程序37第一章 绪论1.1 选题意义随着进入21世纪,现代科技的进一步发展。新产品、新技术层出不穷,电子技术的发展更是日新月异。可以毫不夸张地说,电子技术的应用无处不在,电子技术正在不断的改变着我们的生活,改变着我们的世界。在这快速发展的时代,时间对人们来说是越来越宝贵,在快节奏的生活里,人们往往忘记了时间。一旦遇到重要的事情,忘记时间这将会带来很大的损失。因此我们需要一个定时系统来提醒这些忙碌的人,而电子钟可以给人们带来了极大的方便,使人们掌握准确的时间,从而

10、挽回那些损失。随着大规模集成电路技术的发展,已经可以将CPU、RAM、ROM、定时/计数器以及输入/输出(I/O)接口电路等计算机的主要部件集成在一块集成电路芯片上,这样组成的芯片级的微型计算机就是“单片微型计算机(Single Chip Microcomputer)”。由于单片机从功能和形态来说都是作为控制领域应用的要求而诞生的,并且发展到新一代80C52、M68HC11系列单片机时,在其中着力扩展了各种控制功能,如模/数(A/D)转换、脉宽调制(PWM)、计数器捕获/比较逻辑(PCA)、高速I/O口和WDT等,已突破了微型计算机的传统内容。所以更准确的叫法应是微控制器(Micro Cont

11、roller UnitMCU)。由于单片机具有灵活性强、成本低、功耗低、保密性好等特点,所以电子钟一般都以单片机为核心,外加一些外围设备来实现。单片机应用的重要意义还在于,他从根本上改变了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。单片机模块中最常见的是电子钟,电子钟是采用数字电路实现对时、分、秒计时的装置,广泛用于个人家庭,车站,办公室等公共场所,成为人们日常生活中不可少的必需品,随着科技的发展,让你们对电子产品的应用要求越来越高,电子钟不但可以显示

12、当前的时间,而且可以显示日期,给人们的生活带来了方便。1.2 当今应用领域电子钟的发展趋势单片机的发展大致经历了三代:第一代:以1976年推出的MCS-48系列为代表,其主要的技术特征是将CPU和计算机外围电路集成到了一个芯片上,成为与通用CPU分道扬镳的标志。第二代:以MCS-的8051、8052为代表。主要技术特点是向外部接口电路扩展,以实现微控制器化。代表产品为Intel公司MCS-51,Motorola公司68HC05。第三代:以89C51系列单片机为代表,这个时期的产品以CMOS化为特色,以完善的单片机的控制功能为己任。89C51是80C51含EEPROM的产品。这两种单片机有两级或

13、三级程序存储器保密系统,用以保护EPROM或EEPROM中的程序,以防止非法复制。近几年,单片机竞相采用Flash存储器,它可以取代PROM、EPROM、OTP和EEPROM。利用Flash存储器可高速读/写的特点实现在系统编程ISP和在应用编程IAP。近些年,随着科技的发展和社会的进步,人们对电子钟的要求也越来越高,传统的时钟已不能满足人们的需求。新型的电子时钟不管在性能还是在样式上都发生了质的变化。传统的电子钟从硬件电路设计方面来说,开发起来很麻烦,费工费时。抗干扰的问题也比较突出,由于体积相对大一些,使用起来也不是很方便。而现在的电子时钟硬件简单,灵活性强、成本低、功耗低、保密性好,使用

14、方便。目前,国际上的电子钟正从模拟式向数字式,由集成化向智能化的方向飞速发展。如今,随着数字芯片的诞生,曾经令人眼花缭乱的电路。密密麻麻焊接在一起的元器件,如今已经被一个小小的、毫不起眼的芯片代替了。1.3 本课题主要研究的内容本课题研究的是基于单片机AT89S52的控制来设计带日历电子钟。在查阅了大量资料后,决定采用基于AT89S52单片机的电子钟设计方案。本方案以AT89S52单片机作为主控核心,与时钟芯片DS1302、LCD1602液晶显示屏组成硬件系统。此硬件系统能显示丰富的信息。综上所述此电子钟具有读取方便、显示直观、电路简洁、成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔

15、的市场背景。通过一系列的仿真,仿真结果证明,设计的带日历电子钟完全达到了课题预期制定的各项功能指标,成功的完成了课题的最终目标。第二章 系统方案论证2.1 系统具体要求(1) 设计内容1) 设计一个带日历的电子钟。 2) 完成5000汉字的与设计内容有关的英文资料的翻译。(2) 设计的主要功能与设计要求 1) 满足电子钟的基本功能: 2) 带日历:正常显示年月日2.2 系统基本方案的选择和论证该系统既可以通过纯硬件实现,也可以通过软硬件相结合实现。根据电子时钟的核心部件秒信号的产生原理,通常有三种形式:(1) 采用NE555时基电路的实现形式 采用NE555时基电路或其他振荡电路产生秒脉冲信号

16、,作为秒加法电路的时钟信号或微处理器的外部中断输入信号,可构成电子钟。由555构成的妙脉冲输发生器电路如图2-1所示。输出的脉冲信号Vo的频率f=1.443/(RA+2RB)*C,可通过调节这三个参数,使输出Vo的频率为精确的1Hz。 (2) 采用石英钟专用的实现形式图2-1 基于555的妙脉冲发生器采用石英钟专用计时芯片实现的电子钟,具有实现简单、计时精度高的特点。石英计时芯片(简称“机心”)比较多,常见的型号有 STP5512F,SM5546A和D60400等。现结合康巴丝石英汇钟常用的STP5512F型为例做一简单介绍。利用5512F的2秒输出信号作为秒加法电路的计数脉冲,可实现电子时钟

17、。5512F的引脚图如图2-2所示:图2-2 5512F的引脚图其中,引脚7、8为外接晶振及振荡电路,引脚1接电源正极,电源为1.5V,引脚3、4原为指针用步进电机线圈的输出驱动,这里可用3脚作为脉冲输出,频率决定于外接晶振的频率。(3) 采用基于单片机的实现形式利用单片机的智能性,可方便地实现具有智能电子钟的设计。由于微处理器均具有时钟振荡系统,利用系统时钟借助微处理器的定时/计数器可实现电子钟功能。虽然,系统时钟的误差较大,电子钟的累积误差也可能较大,但可以通过误差修正软件加以修正。在总体设计思路中,我将其与过去学习过的数字电路进行了比较,决定采用单片机的实现形式。2.2.1 单片机芯片的

18、选择方案和论证方案一:采用89C51芯片作为硬件核心,其为高性能CMOS 8位单片机,该芯片采用Flash ROM,内部具有4KB的可反复擦写的只读程序存储器 (PEROM)、128 bytes的随机存取数据存储器(RAM)、32位可编程I/O口线、2个16位定时/计数器、6个中断源、可编程串行UART通道及低功耗空闲和掉电模式,能于3V的超低压工作,而且与MCS-51系列单片机完全兼容,但是运用于电路设计中时由于不具备ISP在线编程技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,对芯片的多次拔插会对芯片造成一定的损坏。方案二:采用AT89S52,片内ROM全都

19、采用Flash ROM,能以3V的超低压工作,同时也与MCS-51系列单片机完全兼容,该芯片内部存储器为8KB ROM存储空间,同样具有89C51的功能,且具有在线编程可擦除技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,不需要对芯片多次拔插,所以不会对芯片造成损坏。系统采用方案二。2.2.2 显示器件的选择方案和论证方案一:采用LED数码管动态扫描,LED数码管是利用二极管发光显示数字和字母,具有亮度大,通过对其不同的管脚输入相对的电流,会使其发亮,从而显示出数字能够显示时间、日期、温度等所有可用数字表示的参数。LED数码管价格适中,对于显示数字合适。采用动态

20、扫描法与单片机连接时,虽然占用的单片机口线少,但是由于它工作电流较大,显示的信息量有限,连线还需要花费一点时间,若在此题目中应用就会受到很大的限制,所以不用此种作为显示。方案二:采用LCD1602液晶显示屏,LCD1602液晶显示屏的显示功能强大,可显示大量文字,图形,显示多样,清晰可见。而且液晶显示有功耗低、体积小、重量轻、寿命长、不产生电磁辐射污染等优点。所以在此设计中采用LCD液晶显示屏。系统采用方案二。2.2.3 时钟电路的选择方案和论证方案一:直接采用单片机定时计数器提供秒信号,使用程序实现年、月、日、星期、时、分、秒的计时。采用此种方案虽然减少芯片的使用,节约成本,但是,实现的时间

21、误差较大,所以不采用此方案。方案二:采用DS1302时钟芯片实现时钟,DS1302芯片是一种高性能的时钟芯片,可自动对年、月、日、星期、时、分、秒以及闰年补偿的年进行计数,31个字节的静态RAM作为数据暂存区,工作电压2.5V5.5V范围内,2.5V时耗电小于300nA。而且精度高、接线少、使用起来非常方便。所以在此设计中采用DS1302进行计时。系统采用方案二。 2.3 电路设计最终方案决定综上各方案所述,对此课程设计的最终方案选定为:采用AT89S52作为主控制芯片,DS1302时钟芯片提供时钟,LCD1602液晶显示芯片用来显示数据结果。硬件设计总体结构如图2-3所示:图2-3 硬件设计

22、总体结构框图第三章 系统的硬件设计与实现系统的硬件由主控制器AT89S52,DS1302时钟电路,LCD1602液晶显示电路组成。3.1 系统硬件描述本系统是由AT89S52单片机为控制核心,具有在线编程功能、低功耗、能在3V超低压工作。时钟电路由DS1302构成,DS1302是一种高性能、低功耗、带RAM的实时时钟芯片,它可以对年、月、日、星期、时、分、秒进行计时,具有闰年补偿功能,采用三线接口与CPU进行同步通信,具有使用寿命长,精度高和方便操作等特点,同时具有掉电自动保存功能。显示部分由LCD1602构成,LCD1602是2行16个字的5*7点阵图形来显示字符的液晶显示器,具有体积小、功

23、耗低、抗干扰能力强等优点,特别适用于小型手持式设备。3.2 芯片介绍3.2.1 AT89S52芯片(1) 主要性能与MCS-51单片机产品兼容、8K字节的系统可编程Flash存储器、1000次擦写周期、全静态操作:0Hz33MHz、三级加密程序存储器、32个可编程I/O口线、三个16位定时器/计数器、八个中断源、全双工UART串行通道、低功耗空闲和掉电模式、掉电后中断可唤醒、看门狗定时器、双数据指针、掉电标识符。(2) 功能特性描述AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51 产品

24、指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有以下标准功能: 8K字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被

25、冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。8位微控制器8K字节在系统可编程 Flash。(3) 如图3-1所示为AT89S52的引脚图:图3-1 AT89S52引脚图AT89S52芯片引脚说明:1) VCC:运行和程序校验时加+5V的供电电压。2) VSS:接地3) P0口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时

26、,需要外部上拉电阻。4) P1口:P1口是一个具有内部上拉电阻的8位双向I/O口,P1输出缓冲器能驱动4个TTL逻辑电平。对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如下所述。在Flash编程和校验时,P1口接收低8位地址字节。引脚号的第二功能: P1.0 T2(定时器/计数器T2的外部计数输入),时钟输出 P1.1 T2EX(定时器/计数器T2的捕捉/重载触发信号

27、和方向控制) P1.5 MOSI(在系统编程用) P1.6 MISO(在系统编程用) P1.7 SCK(在系统编程用)5) P2口:P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器时,P2口送出高八位地址。在这种应用中,P2口使用很强的内部上拉发送1。在使用8位地址访问外部数据存储器时,P2口输出P2锁存器的内容。在Flash编程和校验时,P2口也接收高8位地址

28、字节和一些控制信号。6) P3口:P3口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4 个TTL 逻辑电平。对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口亦作为AT89S52特殊功能(第二功能)使用,如下表所示。在Flash编程和校验时,P3口也接收一些控制信号。 引脚号的第二功能: P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 INTO(外中断0) P3.3 INT1(外中断1) P3.4 TO(定时/计数器0) P3.5 T1(定时/计数器

29、1) P3.6 WR(外部数据存储器写选通) P3.7 RD(外部数据存储器读选通)此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。7) RST复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。8) ALE/PROG当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功

30、能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。9) PSEN程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。10) EA/VPP外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会

31、锁存EA端状态。如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。Flash存储器编程时,该引脚加上+12V的编程允许电源(Vpp),当然这必须是该器件是使用12V编程电压(Vpp)。11) XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。12) XTAL2:来自反向振荡器的输出。3.2.2 DS1302实时时钟芯片DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、星期、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或

32、RAM数据。DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。 (1) 引脚功能及结构 DS1302的引脚如图3-2所示。 图3-2 DS1302引脚及内部结构图其中Vcc1为后备电源,Vcc2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc10.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。X1和X2是振荡源

33、,外接32.768kHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在Vcc > 2.0V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。I/O为串行数据输入输出端(双向),后面有详细说明。SCLK为时钟输入端。 DS1302的引脚功能

34、如表3-1所示:表3-1 DS1302引脚功能表引脚号引脚名称功能1Vcc2主电源2,3X1,X2振荡源,外接32768HZ晶振4GND地线5RST复位/片选线6I/O串行数据输入/输出端(双向)7SCLK串行数据输入端8Vcc1后备电源3.2.3 LCD1602液晶显示芯片(1) LCD1602内部结构框图如图3-3所示。从大的方面看,LCD内部结构主要包括控制器、驱动器、显示装置三部分。从小的方面看,LCD内部结构主要包括以下几个部分: 图3-3 LCD内部结构框图控制器采用HD44780,驱动器采用HD44100。HD44780是集控制器、驱动器于一体,专用于字符显示控制驱动集成电路。H

35、D44100是作扩展显示字符位的。HD44780是字符型液晶显示控制器的代表电路。HD44780集成电路的特点:1) 可选择5*7或5*10点字符。2) HD44780不仅可作为控制器,而且还具有驱动16*40点阵液晶像素的能力,并且的驱动能力可通过外接驱动器扩展360列驱动。 HD4478可控制字符高达每行80个字,也就是5*8=400点。HD44780内藏有16路行驱动器和40路列驱动器,所以HD44780本身就具有驱动16*40点阵LCD的能力。3) HD44780的显示缓冲区DDRAM、字符发生存储器(ROM)及用户自定义的字符发生器CGRAM全部内藏在芯片内。HD44780有80个字

36、节的显示缓冲区,分两行,地址分别为00H27H,40H67H,他们实际显示位置的排列顺序跟LCD的型号有关,液晶显示模块1602的显示地址与实际显示位置的关系如图3-4所示。图3-4 1602的显示地址与实际显示位置的关系图比如第二行第一个字符的地址是40H,那么是否直接写入40H就可以将光标定位在第二行第一个字符的位置呢?这样不行,因为写入显示地址时要求最高位D7恒定为高电平1所以实际写入的数据应该是01000000B(40H)+10000000B(80H)=11000000B(C0H)。4) HD44780内藏的字符发生存储器已经存储了160个不同的点阵字符图形,如图3-5所示。图3-5

37、字符点阵图这些字符有阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,如数字“1”的代码是00110001B(31H),又如大写的英文字母“A”的代码是01000001B(41H),“A”字的对应上面高位代码为0100,对应左边低位代码为0001,合起来就是01000001,也就是41H。显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”了。5) HD44780具有8位数据和4位数据传输两种方式,可与4/8位CPU相连。6) HD44780具有简单而功能较强的指令集,可实现字符移动、闪烁等显示功能。(2) LCD1602的引脚结构LCD1

38、602引脚图如图3-6所示。 图3-6 LCD1602功能引脚图LCD1602引脚功能表3-2所示:符号名称功能1VSS接地0V2VDD电源电压5V±10%3VEE液晶驱动电压保证VDD-VEE=4.55V电压差4RS寄存器选择信号H:数据寄存器 L:指令寄存器5R/W读写信号H:读 L:写6E片选信号下降沿触发,锁存数据7D0-D7数据线数据传输表3-2 LCD1602引脚功能表第1脚:VSS为地电源。第2脚:VDD接5V正电源。第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。第4

39、脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚:D0D7为8位双向数据线。第15脚:背光源正极。第16脚:背光源负极。3.3 系统硬件模块的设计系统硬件主要由AT89S52主控模块,DS1302时钟模块,LCD1602显示模块组成。3.3.1 AT89S52主控模块的设计AT89S52

40、单片机为40引脚双列直插芯片,有四个I/O口P0,P1,P2,P3,每一条I/O线都能独立地作输出或输入。单片机的最小系统如图3-7所示,18引脚和19引脚接时钟电路,XTAL1接外部晶振和微调电容的一端,在片内它是振荡器倒相放大器的输入,XTAL2接外部晶振和微调电容的另一端,在片内它是振荡器倒相放大器的输出。第9引脚为复位输入端,接上电容,电阻及开关后够上电复位电路,20引脚为接地端,40引脚为电源端。 图3-7 主控制系统3.3.2 DS1302时钟模块的设计DS1302与CPU的连接仅需要三条线,即SCLK(7)、I/O(6)、RST(5)。图3-8所示为DS1302与单片机的连接电路

41、。其中X1和X2外接32.768KHz晶振,SCLK(7)、I/O(6)、RST(5)分别与单片机的P1.6、P1.7、P1.5相连。 图3-8 DS1302的连接电路3.3.3 LCD1602显示模块的设计由于LCD1602液晶显示器是本身带有驱动模块的液晶屏,它只有并口线和一些控制线,与单片机的连接有两种不同的方法,直接访问方式和间接访问方式。本系统采用直接访问方式。直接访问方式就是微处理器把液晶显示模块当做存储器或I/O设备直接挂在总线上,模块8位数据总线与微处理器的数据总线相连,用读操作或写操作信号与地址信号共同产生控制信号。图3-10所示为LCD液晶显示模块电路图。其中J2为8*10

42、K欧姆的排阻作为P0口的上拉电阻,J14为1602液晶显示器件,左边的封SIP16装接口与液晶对应,电位器R7是用来调节液晶背光的对比度的,液晶的4、5、6脚与单片机相连作为控制信号,7-14脚与单片机P0口相连作为数据信号传送。图3-10 LCD1602液晶显示电路 第四章 系统软件设计软件设计的重点在于从DS1302中读取时间和日期数据,并且在LCD1602液晶屏上显示出来。4.1 软件整体设计系统软件主要包括以下几个模块:主程序模块,LCD显示模块,DS1302时钟模块,按键模块等,通过这几个模块的有机结合和互相条用来完成任务。软件总体框架结构如图4-1所示。主模块LCD1602显示模块

43、DS130时钟模块块内部等待函数写指令函数写数据函数初始化函数显示字符函数显示字符串函数写入一字节函数读出一字节函数写入数据函数初始化函数设置初始时间函数图4-1 软件设计总体框架结构在多功能模块化程序设计中,主程序的作用是设置系统运行的一些初始状态及系统运行的环境,并将各功能子程序按要求连接起来组成一个功能强大的系统。在本程序中,LCD1602初始化为:8位数据接口,两行显示,5×7点阵字符,显示开,关光标,光标移动为增量式。DS1302初始化为:对时钟、RAM的读/写采用单字节方式,采用24小时格式显示时间。4.2 子模块设计4.2.1 DS1302时钟子模块的设计DS1302有

44、一个控制寄存器、12个日历、时钟寄存器和31个RAM。(1) DS1302的控制命令字 控制寄存器用于存放DS1302的控制命令字,DS1302的RST引脚回到高电平后写入的第一个字就为控制命令。它用于对DS1302读写过程进行控制,它的格式如下: 控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。 (2) DS1302的寄存器DS1302有12个寄存器,其中有7个寄存器与日历

45、、时钟相关,存放的数据位为BCD码形式,其日历、时间寄存器及其控制字见表2。此外,DS1302 还有写保护寄存器、慢充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除慢充电寄存器外的所有寄存器内容。 DS1302与RAM相关的寄存器分为两类:一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0HFDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。说明: 数据都以BCD码形式表示。 小时寄存器的D7位为12小时/24小时制的选择

46、位,当为1时选12小时制,当为0时选24小时制,D5位为1是上午,D5位为0是下午,D4为小时的十位。 秒寄存器中的CH位为时钟暂停位,当为1时,时钟暂停,为0时,时钟开始启动。 写保护寄存器中的WP为写保护位,当WP=1时,写保护,当WP=0时未写保护,当对日历、时钟寄存器或片内RAM进行写时WP应清零,当对日历、时钟寄存器或片内RAM读时WP一般置1。 慢充电寄存器的TCS位为控制慢充电的选择,当它为1010时才能使慢充电工作。DS为01选择一个二极管,DS为10选择二个二极管,DS为11或00充电器被禁止。与TCS无关。RS用于选择连接在Vcc2与Vcc1之间的电阻,RS为00,充电器被

47、禁止,与TCS无关。(3) DS1302的输入输出过程数据输入输出(I/O)在控制指令字输入后的下一个SCLK的时钟的上升沿时数据被写入DS1302,数据输入从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0开始到高位7。时序图如4-3所示: 图5 读出DS1302数据 图6 写DS1302控制字节图4-3 DS1302读、写时序图DS1302通过RST引脚驱动输入输出过程,当RST置高电平启动输入输出过程,在SCLK时钟的控制下,首先把控制命令字写入DS1302的控制寄存器,其次根据写入的控制命令字,依次读写内部寄存器或片内

48、RAM单元的数据,对于日历、时钟寄存器,根据控制命令字,一次可以读写一个日历、时钟寄存器,也可以一次读写8个字节,对所有的日历、时钟寄存器,写的控制命令字为0BEH,读的控制命令字为0BFH;对于片内RAM单元,根据控制命令字,一次可读写一个字节,一次也可读写31个字节。当数据读写完后,RST变为低电平结束输入输出过程。无论是命令字还是数据,一个字节传送时都是低位在前,高位在后,每一位的读写发生在时钟的上升沿。DS1302时钟模块软件设计具体可以包括三个模块:写入数据模块、读出数据模块、初始化事件模块,每个模块有可以包含几个子函数,具体DS1302程序流程图如图4-4所示。变量初始化使DS13

49、02不具备写保护复位端产生一个高电平写DS1302地址延时一段时间向该地址写数据数据写完了吗?复位端产生一个高电平写DS1302地址将该地址的数据读出地址增加数据读完了吗?地址加1延时一段时间YNYN开始结束图4-4 DS1302流程图根据本人在调试中遇到的问题,特作如下说明: DS1302 与微处理器进行数据交换时,首先由微处理器向电路发送命令字节,命令字节最高位MSB(D7)必须为逻辑1,如果D7=0,则禁止写DS1302,即写保护;D6=0,指定时钟数据,D6=1,指定RAM数据;D5D1指定输入或输出的特定寄存器;最低位LSB(D0)为逻辑0,指定写操作(输入), D0=1,指定读操作

50、(输出)。 在DS1302的时钟日历或RAM进行数据传送时,DS1302必须首先发送命令字节。若进行单字节传送,8位命令字节传送结束之后,在下2个SCLK周期的上升沿输入数据字节,或在下8个SCLK周期的下降沿输出数据字节。 DS1302与RAM相关的寄存器分为两类:一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0HFDH,其中奇数为读操作,偶数为写操作;再一类为突发方式下的RAM寄存器,在此方式下可一次性读、写所有的RAM的31个字节。 要特别说明的是备用电源B1,可以用电池或者超级电容器(0.1F以上)。虽然DS1302在主电源掉电后的耗电很小,但是,如果要

51、长时间保证时钟正常,最好选用小型充电电池。可以用老式电脑主板上的3.6V充电电池。如果断电时间较短(几小时或几天)时,就可以用漏电较小的普通电解电容器代替。100 F就可以保证1小时的正常走时。DS1302在第一次加电后,必须进行初始化操作。初始化后就可以按正常方法调整时间。 (4) 结论 DS1302 存在时钟精度不高,易受环境影响,出现时钟混乱等缺点。DS1302可以用于数据记录,特别是对某些具有特殊意义的数据点的记录,能实现数据与出现该数据的时间同时记录。这种记录对长时间的连续测控系统结果的分析及对异常数据出现的原因的查找具有重要意义。传统的数据记录方式是隔时采样或定时采样,没有具体的时

52、间记录,因此,只能记录数据而无法准确记录其出现的时间;若采用单片机计时,一方面需要采用计数器,占用硬件资源,另一方面需要设置中断、查询等,同样耗费单片机的资源,而且,某些测控系统可能不允许。但是,如果在系统中采用时钟芯片DS1302,则能很好地解决这个问题。4.2.2 LCD1602显示子模块的设计(1) LCD1602各寄存器介绍字符型液晶显示模块内部控制器主要由指令寄存器IR、数据寄存器DR、忙标示BF、地址计数器AC、DDROM、CGRAM、及时序发生电路组成。 输入输出寄存器:本单元为LCD的大门,所有数据和控制信号都需通过本单元才得以进出LCD。 指令寄存器:本寄存器(IR)为8位,

53、其功能是存放微控制器所送入的指令、DDRAM、或CGRAM的地址。 指令译码器:本寄存器是将指令寄存器里的指令译码,以获得所要操作DDRAM或CGRAM的地址。 数据寄存器:本寄存器(DR)连接LCD内部数据总线,DDRAM或CGRAM的数据存取都通过本寄存器。 地址计数器:本寄存器(AC)连接内部的地址总线,DDRAM或CGRAM的操作都需通过本计数器提供的地址来寻址。 忙碌标志:本标志(BF)用以表示当时LCD的状态,若BF=1,则表示处于忙碌状态无发接受外部指令或数据;若BF=0,则可接受外部指令或数据。 显示数据存储器:本存储器(DDRAM)存储所要显示的数据。实际上本存储器里存放的是

54、要显示数据的ASCII码,再以ASCII码为地址,到CGRAM里找到该字节型的现实编码。(2) 基本操作时序 读操作时序 写操作时序对以上时序图的说明如下:读状态:输入:RS=0,RW=1,E=1 输出:D0-D7为状态字写指令:输入:RS=0,RW=0,D0D7为指令码,E高脉冲 输出:无读数据:输入:RS=0,RW=1,E=1 输出:D0-D7为数据写数据:输入:RS=1,RW=0,D0D7为数据,E高脉冲 输出:无(3) LCD1602指令说明LCD控制器HD44780内有多个寄存器,通过RS和R/W引脚共同决定选择哪一个寄存器,选择情况如下表所示:LCD1602液晶模块内部的控制器共有11条控制指令,它们的格式和功能如下表所示:它的读写操作、屏幕和

温馨提示

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

评论

0/150

提交评论