毕业设计(论文)-基于单片机的电子万年历设计.doc_第1页
毕业设计(论文)-基于单片机的电子万年历设计.doc_第2页
毕业设计(论文)-基于单片机的电子万年历设计.doc_第3页
毕业设计(论文)-基于单片机的电子万年历设计.doc_第4页
毕业设计(论文)-基于单片机的电子万年历设计.doc_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

湖南工业大学本科毕业设计(论文)摘 要单片机应用技术飞速发展,从导弹的导航装置,到飞机上各种仪表的控制,从计算机的网络通讯与数据传输,到工业自动化过程的实时控制和数据处理,以及生活中广泛使用的各种智能IC卡、电子宠物等,这些都离不开单片机。单片机是集CPU,RAM,ROM ,定时,计数和多种接口于一体的微控制器。它体积小,成本低,功能强,广泛应用于智能产业和工业自动化上。本文通过对一个基于单片机的能实现万年历功能电子时钟的设计,系统由主控制器AT89S52、时钟电路DS1302、显示电路、按键电路、和复位电路等部分构成,主控制系统作为控制中心,DS1302产生时钟,12864液晶显示对日期时间等进行显示,按键可以设置时间、闹钟等。能实现时钟日历和时间显示的功能,能进行时、分、秒的显示。未来,万年历将会朝着精准度更高,外观更加美丽,价格更加实惠的方向发展,并且将会出现更多的辅助功能。关键词:单片机,农历查询,万年历28湖南工业大学本科毕业设计(论文)ABSTRACTAs the rapid development of Single-chip Microcomputer Application technology, from the navigation device of missile to the various instruments on the aircraft control and from computer communication network and data transmission to industrial real-time automation process control and data processing, as well as the extensive use of the smart card and electronic pets in live, All of this is inseparable from the microcontroller. SCM is set to CPU, RAM, ROM, timing, counting and multiple interfaces in one microcontroller. It has the advantages of small volume, low cost, strong function, widely used in smart industries, and industrial automation. This paper designed a electronic clock which can achieve calendar function based on microcontroller, the system consists of main controller AT89C51, clock circuit, display circuit, DS1302circuit, and a reset circuit components, the main control system as the control center, DS1302 generates a clock, a 12864 LCD display the date and time, the key can set the time, alarm clock, achieved the clock calendar and time display function, can carry out the time, seconds display.In the future, the calendar will be more accurate, look more beautiful; more affordable prices of the direction of development, and will appear more auxiliary function.Keywords: Monolithic single-chip,lunar calendar demand, perpetual calendars目 录 摘 要IABSTRACTII目 录III第1章 绪论11.1 课题的背景 11.2 电子万年历的发展11.3 本次电子万年历设计1第2章 设计要求与方案论证32.1 设计要求32.2 方案论证32.2.1 控制部分的方案选择32.2.2 显示部分的方案选择32.2.3 单片机芯片的选择方案和论证42.2.4 时钟芯片的选择方案和论证4第3章 硬件设计53.1 电路的设计框图53.2 主要单元电路的设计53.2.1 单片机主控电路设计63.2.2 时钟电路设计83.2.3 复位电路设计93.2.4 温度传感器电路设计103.2.5时钟电路设计113.2.6 显示电路设计133.2.7 按键调整系统电路设计16第4章 软件部分设计174.1 程序流程图174.1.1 主程序流程174.1.2 计算阳历流程174.1.3 时钟芯片读写程序流程204.1.4温度测量元件控制程序流程204.2 操作与调试214.2.1软件调试214.2.2 单片机开发板实物图22总结与展望25参考文献26致 谢27附 录错误!未定义书签。第1章 绪论 1.1 课题的背景 随着社会、科技的发展,人类得知时间,从观天阳、摆钟到现在电子钟,不断研究、创新。为了观测时间的同时,能够了接其他与人类密切相关的信息,比如星期、日期等,电子万年历诞生了,它集时间、日期、星期等功能于一身,具有读取方便、显示直观、功能多样、电路简单等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。1.2 电子万年历的发展 二十一世纪的今天,最具代表性的计时产品就是电子万年历,它是近代世界钟表业界的第三次革命。第一次是摆和摆轮游丝的发明,相对稳定的机械振荡频率源使钟表的走时差从分级缩小到秒级,代表性的产品就是带有摆或摆轮游丝的机械钟或表。第二次革命是石英晶体振荡器的应用,发明了走时精度更高的石英电子钟表,使钟表的走时月差从分级缩小到秒级。第三次革命就是单片机数码计时技术的应用(电子万年历),使计时产品的走时日差从分级缩小到1/600万秒,从原有传统指针计时的方式发展为人们日常更为熟悉的夜光数字显示方式,更加直观明了,并增加了全自动日期、星期、温度以及其他日常附属信息的显示功能,电子万年历的出现带来了钟表计时业界跨跃性的进步。如今电子万年历飞入了寻常百姓家,挂式、台式以及带装饰画面等丰富的电子万年历数不胜数,不但满足了精准的计时需求,还将计时带上了科技时尚的味道。单片机技术所应用的功能控制芯片可进行多种功能的设置,如闹钟、报时、日历查询、语音等;并改善了很多原有石英钟不能解决的问题,例如:数字夜光显示、数据存储以及全自动温度检测等功能;这给传统计时消费带来了新的动力,越来越多的消费者选择了电子万年历。1.3 本次电子万年历设计 对于本次毕业设计,首先,本课题对系统主要功能进行分析,确定该系统的主要功能是:阳历日期显示、时间显示、农历日期显示、星期显示、环境温度显示和定时闹铃,并可以修改时间,在修改时间的过程中,可以对月份天数自动判断。其次,要对选用的芯片进行学习,尤其是其工作时序,这是实现系统的关键。温度检测采用DS18B20,由于DS18B20是单总线温度传感器,所以,对其控制需要较严格的时序。通过查阅资料和仿真掌握单总线数字温度传感器的时序要求和工作流程,该系统主要应用了DS18B20的跳过ROM匹配、温度转换、读取温度指令等。最后,时钟芯片采用DS1302,DS1302为三总线时钟芯片,为了能够使其正常工作,要学习其中的寄存器格式、寄存器特殊位作用、读取时间寄存器数据、写入时间寄存器数据等。DS1302时钟芯片内部没有集成备用电源,所以,要对其掉电保护环节进行考虑和设计。显示器件选用12864液晶模块,由于液晶模块在写入指令或数据后,要经过一段时间才能完成内部动作,所以,对其读写控制时要有必要的延时,以等待液晶模块完成内部动作,才能使写入的数据或指令有效。带字库型液晶模块有基本指令集和扩充指令集,本设计不需要显示图片,所以,采用基本指令集。在时间设定环节,要有设定提示,本系统以游标闪烁方式提示用户当前所修改的数据。 第2章 设计要求与方案论证 2.1 设计要求 基本要求:(1)具有显示年、月、日、星期、时、分、秒等功能;(2)万年历具有闰月识别显示功能;(3)具备年、月、日、星期、时、分、秒校准功能;(4)具备温度报警、节日提醒、闹钟功能。2.2 方案论证 2.2.1 控制部分的方案选择 方案一:用可编程逻辑器件设计。可采用ALTERA公司的FLEX10K系列PLD器件。设计起来结构清晰,各个模块,从硬件上设计起来相对简单,控制与显示的模块间的连接也会比较方便。但是考虑到本设计的特点,EDA在功能扩展上比较受局限,而且EDA占用的资源也相对多一些。但是用可编程逻辑器件设计成本较高。方案二:用8位单片机设计。8位单片机有丰富的中断源和时基,方便设计。它的准确度相当高,并且C语言和汇编兼容的编程环境也很方便来实现一些递归调用。I/O口功能也比较强大,方便使用。用8位单片机做控制器最有特色的就是它的可编程音频处理,可完成语音的录制播放和识别。这些都方便对设计进行扩展,使设计更加完善。成本也相对低一些。所以本次设计选用8位单片机设计。2.2.2 显示部分的方案选择 方案一:LED数码管动态扫描。相对于液晶显示比较经济实惠,但液晶显示比数码管显示美观,LED数码管在操作上比较繁琐。方案二:点阵式数码管显示。点阵式数码管显示对于显示文字比较适合,如采用在显示数字显得太浪费,且价格也相对较高,所以也不用此种作为显示。方案三:液晶显示方式。显示功能强,效果直观,可用菜单项来方便操作。所以本次设计选择液晶显示。2.2.3 单片机芯片的选择方案和论证方案一:采用89C51芯片作为硬件核心,采用Flash ROM,内部具有4KB ROM 存储空间,而且与MCS-52系列单片机完全兼容,但是运用于电路设计中时由于不具备ISP在线编程技术;当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要捎入程序时,对芯片的多次拔插会对芯片造成一定的损坏。方案二:采用AT89S52,片内ROM全都采用Flash ROM;同时也与MCS-52系列单片机完全该芯片内部存储器为8KB ROM 存储空间,同样具有89S51的功能,且具有在线编程可擦除技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要写入程序时,不需要对芯片多次拔插,所以不会对芯片造成损坏。所以选择采用AT89S52作为主控制系统。2.2.4 时钟芯片的选择方案和论证 方案一:直接采用单片机定时计数器提供秒信号,使用程序实现年、月、日、星期、时、分、秒计数。采用此种方案虽然减少芯片的使用,节约成本,但是,实现的时间误差较大。所以不采用此方案。方案二:采用DS1302时钟芯片实现时钟,DS1302芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、周、月、年以及闰年补偿的年进行计数,而且精度高,工作电压2.5V5.5V范围内。所以本次设计采用DS1302时钟芯片实现时钟。第3章 硬件设计 3.1 电路的设计框图 本设计采用AT89S52 作为主控制系统;采用 DS1302 提供时钟;采用12864液晶显示作为显示部分;采用24C02C作为存储模块;采用DS18B20温度传感作为温度采集系统;采用四按键调整系统;采用蜂鸣器报警系统。本电路是由AT89S52 单片机为控制核心,具有操作简单的优点;时钟电路由DS1302提供,它是一种高性能、低功耗、带RAM 的实时时钟电路,它可以对年、月、日、周、日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V5.5V。采用三线接口与CPU 进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM 数据。DS1302 内部有一个31*8 的用于临时性存放数据的RAM 寄存器。可产生年、月、日、周日、时、分、秒,具有使用寿命长,精度高和低功耗等特点,同时具有掉电自动保存功能;温度的采集由DS18B20构成;由于24C02C 采用I2C总线结构,操作简单而且具有掉电保存数据的能力,所有闹钟的定时时间以及闹钟的开关用24C02C来存储。图3.1电路的设计框图3.2 主要单元电路的设计本次电路设计主要包括以下几个模块:单片机主控电路设计;时钟电路设计;温度传感器电路设计;实时时钟电路设计;显示电路设计以及按键系统设计。3.2.1 单片机主控电路设计(1)AT89S52的简介 AT89S52是一种低功耗,高性能的CMOS 8位微处理器,内部有8K字节的闪速PEROM ,该芯片采用ATMEL公司高密度、非挥发性存储器工艺制成且与工业标准的MCS-51系列的引脚及指令兼容,FLASH系列存储器为快速擦写存贮器。相对于MCS-51系列芯片而言,其特点如下:可擦写1000次全静态操作:0Hz33MHz 32根可编程I/O口线内部RAM为256字节三个16位的定时/计数器8个中断源AT89S52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89S52可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。(2)AT89S52芯片的管脚、引线与功能引脚信号介绍:P0.0P0.7 :P0口8位双向口线 P1.0P1.7 :P1口8位双向口线 P2.0P2.7 :P2口8位双向口线 P3.0P3.7 :P3口8位双向口线 P1口的第二功能如表3-1:表3.1 P1口第二功能表引脚号第二功能P1.0T2(定时器计数器T2的外部记数输入),时钟输出P1.1T2EX(定时器计数器T2的捕捉重载触发信号和方向控制)P1.5MOSI(在系统编程用)P1.6MISO(在系统编程用)P1.7MCK(在系统编程用)访问程序存储器控制信号:当信号为低电平时,对ROM的读操作限定在外部程序存储器;而当信号为高电平时,则对ROM的读操作是从内部程序存储器开始,并可延至外部程序存储器。 ALE地址锁存控制信号:在系统扩展时,ALE用于控制把P0口输出低8位地址锁存起来,以实现低位地址和数据的隔离。此外由于ALE是以晶振六分之一的固定频率输出的正脉冲,因此可作为外部时钟或外部定时脉冲作用。外部程序存储器读选取通信号:在读外部ROM时有效(低电平),以实现外部ROM单元的读操作。 XTAL1和XTAL2外接晶体引线端:当使用芯片内部时钟时,此二引线端用于外接石英晶体和微调电容;当使用外部时钟时,用于拉外部的时钟脉冲信号。 RST复位信号:当输入的复位信号延续2个机器周期以上高电平时即为有效,用以完成单片机的复位初始化操作。 VSS:地线 VCC:+5V电源 P3口的第二功能如表3-2: 表3.2 P3口第二功能表引脚号第二功能P3.0RXD(串行输入)P3.1TXD(串行输出)P3.2INT0(外部中断0)P3.3INT0外部中断0)P3.4T0(定时器0外部输入)P3.5T1(定时器1外部输入)P3.6WR(外部数据存储器写选通)P3.7RD(外部数据存储器写选通)AT89S52的总线结构: AT89S52的管脚除了电源、复位、时钟接入、用户I/O口部分P3外,其余管脚都是为实现系统扩展而设置的。这些管脚构成了三总线形式,即:地址总线(AB):地址总线宽度为16位,因此,其外部存储器直接地址外围为64K字节。16位地址总线由P0经地址锁存器提供低8位地址(A0A7);P2口直接提供高8位地址(A8A15)。 数据总线(DB):数据总线宽度为8位,由P口提供。 控制总线 (CB):由部分P3口的第二功能状态和4根独立控制线RST、ALE、组成。AT89S52结构框图如图3.2所示。 图3.2 AT89S52芯片图图3.3 AT89S52结构图3.2.2 时钟电路设计 时钟电路用于产生单片机工作所需要的时钟信号,而时序所研究的是指令执行中各信号之间的相互关系。单片机本身就如一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格地作。(1)时钟信号的产生 单片机内部有一个高增益反相放大器,其输入端为芯片引脚XTAL1,其输出端为引脚XTAL2。而在芯片的外部,XTAL1和XTAL2之间跨接晶体振荡器和微调电容,从而构成一个稳定的自激振荡器。 电容器C1和C2的作用是稳定频率和快速起振,电容值的范围在5pF-30pF,典型值为30pF。晶振的频率通常选择两种6MHz和12MHz。只要在单片机的XTAL1和XTAL2引脚外接晶体振荡器就构成了自激振荡器并在单片机内部产生时钟脉冲信号。 (2)时钟振荡电路如图3.4所示:图3.4 时钟振荡电路3.2.3 复位电路设计 复位电路是使单片机的CPU或系统中的其他部件处于某一确定的初始状态,并从这上状态开始工作。单片机常见的复位电路通常单片机复位电路有两种:上电复位电路,按键复位电路。上电复位电路:上电复位是单片机上电时复位操作,保证单片机上电后立即进入规定的复位状态。它利用的是电容充电的原理来实现的。按键复位电路:它不仅具有上电复位电路的功能,同时它的操作比上电复位电路的操作要简单的多。如果要实现复位的话,只要按下RST键即可。它主要是利用电阻的分压来实现的,在此设计中,采用按键复位电路。电路图如图3.5所示。图3.5 按键复位电路复位电路工作原理:上电复位要求接通电源后,单片机自动实现复位操作。上电瞬间RST引脚的高电平将逐渐下降。RST引脚的高电平只要保持足够的时间(2个机器周期),单片机就可以进行复位操作。上电与按键均有效的复位电路不仅在上电时可以自动复位,而且在单片机运行期间,利用按键也可以完成复位操作。本设计选用上电复位电路。3.2.4 温度传感器电路设计 温度传感器的种类众多,DALLAS公司生产的DS18B20温度传感器适合在应用与高精度、高可靠性的场合。DS18B20的主要特点:超小的体积,超低的硬件开销,抗干扰能力强,精度高。DS18B20的主要特征:全数字温度转换及输出 先进的单总线数据通信最高12位分辨率,精度可达土0.5摄氏度 12位分辨率时的最大工作周期为750毫秒 可选择寄生工作方式 检测温度范围为55C +125C (67F +257F)内置EEPROM,限温报警功能 64位光刻ROM,内置产品序列号,方便多机挂接 多样封装形式,适应不同硬件系统 DS18B20工作原理及应用:DS18B20的温度检测与数字数据输出全集成于一个芯片之上,从而抗干扰力更强。其一个工作周期可分为两个部分,即温度检测和数据处理。DS18B20共有三种形态的存储器资源,分别是:ROM 只读存储器:用于存放DS18B20的ID编码,其前8位是单线系列编码(DS18B20的编码是19H),后面48位是芯片唯一的序列号,最后8位是以上56位的CRC码(冗余校验)。数据在出产时设置不由用户更改。DS18B20共64位ROM。RAM 数据暂存器:用于内部计算和数据存取,数据在掉电后丢失,DS18B20共9个字节RAM,每个字节为8位。第1、2个字节是温度转换后的数据值信息,第3、4个字节是用户EEPROM(常用于温度报警值储存)的镜像。在上电复位时其值将被刷新。第5个字节则是用户第3个EEPROM的镜像。第6、7、8个字节为计数寄存器,是为了让用户得到更高的温度分辨率而设计的,同样也是内部温度转换、计算的暂存单元。第9个字节为前8个字节的CRC码。EEPROM 非易失性记忆体,用于存放长期需要保存的数据,上下限温度报警值和校验数据,DS18B20共3位EEPROM,并在RAM都存在镜像,以方便用户操作。 DS18B20芯片与单片机的接口:DS18B20只需要接到控制器(单片机)的一个I/O口上,由于单总线为开漏,所以需要外接一个4.7K的上拉电阻。如要采用寄生工作方式,只要将VDD电源引脚与单总线并联即可。但在程序设计中,寄生工作方式将会对总线的状态有一些特殊的要求。微控制器控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求微控制器将数据线下拉500微秒,然后释放,DS18B20收到信号后等待1660微秒左右,然后发出60240微秒的存在低脉冲,微控制器收到此信号表示复位成功,如果没有收到复位成功信号,则表示DS18B20出现问题,可以用来作为系统设计时的故障提示、判断信号。DS18B20的单总线数据传输特点,决定了它严格的控制时序。微控制器写1时,数据线必须先被拉至低电平,然后就被释放,使数据线在写时间片开始之后的15微秒之内拉至高电平。微控制器写0时,数据线必须先被拉至低电平且至少保持逻辑低电平60微秒。微控制器把数据线从高电平拉至低电平时,产生读时间片,数据线必须保持在逻辑低电平至少1微秒;来自DS18B20的输出数据在读时间片下降沿之后15微秒有效。因此,为了读取从时间片开始算起15微秒的数据线状态,微控制器必须停止把数据线驱动至低电平。在读时间片结束时,数据线经过外部的上拉电阻拉回至高电平。所有读时间片的最短持续期限为60微秒,各个读时间片之间必须有最短为1微秒的恢复时间。其读写时序如图3.6所示。读数据写060微秒15微秒45微秒15微秒45微秒15微秒DS18B20写时间间隙写1图3.6 DS18B20读时间间隙3.2.5时钟电路设计 DS1302是美国DALLAS公司推出的一种高性能、低功耗的实时时钟芯片,附加31字节静态RAM,采用SPI三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号和RAM数据。实时时钟可提供秒、分、时、日、星期、月和年,一个月小与31天时可以自动调整,且具有闰年补偿功能。工作电压宽达2.55.5V。采用双电源供电(主电源和备用电源),可设置备用电源充电方式,提供了对后背电源进行小电流充电的能力。DS1302的外部引脚分配如图3.7所示。DS1302用于数据记录,特别是对某些具有特殊意义的数据点的记录上,能实现数据与出现该数据的时间同时记录,因此广泛应用于测量系统中。图3.7 DS1302的外部引脚分配各引脚的功能为: Vcc1:主电源;Vcc2:备份电源。当Vcc2Vcc1+0.2V时,由Vcc2向DS1302供电,当Vcc2 Vcc1时,由Vcc1向DS1302供电。 SCLK:串行时钟,输入,控制数据的输入与输出; I/O:三线接口时的双向数据线; :输入信号,在读、写数据期间,必须为高。该引脚有两个功能:一、开始控制字访问移位寄存器的控制逻辑;二、提供结束单字节或多字节数据传输的方法。 (1)DS1302的工作原理 DS1302工作时为了对任何数据传送进行初始化,需要将复位脚(RST)置为高电平且将8位地址和命令信息装入移位寄存器。数据在时钟(SCLK)的上升沿串行输入,前8位指定访问地址,命令字装入移位寄存器后,在之后的时钟周期,读操作时输出数据,写操作时输出数据。时钟脉冲的个数在单字节方式下为8+8(8位地址+8位数据),在多字节方式下最多可达248的数据。 (2)DS1302的寄存器和控制命令 DS1302有关日历、时间的寄存器共有12个,其中有7个寄存器(读时81h8Dh,写时80h8Ch),存放的数据格式为BCD码形式,如表3.3所示。 表3.3 DS1302有关日历、时间的寄存器读寄存器写寄存器BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0范围81h80hCH10秒秒00-5983h82h10秒分00-5985h84h12/24010时时1-12/0-23AM/PM87h86h0010日日1-3189h88h00010月月1-128Bh8Ah00000周日1-78Dh8Ch10年年00-998Fh8EhWP0000000DS1302内部的RAM分为两类,一类是单个RAM单元,共31个,每个单元为一个8位的字节,其命令控制字为COHFDH,其中奇数为读操作,偶数为写操作;再一类为突发方式下的RAM,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。 (3)与单片机接口电路原理图 电路原理图如图3.8所示,DS1302与单片机的连接也仅需要3条线:CE引脚、SCLK串行时钟引脚、I/O串行数据引脚,Vcc2为备用电源,外接32.768kHz晶振,为芯片提供计时脉冲。图3.8 DS1302与单片机的连接电路原理图3.2.6 显示电路设计 液晶显示的原理是利用利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示。液晶显示器具有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩色显示的特点,目前已被广泛应用在便携式电脑、数字摄像机、PDA移动通信工具等众多领域。液晶显示的分类方法有很多种,通常可按其显示方式分为段式、字符式、点阵式等。除了黑白显示外,液晶显示器还有多灰度有彩色显示等。在本万年历当中12864 液晶显示显示当前的实时时间和温度及重要的阴阳历节日等功能。12864 液晶显示具有如下的特性:提供8 位,4 位并行接口及串行接口可选并行接口适配M6800 时序自动电源启动复位功能内部自建振荡源6416 位字符显示RAM(DDRAM 最多16 字符4 行,LCD 显示范围162 行)(改为半角输入)2M 位中文字型ROM(CGROM),总共提供8192 个中文字型(1616 点阵)16K 位半宽字型ROM(HCGROM),总共提供126 个西文字型(168 点阵)6416 位字符产生RAM(CGRAM)1516 位总共240 点的ICON RAM(ICONRAM)其与单片机的连接电路如图3.8 所示:图3.8 12864与单片机的接线图液晶显示12864的引脚功能如表3.4所示。表3.4 液晶显示12864的引脚功能引脚号引脚名称方向功能说明1VSS-模块的电池地2VDD-模块的电源正端3VO-LCD驱动电压输入端4RS(CS)H/L并行的指令数据选择信号:串行的片选信号5R/W(SID)H/L并行的读写选择信号:串行的数据口6E(CLK)H/L并行的使能信号:串行的同步时钟7DB0H/L数据08DB1H/L数据19DB2H/L数据210DB3H/L数据311DB4H/L数据412DB5H/L数据513DB6H/L数据614DB7H/L数据715PSBH/L并串行接口选择:H-并行:L-串行16NC空脚17RSTH/L复位 低电平有效18NC空脚19LED_A-背光电源正极20LED_K-背光电源负极对12864写控制时,在使能信号E下降沿有效。在使能信号E下降沿后,为了保证数据或指令可靠写入,需要在使能信号E下降沿后有一段延时,使12864完成内部动作。12864的指令集分为基本指令集和扩充指令集,扩充指令集提供绘图功能,可以显示图片;在本设计当中,仅需要基本指令集以显示汉字、数字和字母,表3.4给出12864的基本指令集。清除显示指令将DDRAM填满“20H”,并且设定DDRAM的地址计数器(AC)为“00H”。 地址归位指令设定DDRAM的地址计数器(AC)为“00H”,并且将游标移到开头原点位置,这个指令并不改变DDRAM的内容。在显示状态开/关指令中,D=1,整体显示ON,C=1,游标ON,B=1,游标位置ON。在功能设定指令中DL=1(必须为1),RE=1,扩充指令集动作,RE=0,基本指令集动作。表3.5 12864的基本指令指令指令码RSRWDB7DB6DB5DB4DB3DB2DB1DB0设定DDRAM地址001AC6AC5AC4AC3AC2AC1AC0些资料到RAM10D7D6D5D4D3D2D1D0清楚显示0000000001地址归位000000001X显示状态开关0000001DCB游标或显示移位控制000001S/CR/LXX功能设定00001DLXREXX3.2.7 按键调整系统电路设计 按键采用4个独立的按键,一个功能键、一个确认键、一个加按键、一个减按键通过这四个按键可以来合理的设置时钟的调整和闹铃的设定温度报警的上下限数值。与单片机的连接电路如图3.9所示:图3.9 按键电路与单片机的链接第4章 软件部分设计 4.1 程序流程图 4.1.1 主程序流程 该系统软件采用汇编语言设计,模块化的设计方法使得该系统以后的升级改动更为灵活。系统软件流程为:上电显示制作者开机界面、读写时间日期和温度、分离时间日期温度显示值、显示子程序、定时闹铃子程序、日期时间修改子程序、农历自动更新子程序、闰月子程序、返回。本系统采用四个按键和微处理器对话,可以修改时间,设定定时时间。微处理器采用查询方式扫描按键状态。主程序执行流程如图4.1所示。图4.1 主程序执行流程图4.1.2 计算阳历流程 计算阳历流程为:所先置阳历天数为30天,再判定是否月大,若为真则天数加一,若为否则此天数就是该月天数,月大加月加一,在判定是否月大,若是则总天数中加入号数,计算阳历天数结束,总天数中的数据为当前日期在阳历中的第几天。 图4.2 计算阳历的流程图4.1.1 时间调整程序流程图时间调整程序中,在对数据加一处理程序中,需要对各数据范围进行判断,年的最大值为99,即该系统最长可显示到2099年的日期、时间。月的最大值为12,时的最大值为23,分的最大值为59,秒的最大值为59。该系统能够对每月的天数进行自动判断,阳历的月份信息为:1、3、5、7、8、10、12月,每月31天;4、6、9、11月,每月30天;二月最为特殊,非闰年为28天,闰年为29天,所以,要想实现日期加一,除了要判断月份值外,还需要判断年份是否为闰年。日期加一的程序流程如图4.3所示。开始控制键有效,进入年调整程序等待按键程序加键有效减键有效年加一年减一控制键有效,进入日调整程序控制键有效,进入月调整程序等待按键程序加键有效减键有效月加一月减一控制键有效,进入星期调整程序等待按键程序加键有效减键有效日加一日减一控制键有效,进入小时调整程序等待按键程序加键有效减键有效星期加一星期减一控制键有效,进入分钟调整程序等待按键程序等待按键程序加键有效减键有效小时加一小时减一加键有效减键有效分钟加一分钟减一按键有效,跳出时间调整程序,进入主循环程序图4.3 时间调整程序流程图4.1.3 时钟芯片读写程序流程在该系统中,微控制器所做的主要工作就是不断的读取时钟芯片内部的日历寄存器数据并将其显示在液晶屏幕上。DS1302采用三总线与微控制器对话,微控制器读写时钟芯片内日历寄存器数据的程序流程如图4.4、4.5所示。图4.4 DS1302多字节读取数据程序流程图4.5 DS1302多字节写入程序流程4.1.4温度测量元件控制程序流程室内环境温度和人们的生活息息相关,随着人们生活水平的提高,人们对和气候相关的数据越来越关心。本系统具有室内温度测量功能,并且通过液晶显示器显示出来,界面直观,可以让人们很方便的了解当前的环境温度。该系统采用DS18B20作为温度传感器,一个微控制器引脚可以挂接多个DS18B20,在微控制器发送指令时,究竟哪一个DS18B20接收指令,由ROM匹配环节确定。本设计只用到一片DS18B20,所以不需要ROM匹配,直接发送跳过ROM匹配指令即可。温度传感器DS18B20控制程序流程如图4.6所示。图4.6 DS18B20控制程序流程4.2 操作与调试 4.2.1软件调试 在本系统中,硬件电路全部采用集成芯片设计。每一个集成芯片都有相应的控制方法,即工作时序。在应用一个集成芯片的时候,首先要认真阅读其读写时序,再了解它的初始化流程及指令集。该系统除含有单总线温度传感器芯片外,还含有液晶显示模块,其控制方式都非常麻烦,对软件的设计要求很严格,尤其是温度传感器芯片,在对其读写过程中,要求有严格的延时。(1)时钟芯片软件调试 在开始的时钟芯片读写过程中,发现不能正确读出时钟芯片数据,读出的时钟芯片数据全部为0FFH。经仔细阅读资料发现时钟芯片DS1302内部含有写保护寄存器,当其最高位为0时,可以写入移位寄存器,反之则不能写入,而在开始初始化DS1302时,并没有包含写保护寄存器最高位清零的环节,所以程序中的所有写入、读出语句全部无效,不能被DS1302所接收。在程序设计的开始加入关闭写保护语句,可以正确写入、读出时钟芯片日历寄存器数据。(2)显示部分软件调试 为了使系统具有良好的人机交互界面,该系统采用液晶显示器显示所有数据,但是,液晶显示模块的控制要比LED数码管复杂得多。液晶模块采用8位并口和微控制器对话,在时钟下降沿有效。在开始的显示部分软件调试过程中,液晶显示模块白屏,即所送指令和数据根本没有被液晶模块所接收。R/WRSE延时有效低电平“写”命令、数据选择DB0-DB7DB0-DB7图4.8 液晶显示模块写时序阅读液晶模块写入时序,如图4.8所示,发现在E下降沿后,要保持数据一段时间,以等待液晶模块完成内部动作。在每一个E下降沿之后加一段延时程序,发现显示部分工作正常。(3)按键部分软件调试 在本系统中,用户可以使用键盘修改时间、设定闹铃时间。以前学习过读取微控制器引脚状态的基本语句。按照理论设计程序,并观察按键按下之后显示界面是否按照理论设计的结果变化,发现在按下一次“选择”键之后,游标不是移动一位,而是移动很多位,这说明硬件有抖动。本设计在最后按键部分软件设计过程中,采用软件消抖和按键释放判断,很好的解决了这个问题。4.2.2 单片机开发板实物图如图4.9和4.10所示,本次设计的最终结果展示:图4.9 实物结果参考1图4.10实物结果参考2本次设计采用AT89S52作为主控系统,采用DS1302作为时钟电路基础,采用DS18B20作为温度传感器设计电路,采用12864作为显示电路设计方案,采用四按键可调可设装置。本万年历拥有年、月、日、星期、时、分、秒等功能,拥有闰月识别显示功能,通过按键可以实现显示年、月、日、星期、时、分、秒校准功能,拥有温度报警、节日提醒、闹钟功能,达到了设计要求。实物设计采用单片机开发板。总结与展望 在该系统设计、调试完成之后,对最后的成功进行分析,同时结合

温馨提示

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

评论

0/150

提交评论