数字万年历设计与实现--毕业论文设计.doc
《数字万年历设计与实现--毕业论文设计.doc》由会员分享,可在线阅读,更多相关《数字万年历设计与实现--毕业论文设计.doc(62页珍藏版)》请在咨信网上搜索。
成都理工大学工程技术学院毕业论文 数字万年历设计与实现 作者姓名: 专业名称:电气工程及其自动化 指导教师: 数字万年历设计与实现 摘要 电子万年历是一种非常广泛日常计时工具,对现代社会越来越流行。它可以对年、月、日、周、时、分、秒进行计时,还具有闰年补偿等多种功能。 电子万年历设计是基于单片机进行的,可以显示年、月、日、时、分、秒、周及温度信息,具有可调整日期和时间功能。设计包含AT89S52单片机模块、LCD数码管模块、键盘模块、DS1302模块、数字式温度传感器DS18B20模块。AT89S52单片机作为核心,功耗小,能在3V的低压工作,电压可选用3~5V电压供电。LCD数码管动态扫描,对于显示数字最合适,价格适中,而且采用动态扫描法与单片机连接时,占用的单片机口线少。DS1302的使用寿命长,误差小。对于数字电子万年历采用直观的数字显示,可以同时显示年、月、日、周日、时、分、秒和温度等信息,还具有时间校准等功能。数字式温度传感器DS18B20仅需要一条数据线进行数据传输,易与单片机连接简化系统电路.数字式温度传感器还具有测量精度高、测量范围广等优点。 关键词 :AT89S52 DS1302 DS18B20 LED数码管 Abstract Electronic calendar day time is a very wide range of tools, the more popular in modern society more and. It can be years, months, days, weeks, hours, minutes and seconds for time, but also has a leap year compensation and other functions. Electronic calendar design is based on SCM, can display year, month, day, time, minutes and seconds, week and temperature information, which can adjust the date and time functions. Design including AT89S52 MCU module, LCD digital tube module, keyboard module, DS1302 module, digital temperature sensor DS18B20 module. AT89S52 microcontroller as the core, small power consumption, can work in low-voltage 3V, voltage can choose 3~5V voltage supply. LED digital tube dynamic scanning, the most suitable for digital display, moderate price, and using dynamic scanning method is connected with the MCU, microcontroller port occupied less lines. DS1302 has a long service life, small error. For digital electronic calendar using visual digital display, can display year, month, day, Sunday, when, minutes and seconds and temperature information, but also a time calibration functions. Digital temperature sensor DS18B20 requires only one data line for data transmission, easy to be connected with the single-chip microcomputer to simplify the system circuit. The digital temperature sensor has high measuring precision, wide measuring range etc. Keywords: AT89S52, DS1302, DS18B20, digital tube LED 目录 摘要 II Abstract III 目录 IV 前言 1 1总体设计方案 2 1.1 设计方案 2 1.2 方案比较论证 2 1.3 总体设计方框图 3 2设计原理与分析 4 2.1 单片机主控制器 4 2.2 温度传感器芯片 5 2.3 时钟芯片DS1302 9 2.4 16*2LCD液晶显示1602 12 3硬件电路 16 3.1 单片机主控制模块的设计 16 3.2 时钟电路模块的设计 16 3.3 温度采集模块设计 17 3.4 功能按钮设计 18 3.5 16*2 LCD1602液晶显示电路设计 18 4系统软件设计 20 4.1 系统模块的功能分划分 20 4.2 总体程序流程框图 20 4.3 时钟调整时间的流程图 21 4.4 温度转换流程图 22 总结 24 致谢 25 参考文献 26 附件1总体电路图 27 附件2源程序 28 - IV - 前言 随着电子技术的迅速发展,特别是随大规模集成电路出现,给人类生活带来了根本性的改变。尤其是单片机技术的应用产品已经走进了千家万户。其中电子万年历就是一个典型的例子。 万年历是采用数字电路实现对,时,分,秒。数字显示的计时装置,广泛用于个人家庭,车站,码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,但是所有这些,都是以钟表数字化为基础的。因此,研究万年历及扩大其应用,有着非常现实的意义。 市场上有许多电子钟的专用芯片如:LM8363、LM8365等,但它们功能单一,电路连接复杂,不便于调试制作。但是考虑到用单片机配合时钟芯片,可制成功能任意的电子钟,而且可以做到硬件简单、成本低廉。所以本系统采用了以广泛使用的单片机AT89S52技术为核心,配合时钟芯片DS1302。软硬件结合,使硬件部分大为简化,提高了系统稳定性,并采用LCD显示电路、键盘电路,使人机交互简便易行,此外结合音乐闹铃电路、看门狗和供电电路。本方案设计出的数字钟可以显示时间、设置闹铃功能之外。 本文首先描述系统硬件工作原理,并附以系统结构框图加以说明,着重介绍了本系统所应用的各硬件接口技术和各个接口模块的功能及工作过程,其次,详细阐述了程序的各个模块和实现过程。本设计以数字集成电路技术为基础,单片机技术为核心。本文编写的主导思想是软硬件相结合,以硬件为基础,来进行各功能模块的编写。 本设计中我重点研究实现了单片机+时钟芯片这种模式的万年历,从原理上对单片机和时钟芯片有了深一步的认识,这些基本功能完成后,在软件基础上实现时间显示。 1总体设计方案 用AT89S52处理产生内部时钟数据或者读取外部时钟数据和采集外部传感器的信息进行处理,并暂时寄存在其内部的储存器中,再通过单片机调用内部RAM的数据并送到LCD数码管上显示出来。 1.1 设计方案 方案一:单片机一般的工作频率在12MHz左右,而且内部还有定时、计数器,可以产生精确的1S定时,由此可以用定时中断的方式产生精确的1S时间,秒位不断的加1,再设计分、时、星期、日、月、年之间的进制,使产生进位。本方案只需要单片机最小系统加上显示电路,再设计简单的程序算法就可以实现。对于测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理。在显示电路上,采用数码管就可以将年月日星期时分秒和室内温度显示出来 方案二:万年历时钟采用单片机控制DS1302实时时钟芯片,能达到走时准确且掉电不丢失数据的。DS1302与单片机之间能简单地采用同步串行的方式进行通信仅需用到三个口线1 RES(复位)2 I/O (数据线)3 SCLK(串行时钟)。温度计要灵敏反映室温的变化这样可采用单片机与数字式温度传感器DS18B20通讯,采集温度数字信号进行处理。DS18B20通过一个单线接口发送或接受信息,因此在单片机与DS18B20之间仅需一条连接(加上地线)。在显示电路上,采用16*2的LCD显示。 1.2 方案比较论证 对于方案一,单片机虽然可以产生精确的秒信号,但是单片机在处理闰年上会比较麻烦,加之一旦单片机断电后,所有的时间都要重新调整。对于测温电路,采用热敏电阻的输出电压-温度特性,要加上A/D转换,温度传感信息才能被单片机所接受,这种设计需要用到A/D转换电路,感温电路比较麻烦。在显示电路上,采用LCD数码的话要用到单片机的许多I/O口,甚至I/O不够用,还需要接上其它芯片大量扩展I/O口,这是一个弊处。 对于方案二,单片机不用去产生时钟的数据,时钟的数据由DS1302独立产生,并寄存在其内部的寄存器上,单片机可以通过三总线与它通讯,不仅可以对它进行读取实时时钟数据,还可以对它进行编程,设置它的工作模式。单片机只是处理从DS1302读出来的数据并送显示,大大减少了单片机的负担。而且DS1302可以通过后备电池继续工作,内部的时钟还在走,下次启动后不用去调整时钟,方便使用。基于同样的原理,DS18B20也是一个独立的传感器,只要单片机配置它的工作状态后它就可以独立工作,内部已经把模拟信号转换成数字信号,并把数字信号储存在其内部寄存中。同样,单片机通过单总线与它通讯,可以处理9~12位的温度数字数据。在显示电路上,采用16*2 LCD液晶显示器,能容纳年月日星期时分秒温度等信息的显示。LCD显示器只需占用11个I/O口就可以工作了,不用其它扩展芯片,总体上使电路简单化。 1.3 总体设计方框图 图2.1 总体设计方框图 总体的方框图如图2.1所示,控制器采用单片机AT89S52,温度传感器采用DS18B20,用16*2的LCD液晶显示屏实现年、月、日、星期、时、分、秒、温度的显示。 2设计原理与分析 本次设计的万年历系统主要包括单片机主控制器、温度传感器芯片、时钟芯片DS1302芯片、16*2LCD显示芯片。 2.1 单片机主控制器 AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。 AT89S52是一个低功耗,高性能CMOS 8位单片机,片内含8k Bytes ISP (In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S52可为许多嵌入式控制应用系统提供高性价比的解决方案。 AT89S52具有如下特点:40个引脚,8k Bytes Flash片内程序存储器,256 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。 此外,AT89S52设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。 2.2 温度传感器芯片 1. 单线温度传感器DS18B20介绍 DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。DS18B20的性能特点如下: (1) 独特的单线接口仅需要一个端口引脚进行通信; (2) 多个DS18B20可以并联在唯一的三线上,实现多点组网功能; (3) 无须外部器件; (4) 可通过数据线供电,电压范围为3.0~5.5V; (5) 零待机功耗; (6) 温度以9或12位数字; (7) 用户可定义报警设置; (8) 报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件; (9) 负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作; DSl8B20数字温度计提供9位(二进制)温度读数,指示器件的温度。信息经过单线接口送入DSl8B20或从DSl8B20送出,因此从主机CPU到DSl8B20仅需一条线(和地线)。DSl8B20的电源可以由数据线本身提供而不需要外部电源。因为每一个DSl8B20在出厂时已经给定了唯一的序号,因此任意多个DSl8B20可以存放在同一条单线总线上。这允许在许多不同的地方放置温度敏感器件。DSl8B20的测量范围从-55摄式度到+125摄式度,增量值为0.5摄式度,可在ls(典型值)内把温度变换成数字。 每一个DSl8B20包括一个唯一的64位长的序号,该序号值存放在DSl8B20内部的ROM(只读存贮器)中。开始8位是产品类型编码(DSl8B20编码均为10H)。接着的48位是每个器件唯一的序号。最后8位是前面56位的CRC(循环冗余校验)码。DSl8B20中还有用于存储测得的温度值的两个8位存贮器RAM,编号为0号和1号。1号存贮器存放温度值的符号,如果温度为负(摄式度),则1号存贮器8位全为1,否则全为0。0号存贮器用于存放温度值的补码,LSB(最低位)的1表示0.5摄式度。将存贮器中的二进制数求补再转换成十进制数并除以2就得到被测温度值(-55摄式度-125摄式度)。DSl8B20的引脚如图2.2所示。每只DS18B20都可以设置成两种供电方式,即数据总线供电方式和外部供电方式。采取数据总线供电方式可以节省一根导线,但完成温度测量的时间较长;采取外部供电方式则多用一根导线,但测量速度较快。 图2.2 DS18B20引脚图 2. DS18B20的测温原理 器件中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1;高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入。器件中还有一个计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲进行计数进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55℃所对应的一个基数分别置入减法计数器1、温度寄存器中,计数器1和温度寄存器被预置在-55℃所对应的一个基数值。 减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时,温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器计数到0时,停止温度寄存器的累加,此时温度寄存器中的数值就是所测温度值。其输出用于修正减法计数器的预置值,只要计数器门仍未关闭就重复上述过程,直到温度寄存器值大致等于被测温度值。 另外,由于DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。系统对DS18B20的各种操作按协议进行。操作协议为:初使化DS18B20(发复位脉冲)→发ROM功能命令→发存储器操作命令→处理数据。 64位ROM的结构开始8位是产品类型的编号,接着是每个器件的唯一的序号,共有48位,最后8位是前面56位的CRC检验码,这也是多个DS18B20可以采用一线进行通信的原因。温度报警触发器TH和TL,可通过软件写入报警上下限。 3. 温度计算 ① DS18B20用9位存贮温值度,最高位为符号位,如图2.3为DS18B20的温度存储方式,负温度S=1,正温度S=0。如:00AAH为+85摄式度,0032H为25摄式度,FF92H为55摄式度。 图2.3 18B20用9位的温度存储方式 ② DS18B20用12位存贮温值度,最高位为符号位,如图2.4为DS18B20的温度存储方式,负温度S=1,正温度S=0。如:0550H为+85摄式度,0191H为25.0625摄式度,FC90H为-55摄式度。 图2.4 18B20用12位的温度存储方式 DS18B20温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的EEROM。高速暂存RAM的结构为8字节的存储器,结构如图2.5所示。头2个字节包含测得的温度信息,第3和第4字节TH和TL的拷贝,是易失的,每次上电复位时被刷新。第5个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。 图2.5 DS18B20存储器结构EEPROM DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值。该字节各位的定义如图2.5所示。低5位一直为1,TM是工作模式位,用于设置DS18B20在工作模式还是在测试模式,DS18B20出厂时该位被设置为0,用户要去改动,R1和R0决定温度转换的精度位数,来设置分辨率。 由表2.1可见,DS18B20温度转换的时间比较长,而且分辨率越高,所需要的温度数据转换时间越长。因此,在实际应用中要将分辨率和转换时间权衡考虑。 表2.1 DS18B20温度转换时间表 R1 R0 分辨率/位 温度最大转向时间/ms 0 0 9 93.75 0 1 10 187.5 1 0 11 375 1 1 12 750 高速暂存RAM的第6、7、8字节保留未用,表现为全逻辑1。第9字节读出前面所有8字节的CRC码,可用来检验数据,从而保证通信数据的正确性。 当DS18B20接收到温度转换命令后,开始启动转换。转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1、2字节。单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以0.0625℃/LSB形式表示。 当符号位S=0时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位S=1时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值;表2.2为部分温度值对应的二进制温度数据: 表2.2 部分温度值对应的二进制温度数据 温度/℃ 二进制表示 十六进制表示 +125 0000 0111 1101 0000 07D0H +85 0000 0101 0101 0000 0550H +25.0625 0000 0001 1001 0000 0191H +10.125 0000 0000 1010 0001 00A2H +0.5 0000 0000 0000 0010 0008H 0 0000 0000 0000 1000 0000H -0.5 1111 1111 1111 0000 FFF8H -10.125 1111 1111 0101 1110 FF5EH -25.0625 1111 1110 0110 1111 FE6FH -55 1111 1100 1001 0000 FC90H 2.3 时钟芯片DS1302 1. 时钟芯片DS1302的性能 DS1302是DALLAS公司推出的涓流充电时钟芯片内含有一个实时时钟/日历和31字节静态RAM,通过简单的串行接口与单片机进行通信,实时时钟/日历电路提供秒分时日月年的信息,每月的天数和闰年的天数可自动调整,时钟操作可通过AM/PM指示决定采用24或12小时格式,DS1302与单片机之间能简单地采用同步串行的方式进行通信仅需用到三个口线1 RES复位2 I/O 数据线3 SCLK串行时钟/RAM的读/写数据以一个字节或多达31个字节的字符组方式通信DS1302工作时功耗很低保持数据和时钟信息时功率小于1mW。 (1) 实时时钟具有能计算2100年之前的秒、分、时、日、日期、星期、月、年的能力还有闰年调整的能力; (2) 318位暂存数据存储RAM; (3) 串行I/O口方式使得管脚数量最少; (4) 宽范围工作电压2.0~5.5V; (5) 工作电流2.0V时,小于300mA; (6) 读/写时钟或RAM数据时有两种传送方式单字节传送和多字节传送字符组方式; (7) 8脚DIP封装或可选的8脚SOIC封装根据表面装配,如图2.6所示。 图2.6 DS1302的引脚图 (8) 简单3线接口; (9) 与TTL兼容Vcc=5V; (10) 可选工业级温度范围-40℃—+85℃; 2. 时钟芯片DS1302的工作原理 DS1302在每次进行读、写程序前都必须初始化,先把SCLK端置“0”,接着把RST端置“1”,最后才给予SCLK脉冲;图2.7为DS1302的控制字,此控制字的位7必须置1,若为0则不能对DS1302进行读写数据。对于位6,若对程序进行读/写时RAM=1,对时间进行读/写时,CK=0。位1至位5是操作单元的地址。位0是读/写操作位,进行读操作时,该位为1;该位为0则表示进行的是写操作。控制字节总是从最低位开始输入/输出的。“CH”是时钟暂停标志位,当该位为1时,时钟振荡器停止,DS1302处于低功耗状态;当该位为0时,时钟开始运行。“WP”是写保护位,在任何的对时钟和RAM的写操作之前,WP必须为0。当“WP”为1时,写保护位防止对任一寄存器的写操作。 (1) DS1302的控制字节 DS1302的控制字如图2.7所示。控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1是指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出 图2.7 DS1302的控制字 (2) 数据输入输出(I/O) 在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。如下图2.8所示: 图2.8 DS1302读/写时序图 (3) DS1302的数据读写 无论是从DS1302中读一个数据,还是写一个字节数据到DS1302中,都要先写一个命令字到DS1302中。即通过SCLK引脚(7号引脚)向DS1302输入8个脉冲,把I/O引脚(6号引脚)上的命令字写入DS1302。为了启动数据传输,引脚(5号引脚)应为高电平。在将由0置1的过程中,SCLK引脚必须为逻辑0。然后才能进行读写操作。I/O引脚上的数据在SCLK的上升沿串行输入(写数据到DS1302),在SCLK的下降沿串行输出(读数据)。 (4) DS1302的寄存器 DS1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式,其日历、时间寄存器及其控制字见表2.3所示: 表2.3 DS1302的日历、时间寄存器 写寄 存器 读寄 存器 Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 80H 81H CH 10秒 秒 82H 83H 10分 分 84H 85H 0 10 时 时 86H 87H 0 0 10日 日 88H 89H 0 0 0 10月 月 8AH 8BH 0 0 0 0 0 星期 8CH 8DH 10年 年 8EH 8FH WP 0 0 0 0 0 0 0 此外,DS1302还有年份寄存器、控制寄存器、充电寄存器、时钟触发寄存器及与RAM相关的寄存器等。时钟触发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。DS1302与RAM相关的寄存器分为两类:一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0H~FDH,其中奇数为读操作,偶数为写操作;另一类为触发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。 2.4 16*2LCD液晶显示1602 1. 1602采用标准的16脚接口,其中: 第1脚:VSS为地电源。 第2脚:VDD接5V正电源。 第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。 第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。 第5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读取信号,当RS为高电平RW为低电平时可以写入数据。 第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。 第7~14脚:D0~D7为8位双向数据线。 第15~16脚:空脚。 2. 1602液晶模块内部的控制器共有11条控制指令,如表2.4所示: 表2.4 控制指令 指令 RS R/W D7 D6 D5 D4 D3 D2 D1 D0 清显示 0 0 0 0 0 0 0 0 0 1 光标返回 0 0 0 0 0 0 0 0 1 * 置输入模式 0 0 0 0 0 0 0 1 1/D S 显示开/关控制 0 0 0 0 0 0 1 D C B 光标或字符移位 0 0 0 0 0 1 S/C R/L * * 置功能 0 0 0 0 1 DL N F * * 置字符发生 存贮器地址 0 0 0 1 字符发生存贮器地址(AGG) 置数据存贮器 地址 0 0 1 显示数据存贮器地址(ADD) 读忙标志或地址 0 1 BF 计数器地址(AC) 写数到CGRAM或DDRAM 1 0 要写的数 从CGRAM或DDRAM读数 1 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:低电平时显示5*7的点阵字符,高电平时显示5*10的点阵字符。 指令7:字符发生器RAM地址设置。 指令8:DDRAM地址设置。 指令9:读信号和光标地址BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。 指令10:写数据。 指令11:读数据。 3. DM-162液晶显示模块可以和单片机AT89C52直接接口 液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的标志,为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,图2.9是DM-162的内部显示地址。 比如第二行第一个字符的地址是40H,那么是否直接写入40H就可以将光标定位在第二行第一个字符的位置呢?这样不行,因为写入显示地址时要求最高位D7恒定为高电平1,所以实际写入的数据应该是01000000B(40H)+10000000B(80H)=11000000B(C0H)。 图2.9 DM-16的内部显示地址 图2.10 接口电路 4. 基本操作时序如表2.5所示: 表2.5 基本操作时序表 输入 输出 读状态 RS=L,RW=H,E=H DB0-DB7=状态字 写指令 RS=L,RW=L,E=下降沿脉冲 DB0-DB7=指令码 读数据 RS=H,RW=H,E=H DB0-DB7=数据 写数据 RS=H,RW=L,E=下降沿脉冲 DB0-DB7=数据 读状态、输入:RS=L,RW=H,E=H输出:DB0~DB7=状态字; 写指令、输入:RS=L,RW=L,E=下降沿脉冲DB0~DB7=指令码; 读数据、输入:RS=H,RW=H,E=H输出:DB0~DB7=数据; 写数据、输入:RS=H,RW=L,E=下降沿脉冲 DB0~DB7=数据。 3硬件电路 3.1 单片机主控制模块的设计 AT89S52单片机为40引脚双列直插芯片,MCS-51单片机共有4个8位的I/O口(P0、P1、P2、P3),每一条I/O线都能独立地作输出或输入。 单片机的最小系统如图3.1所示,18引脚和19引脚接时钟电路,XTAL1接外部晶振和微调电容的一端,在片内它是振荡器倒相放大器的输入,XTAL2接外部晶振和微调电容的另一端,在片内它是振荡器倒相放大器的输出。第9引脚为复位输入端,接上电容,电阻及开关后够上电复位电路,20引脚为接地端,40引脚为电源端,如图3.1所示。 图3.1 单片机最小系统 3.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进行操作。如果在传送过程中RSTS置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电动行时,在Vcc大于等于2.5V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平,I/O为串行数据输入端(双向)。SCLK始终是输入端。 图3.2 时钟芯片与单片机的连接 3.3 温度采集模块设计 如图3.3所示,采用数字式温度传感器DS18B20,它是数字式温度传感器,具有测量精度高,电路连接简单特点,此类传感器仅需要一条数据线进行数据传输,使用P2.4与DS18B20的I/O口连接加一个上拉电阻,Vcc接电源,Vss接地。 图3.3 温度传感器与单片机的连接 3.4 功能按钮设计 当按钮被按下时,该按钮对应的I/O口被拉为低电平,松开时按钮对应的I/O口由内部的上拉电阻将该I/O拉为高电平,如图3.4所示: 图3.4 功能按键电路 3.5 16*2 LCD1602液晶显示电路设计 根据其读写的时序模拟总线的方式与单片机进行数据的通讯,首先将数据从I/O口读入或送出,再选择R/W和RS的电平进行不同的操作,在使能端E下降沿时触发数据的读入或送出。注意P0口要接上拉电阻,如图3.5所示: 图3.5 LCD液晶显示屏与单片机的连接 4系统软件设计 4.1 系统模块的功能分划分 万年历程序设计总体上分为四个大模块,分别是DS1302时钟程序模块、DS18B20测温模块、LCD显示模块、键盘功能模块。 1. DS1302时钟程序模块 包括设置DS1302初始时间、从DS1302读时间子程序、写1302一字节子程序、读1302一字节、关闭写保护、开启写保护、关闭时钟、延时子100MS程序。 2. DS18B20测温模块 包括DS18B20的初始化子程序、DS18B20数据处理子程序、读出温度值的子程序、DS18B20复位子程序、写DS18B20的1位字节子程序、读DS18B20的1个字节子程序。 3. LCD显示模块 包括LCD初始化子程序、写入控制命令的子程序、判断LCD显示器是否忙的子程序、向LCD中的DDRAM中写数据、查询LCD字符表、调整模式的显示子程序、正常模式LCD显示子程序。 4. 键盘功能模块 包括模式选择按键SET子程序、调整模式选择子程序、OUT键扫描子程序、UP按键扫描子程序、DOWN按键扫描子程序。 4.2 总体程序流程框图 本设计中,实现功能的总体程序流程框图如下图4.1所示: 图4.1 总体程序流程框图 4.3 时钟调整时间的流程图 时钟调整时间的流程图4.2所示: 图4.2 时钟调整时间的流程 4.4 温度转换流程图 单片机实现对温度传感器DS18B20的温度转换读取温度数值流程图如下图4.3所示。 图4.4 温度转换读取温度数值流程图 总结 本系统以AT89S52为核心部件,使用串行时钟芯片DS1302,实现时间和闹钟的功能设置。通过键盘和液晶显示屏可方便地校对时钟和设置闹钟时间,本系统基本完成了实用电子钟的功能,尽量做到了硬件电路简单稳定,减少电磁干扰和其他环境干扰。 在系统硬件设计之前,要结合当前系统的发展趋势和现状对系统功能进行定位,使系统在实际应用中具有竞争力。该系统最大的特点就是界面友好,走时准确,和现在使用LED显示数据的万年历相- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字 万年历 设计 实现 毕业论文
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【胜****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【胜****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【胜****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【胜****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文