基于51单片机的温湿度及万年历设计_第1页
基于51单片机的温湿度及万年历设计_第2页
基于51单片机的温湿度及万年历设计_第3页
基于51单片机的温湿度及万年历设计_第4页
基于51单片机的温湿度及万年历设计_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

1、基于51单片机的温湿度及万年历设计 课程设计 仪器设计实验课程设计名称: 基于51单片机的温湿度及万年历设计 专 业 班 级 : xxxxx 学 生 姓 名 : xxx 学 号 : xxxxxxxxx 组 员 :xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 指 导 教 师 : xxxxxxx 课程设计地点: xxxxxxxxx 课程设计时间: xxxxxxxxxxxxxxxxx 目录1 系统概述11.1 电子万年历发展背景11.2 电子万年历的特点11.3 电子万年历的发展现状12 方案论证22.1 单片机芯片的选择方案和论证22.2 显示模块的选择方案和论证22.3 时

2、钟芯片的选择方案和论证32.4 温湿度传感器的选择方案和论证43硬件设计53.1 系统功能模块划分53.2 各单元模块功能分析及模块电路设计63.2.1 时钟模块63.2.2 温湿度模块73.2.3 显示模块83.2.4 独立键盘模块144 软件设计144.1 万年历软件系统的流程图154.2 温湿度信息的采集164.3 时钟的读取174.3.1 DS1302控制字节的说明174.3.2 DS1302时间日期寄存器及相应位定义184.3.3 DS1302数据的输入和输出184.4 温度的显示控制195 系统调试201 系统概述1.1 电子万年历发展背景随着电子技术的发展,人类不断研究,不断创新

3、纪录。万年历目前已经不再局限于以书本形式出现。以电脑软件或者电子产品形式出现的万年历被称为电子万年历。与传统书本形式的万年历相比,电子万年历得到了越来越广泛的应用,采用电子时钟作为时间显示已经成为一种时尚。目前市场上各式各样的电子时钟数不胜数,但多数是只针对时间显示,功能单一不能满足人们日常生活需求。1.2 电子万年历的特点电子万年历显示功能,包括公历年、月、日,时间、温度、湿度、星期、农历等等;附带功能有:定时闹铃、以及按钮是否可以正常调动。本文提出了一种基于89c51单片机的万年历设计方案,采用12864液晶显示。本方案以89c51单片机作为主控核心,与时钟芯片DS1302、温湿度传感器芯

4、片DHT11、LCD12864显示等模块组成硬件系统。在硬件系统中设有3个独立按键和一个LCD显示器,能显示丰富的信息,根据使用者的需要可以随时对时间进行校准、时间、温湿度显示等,综上所述此万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。1.3 电子万年历的发展现状随着电子技术的迅速发展,特别是随大规模集成电路出现,给人类生活带来了根本性的改变。尤其是单片机技术的应用产品已经走进了千家万户。电子万年历的出现给人们的生活带来的诸多方便。市场上有许多电子万年历的专用芯片,如:LM8363、LM8365等,但它们0功能单一,电路连

5、接复杂,不便于调试制作。因此本系统采用了以89c51单片机技术为核心,配合DHT11温湿度测量模块,DS1302时钟模块,LCD显示模块,键盘模块使该设计具有现实功能齐全,人机交互,节能的特点。 随着单片机的发展,电子万年历呈现了微型化 ,功能丰富化的趋势,而且价格在不断下降,考虑到资源问题,现在的设计设计的万年历都采用了节能设计方案,万年历对人们的生活有着十分重要的作用,所以电子万年历还是有很大的发展前景的。2 方案论证2.1 单片机芯片的选择方案和论证采用89C52芯片作为硬件核心,89C52是一种带8K字节闪烁可编程可擦除只读存储器,采用Flash ROM,内部具有8KB ROM 存储空

6、间,3个16位定时器、5个中断源(两个中断优先级),能于3V的超低压工作,而且与MCS-51系列单片机完全兼容,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,89C52是一种高效微控制器,51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案,片上资源已经足够进行该方案的效设计,且该芯片简单易懂,与所学课程紧密联系,也可对所学知识进行简单的复习加深掌握,故选用该芯片进行系统方案的设计。2.2 显示模块的选择方案和论证方案一:中文字库的LCD12864是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字

7、库的点阵图形液晶显示模块;其显示分辨率为128×64, 内置8192个16*16点汉字,和128个16*8点ASCII字符集。利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示8×4行16×16点阵的汉字,也可完成图形显示,低电压2低功耗是其又一显著特点。由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。万年历要求显示年月日、时分秒、星期、和农历。LCD12864液晶可以完成设计的要求 。方案二:系统采用LED显示。LED应用可分为

8、两大类:一是LED单管应用,包括背光源LED,红外线LED等;另外就是LED显示屏,目前,中国在LED基础材料制造方面与国际还存在着一定的差距,但就LED显示屏而言,中国的设计和生产技术水平基本与国际同步。LED显示屏是由发光二极管排列组成的显示器件。它采用低电压扫描驱动,具有:耗电少、使用寿命长、成本低、亮度高、故障少、视角大、可视距离远等特点。采用LED数码管动态扫描.价格上比较经济实惠,但不能显示文字,性价比不是很高,操作起来比较液晶显示来说略显繁琐,所以也不用此种作为显示。经过综合比较最终选择方案一,即选择LCD12864液晶显示屏。2.3 时钟芯片的选择方案和论证方案一:采用单片机定

9、时。单片机集成度高、功能强、可靠性高、体积小、功耗低、使用方便、价格低廉等一系列优点,单片机的应用领域已从面向工业控制、通讯、交通、智能仪表等迅速发展到家用消费产品、办公自动化、汽车电子、PC机外围以及网络通讯等广大领域。直接采用单片机定时计数器提供秒信号,计数的脉冲由外部提供,定时的脉冲由外部晶振提供,定时加1的周期为一个机器周期;定时时间与初值和晶振频率有关。使用程序实现年、月、日、星期、时、分、秒计数。采用此种方案减少芯片的使用,节约成本,但程序复杂度较高。方案二:采用DS1302时钟芯片。DS1302 是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、

10、月、日、星期、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V5.5V。采用双电源供电(主电源和备用电源),可设置备用电源充电方式,提供了对后背电源进行涓细电流充电的能力。DS1302用于数据记录,特别是对某些具有特殊意义的数据点的记录上,能实现数据与出现该数据的时间同时记录,因此广泛应用于测量系统中。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。采用DS1302只需要写出驱动程序,调用程序读出寄存器内数据经过简单的变换就可以输出万年历的数据。经过综合比较最终选择方案

11、二,即采用DS1302时钟芯片。2.4 温湿度传感器的选择方案和论证方案一:采用热敏电阻作为温度传感器。热敏电阻是开发早、种类多、发展较成熟的敏感元器件。热敏电阻由半导体陶瓷材料组成,利用的原理是温度引起电阻变化。使用热敏电阻作为传感器,用热敏电阻与一个相应阻值电阻相串联分压,利用热敏电阻阻值随温度变化而变化的特性,采集这两个电阻变化的分压值,并进行A/D转换。此设计方案需用A/D转换电路,增加硬件成本而且热敏电阻的感温特性曲线并不是严格线性的,会产生较大的测量误差。方案二:采用DS18B20温度传感器。在应用与高精度、高可靠性的场合时DALLAS(达拉斯)公司生产的DS18B20温度传感器当

12、仁不让。超小的体积,超低的硬件开消,抗干扰能力强,精度高,附加功能强,使得DS18B20更受欢迎。示信息经过单线接口送入DS18B20或从DS18B20送出,因此从单片机到DS18B20仅需一条线连接即可。它可在1秒钟(典型值)内把温度变换成数字方案三:采用DHT11数字温湿度传感器。产品概述DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。每个DHT11传感器都在极为精确的湿度校验室中进行校准。校准系

13、数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选择。经过综合比较最终选择方案三,即采用DHT11温湿度传感器。3硬件设计3.1 系统功能模块划分根据系统功能要求,可大致画出系统所需硬件结构框图如图3-1所示: LCD12964液晶显示按键时间调整模块 STC89C52RCDHT11温湿度采集模块DS1302时钟模块 图 3.1 系统原理方框图主控模块采用性价比较高的STC189c52单片机芯片,可通过程序的运行控制温湿度

14、测量模块DHT11进行温湿的数据采集,而所测得的温湿度和时钟芯片测得的实时日历将通过显示模块的液晶显示器以数字形式显示;单片机调用程序,读取DS1302内寄存器,可以得到万年历的时间数据,经过程序处理就可以输出在LCD上;键盘电路可对实时日历进行调整。3.2 各单元模块功能分析及模块电路设计3.2.1 时钟模块 DS1302的工作原理和单片机的接口:DS1302为美国DALLAS公司的一种实时时钟芯片,主要特点是采用串行数据传输,可为掉电保护电源提供可编程的充电功能,并且可以关闭充电功能。采用32.768Hz晶振。它可以对年、月、日、星期、时、分、秒进行计时,且具有闰年补偿等多种功能。DS13

15、02 用于数据记录,特别是对某些具有特殊意义的数据点的记录上,能实现数据与出现该数据的时间同时记录。这种记录对长时间的连续测控系统结果的分析以及对异常数据出现的原因的查找有重要意义。在本设计中,它的实际电路图如图3-2所示:图3-2 DS1302与单片机的连接DS1302需要外接32.768K的晶振,1号引脚接主电源VCC(5V)电源,8号引脚接备用电池(3V),当主电源掉电后,备用电源为DS1302提供电源,维持DS1302内数据不丢失,这正是时钟芯片所必须的特性。3.2.2 温湿度模块传统的温度传感器系统大都采用放大、调理、A/D转换,转换后的数字信号送入计算机处理,处理电路复杂、可靠性相

16、对较差,占用计算机的资源比较多,本设计测温模块采用数字温湿度传感器DHT11,可将温湿度信号直接转换成数字信号送给微处理器,电路简单,成本低,其电路原理图如图3-3所示:图3-3 DHT11温湿度模块DHT11的供电电压为35.5V。传感器上电后,要等待 1s 以越过不稳定状态在此期间无需发送任何指令。电源引脚(VDD,GND)之间可增加一个100nF 的电容,用以去耦滤波。DATA 用于微处理器与 DHT11之间的通讯和同步,采用单总线数据格式,一次通讯时间4ms左右,数据分小数部分和整数部分,具体格式在下面说明,当前小数部分用于以后扩展,现读出为零.操作流程如下:一次完整的数据传输为40b

17、it,高位先出。数据格式:8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据 +8bit校验和数据传送正确时校验和数据等于“8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据”所得结果的末8位。用户MCU发送一次开始信号后,DHT11从低功耗模式转换到高速模式,等待主机开始信号结束后,DHT11发送响应信号,送出40bit的数据,并触发一次信号采集,用户可选择读取部分数据.从模式下,DHT11接收到开始信号触发一次温湿度采集,如果没有接收到主机发送开始信号,DHT11不会主动进行温湿度采集.采集数据后转换到低速模式。3.2.3

18、 显示模块本设计显示模块主要采用LCD12864液晶显示器,其电路原理图如下:图3-5 LCD12864模块LCD12864液晶显示器通过数据端口也即端口714与主控芯片STC12C5A60S2的I/O端口P2相连接实现数据与指令的传输,再通过控制端口RS、RW、EN也即端口46与主控芯片P3.6,P3.7,P4.0端口相接实现对数据和指令传输的控制 。显示模块采用12864液晶显示器可实现对温度和时间的直接显示,清晰明了。带中文字库的LCD12864是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块其显示分辨率为128×6

19、4, 内置8192个16*16点汉字和128个16*8 点ASCII字符集。利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示8×4行16×16点阵的汉字,也可完成图形显示。低电压低功耗是其又一显著特点。由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简得多,且该模块的价格也略低于相同点阵的图形液晶模块。1模块管脚是连接外部电路的纽带 ,在此模块中管脚主要由控制管脚和数据管脚等构成,现将其组成情况及相关功能介绍如下:表3-1 12864液晶模块接口说明管脚号管脚名称电平管脚功能描述1VSS0V电

20、源地2VCC3.0V/5V电源正3V0 -对比度(亮度)调整4RS(CS)H/LRS=“H”,表示DB7DB0为显示数据 RS=“L”,表示DB7DB0为显示指令数据5R/WH/LR/W=“H”,E=“H”,数据被读到DB7DB0 R/W=“L”,E=“HL”, DB7DB0的数据被写到IR或DR6E(SCLK)H/L使能信号714DB0DB7H/L 三态数据线15PSBH/LH:8位或4位并口方式,L:串口方式16NC - 空脚17RESETH/L复位端,低电平有效18VOUT - LCD驱动电压输出端19AVDD背光源正端20KVSS背光源负端2控制器控制着模块内部指令的发出与否,存储器则

21、对指令和数据进行存储与更换,现将分别介绍控制器各接口及各存储器的功能。1) RS,R/W的配合选择决定控制界面的4种模式表3-2 RS,R/W配合功能说明RSR/W功能说明LLMPU写指令到指令暂存器(IR)LH读出忙标志(BF)及地址记数器(AC)的状态HLMPU写入数据到数据暂存器(DR)HHMPU从数据暂存器(DR)中读出数据2) E信号表3-3 E信号功能说明E状态执行动作结果高>低I/O缓冲>DR配合/W进行写数据或指令高DR>I/O缓冲配合R进行读数据或指令低/低>高无动作显示数据RAM(DDRAM ):模块内部显示数据RAM提供64×2个位元组的

22、空间,最多可控制4行各16字的中文字型显示,当写入显示数据RAM时,可分别显示CGROM与CGRAM 的字型;此模块可显示三种字型,分别是半角英数字型(16*8)、CGRAM 字型及CGROM的中文字型。三种字型的选择,由在DDRAM中写入的编码选择,在0000H0006H的编码中将选择CGRAM的自定义字型,02H7FH的编码中将选择半角英数字的字型,至于A1以上的编码将自动的结合下一个位元组,组成两个位元组编码形成中文字型的编码。字型产生 RAM(CGRAM):字型产生RAM提供图象定义(造字)功能,可以提供四组 16×16点的自定义图象空间,使用者可以将内部字型没有提供的图象字

23、型自行定义到CGRAM中,便可和CGROM中的定义一样地通过DDRAM显示在屏幕中。地址计数器AC: 地址计数器是用来贮存DDRAM/CGRAM 之一的地址,可由设定指令暂存器来改变,之后只要读取或写入DDRAM/CGRAM的值时,地址计数器的值就会自动加一。当RS =0且R/W=1时,地址计数器的值会被读取到DB6DB0中。光标/闪烁控制电路:此模块提供硬体光标及闪烁控制电路,由地址计数器的值来指定DDRAM中的光标或闪烁位置。3模块控制芯片提供两套控制指令:基本指令和扩充指令,这些由各控制端口和寄存器组合而成的指令可对液晶显示器自身模式、状态、功能等进行设置,也可控制与其他芯片进行数据和指

24、令的通信。其指令分别如下:表3-4 基本指令集(RE=0)指令指 令 码功 能RSR/WD7D6D5D4D3D2D1D0清除显示0000000001将DDRAM填满"20H",并且设定DDRAM的地址计数器(AC)到"00H"地址归位000000001X设定DDRAM的地址计数器(AC)到"00H",并且将游标移到开头原点位置;这个指令不改变DDRAM 的内容显示状态开/关0000001DCBD=1: 整体显示 ONC=1: 游标ONB=1:游标位置反白允许进入点设定00000001I/DS指定在数据的读取与写入时,设定游标的移动方向

25、及指定显示的移位游标或显示移位控制000001S/CR/LXX设定游标的移动与显示的移位控制位;这个指令不改变DDRAM 的内容功能设定00001DLXREXXDL=0/1:4/8位数据RE=1: 扩充指令操作RE=0: 基本指令操作设定CGRAM地址0001AC5AC4AC3AC2AC1AC0设定CGRAM 地址设定DDRAM地址0010AC5AC4AC3AC2AC1AC0设定DDRAM 地址(显示位址)第一行:80H87H第二行:90H97H读取忙标志和地址01BFAC6AC5AC4AC3AC2AC1AC0读取忙标志(BF)可以确认内部动作是否完成,同时可以读出地址计数器(AC)的值写数据

26、到RAM10数据将数据D7D0写入到内部的RAM (DDRAM/CGRAM/IRAM/GRAM)读出RAM的值11数据从内部RAM读取数据D7D0(DDRAM/CGRAM/IRAM/GRAM表3-5 扩展指令集(RE=1)指令指 令 码功 能RSR/WD7D6D5D4D3D2D1D0待命模式0000000001进入待命模式,执行其他指令都棵终止待命模式卷动地址开关开启000000001SRSR=1:允许输入垂直卷动地址SR=0:允许输入IRAM和CGRAM地址反白选择00000001R1R0选择2行中的任一行作反白显示,并可决定反白与否。初始值R1R000,第一次设定为反白显示,再次设定变回正

27、常睡眠模式0000001SLXXSL=0:进入睡眠模式SL=1:脱离睡眠模式扩充功能设定00001CLXREG0CL=0/1:4/8位数据RE=1: 扩充指令操作RE=0: 基本指令操作G=1/0:绘图开关设定绘图RAM地址0010AC60AC50AC4AC3AC3AC2AC2AC1AC1AC0AC0设定绘图RAM先设定垂直(列)地址AC6AC5AC0再设定水平(行)地址AC3AC2AC1AC0将以上16位地址连续写入即可当IC1在接受指令前,微处理器先确认其内部处于非忙碌状态,即读取BF标志时,BF需为零方可接受新的指令;如果在送出一个指令前不检查BF标志,那么在前一个指令和这个指令中间必须

28、延长一段较长的时间,即等待前一个指令确实执行完成。412864液晶显示器不仅可以显示字符同时也可以图形,因此可以满足不同使用者更多的要求,如显示一幅图画或者一个曲线图等。使用者在使用时便可根据自身需求进行不同的显示。1)字符显示:带中文字库的128X64-0402B每屏可显示4行8列共32个16×16点阵的汉字,每个显示RAM可显示1个中文字符或2个16×8点阵全高ASCII码字符,即每屏最多可实现32个中文字符或64个ASCII码字符的显示。带中文字库的128X64-0402B内部提供128×2字节的字符显示RAM缓冲区(DDRAM)。字符显示是通过将字符显示编

29、码写入该字符显示RAM实现的。根据写入内容的不同,可分别在液晶屏上显示CGROM(中文字库)、HCGROM(ASCII码字库)及 CGRAM(自定义字形)的内容。三种不同字符/字型的选择编码范围为:00000006H (其代码分别是0000、0002、0004、0006 共4 个)显示自定义字型,02H7FH 显示半宽ASCII 码字符,A1A0HF7FFH 显示8192 种GB2312中文字库字形。字符显示RAM 在液晶模块中的地址80H9FH。字符显示的RAM的地址与32个字符显示区域有着一一对应的关系,其对应关系如下表所示:表3-6 字符RAM与显示区域对应关系80H81H82H83H8

30、4H85H86H87H90H91H92H93H94H95H96H97H88H89H8AH8BH8CH8DH8EH8FH98H99H9AH9BH9CH9DH9EH9FH2)图形显示:先设垂直地址再设水平地址(连续写入两个字节的资料来完成垂直与水平的坐标地址)。垂直地址范围AC5.AC0,水平地址范围AC3.AC0。绘图RAM的地址计数器(AC)只会对水平地址(X轴) 自动加一,当水平地址=0FH时会重新设为00H但并不会对垂直地址做进位自动加一,故当连续写入多笔资料时,程序需自行判断垂直地址是否需要重新设定。GDRAM的坐标地址与资料排列顺序如下图: 图3-6 GDRAM的坐标地址与资料排列顺序

31、3.2.4 独立键盘模块键盘是人与万年历实现信息交互的接口,本设计中,我们采用3个独立键盘,电路原理如下图3-7:图3.8 按键模块考虑到系统的简洁性,所以采用最少的按键来实现时间的全部调整功能,如上图所示按键key1来实现功能选择,根据按下的次数不同来分别实现年、月、日、周、时、分、秒、星期的选择和暂停,开始。key2根据选择来进行该位上的加1功能,同理key3来实现减1功能。按键的引入使万年历显得更加人性化,智能化。4 软件设计在系统软件设计中,我们使用了Keil Vision3,它是2006年1月30日ARM推出全新的针对各种嵌入式处理器的软件开发工具,集成Keil Vision3的Re

32、alView MDK开发环境。 RealView MDK开发工具KeilVision3源自Keil公司。 RealView MDK集成了业内领先的技术,包括Keil Vision3集成开发环境与RealView编译器。Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势,所以我们选择该软件来开发我们的万年历程序。4.1 万年历软件系统的流程图等待进行下一组数据液晶LCD12864初始化显示一张图片开始温湿度传感器DHT11初始化时钟芯片DS1302初始化是否与单片机取得通信等待与单片机进行通信对12864写指令,写数据 否向

33、芯片写入时间 进行温湿度数据的转换进行数据校验依次接收温湿度数据 对时是12864进行显示(显示温湿度及当前的日期与时间)进行延时大约5s是时间处理显示扫描按键等待按键按下继续扫描按键等待按键按下 否重新对时并显示通过上下键进行日期调整时钟时间停止并判断当前需要调整的时间位置是当接通电源开始工作后,单片机中的程序开始运行,将对DHT11进行初始化,以便和单片机芯片达成通信协议。完成初始化后,启动温湿度测量程序,测量过程完成后,发出温湿度度转换指令,从而便可将温湿度转化成数字模式进行显示读取;同时DS1302将读取时分秒星期以及年月日寄存器然后通过液晶显示实时时间、星期及日期;键盘电路中按键可对

34、实时日历时钟进行调整。4.2 温湿度信息的采集1.通讯过程如图1所示图1总线空闲状态为高电平,主机把总线拉低等待DHT11响应,主机把总线拉低必须大于18毫秒,保证DHT11能检测到起始信号。DHT11接收到主机的开始信号后,等待主机开始信号结束,然后发送80us低电平响应信号.主机发送开始信号结束后,延时等待20-40us后, 读取DHT11的响应信号,主机发送开始信号后,可以切换到输入模式,或者输出高电平均可, 总线由上拉电阻拉高。总线为低电平,说明DHT11发送响应信号,DHT11发送响应信号后,再把总线拉高80us,准备发送数据,每一bit数据都以50us低电平时隙开始,高电平的长短定

35、了数据位是0还是1.格式见下面图示.如果读取响应信号为高电平,则DHT11没有响应,请检查线路是否连接正常.当最后一bit数据传送完毕后,DHT11拉低总线50us,随后总线由上拉电阻拉高进入空闲状态。数字0信号表示方法如图3所示 图3数字1信号表示方法.如图4所示 图44.3 时钟的读取4.3.1 DS1302控制字节的说明 控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入到DS1302 中位6 如果为0,则表示存取日历时钟数据,为1 表示存取RAM数据;位至位1 指示操作单元的地址;最低有效位(位0)如为0 表示要进行写操作,为1 表示进行读操作,控制字节总是从最低位

36、开始输出。 图4-5 DS1302控制字节4.3.2 DS1302时间日期寄存器及相应位定义表4-1为DS1302时间寄存器信息:表4-1 DS1302时间日期寄存器 4.3.3 DS1302数据的输入和输出在控制指令字输入后的下一个SCLK 时钟的上升沿时数据被写入DS1302,数据输入从低位即位0 开始。同样,在紧跟8 位的控制指令字后的下一个SCLK 脉冲的下降沿读出DS1302 的数据,读出数据时从低位0 位至高位7。图4-6 DS1302的时序4.4 温度的显示控制当所测的温湿度输送到单片机上之后,下一步就是要将其在液晶显示器上显示出来。首先对液晶进行初始化,液晶显示器12864的初

37、始化过程如下:先将复位引脚置高位即RST=1、数据传输方式设为并口方式即PSB=1(在设计中,我们将LCD的该引脚接VCC),然后将指令集调到基本指令集上来即写指令30H,再将显示打开、关光标、清除液晶里先前的显示内容即分别写指令0CH、01H,写指令时需分别延时5ms。然后就是数据的传送过程,要使数据在液晶显示器上显示必须要按照其读写操作时序来进行,其读、写操作时序图为:写操作时序: 图4-8 12864 液晶显示器写时序图读操作时序: 图4-9 12864液晶显示器读时序图5 系统调试在硬件电路焊接和软件程序设计分别完成的基础之上,进行软硬件的结合与调试。通过下载将在电脑上已完成的程序下载

38、到单片机芯片中。在调试中发现软件中存在的问题,及时解决问题,确保系统能正常工作并达到设计要求。通过反复的调试与实验,可以证明该系统能够较好地完成设计所需的基本要求。即能够正确的显示万年历。在设计中,因为考虑到闹钟定时功能,我们希望我们设置的闹钟时刻不会因为系统的掉电而丢失,考虑到DS1302是有锂电池作为电源的,不会因为主系统掉电丢失内部数据,所以我们将闹钟的定时时刻放到了DS1302内的空余寄存器里面,像这些灵活的技巧就需要我们认真的阅读元件的数据手册,从中索取对自己有用的信息。经过万年历的设计,让我学到了很多,让我认识到了学习基础知识的重要性,当设计完整的系统时,要考虑到硬件和软件两者的结

39、合,有时硬件的不足,我们可以用软件程序来弥补,从而节约硬件成本,在设计软件程序时要模块化,可以提高程序的可读性。能会发生因为意见不同而又争执的情况,但是我们都是为了把本次设计做好,所以最后都能很好的解决这些问题。参考文献1 江志红.51单片机技术与应用系统开发案例精选.北京:清华大学出版社,20092 谭浩强.C语言程序设计.北京:清华大学出版社,20063 白延敏.51单片机典型系统开发实例精讲.北京:电子工业出版社,20094 王为青,程国钢.单片机Keil C×51应用开发技术.北京:人民邮电出版社,20075 周丽娜.Protel99SE电路设计技术.北京:中国铁道出版社,2

40、0096 刘坤,宋戈,赵红波等.51单片机C语言应用技术开发技术大全.北京:人民邮电出版社,2008 附录: 正常显示是采集温湿度显示及万年历显示(第一行可显示任意汉字)设计程序如下:#include<reg52.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned int uchar x,y; /清屏时定义的起始地址 uchar flag,flag1,flag2; /标志位 温湿度传感器时使用 uchar wei; /位定义 uchar zijie; / 字节定义uchar wdzs

41、,wdxs,sdzs,sdxs,jiaoyan; uchar WZ,WX,SZ,SX,JY;sbit rs=P00; /液晶3个端口的定义 sbit rw=P01;sbit e =P02;sbit SJ= P03; /温湿度传感器接口 sbit sck=P04;sbit io=P05;sbit rst=P06;sbit key1=P22;sbit key2=P21;sbit key3=P20;uchar time_data7=13,1,11,11,00,00,00;/年,周,月,日,时,分,秒 uchar write_add7=0x8c,0x8a,0x88,0x86,0x84,0x82,0x8

42、0;uchar read_add7=0x8d,0x8b,0x89,0x87,0x85,0x83,0x81;uchar disp13=""uchar time_data17="" /用来存放从1302中读出的时间 uchar time_data27=""uchar table1="温度"uchar table2="湿度"uchar table34=""uchar table44=""uchar table5="可显示五字!" /可显示任意

43、汉字数字及字符 uchar code image=0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

44、0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

45、0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,

46、0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x01,0x80,0x00,0x00,0x60,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0xC0,0x01,0xE0,0x00,0x01,0x80,0x00,0x00,0x63,0xE0,0x18,0x00,0x0E,0x01,0xB0,0x00,0xC0,0x07,

47、0xE0,0x00,0x03,0x40,0x00,0x00,0x3F,0x80,0x7C,0x01,0xF8,0x00,0xF0,0x00,0xC0,0x00,0xF8,0x00,0x02,0x40,0x00,0x00,0xC7,0x80,0x33,0x80,0x30,0x00,0xF0,0x01,0x98,0x1F,0x98,0x00,0x02,0x40,0x00,0x00,0x3F,0x80,0xFF,0x80,0x30,0x06,0xFC,0x0F,0xF0,0x1F,0xC0,0x00,0x02,0x40,0x00,0x00,0x1F,0x81,0xF9,0x80,0x30,0x03,

48、0xF8,0x01,0x80,0x01,0x80,0x00,0x06,0x20,0x00,0x00,0x6D,0x81,0xF9,0x80,0x30,0x03,0xF0,0x01,0xC0,0x01,0xF8,0x00,0x38,0x1C,0x00,0x00,0xC1,0x81,0xBF,0x80,0x30,0x00,0xF0,0x01,0xE0,0x1F,0x80,0x01,0xE0,0x03,0x80,0x00,0xC1,0x81,0xF9,0x83,0xFF,0x80,0xFF,0x03,0x30,0x01,0x80,0x00,0xC0,0x03,0x00,0x00,0x03,0x81,

49、0xB7,0x80,0x00,0x07,0xE0,0x06,0x38,0x01,0x80,0x00,0x38,0x3E,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x0C,0x03,0x80,0x00,0x04,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x40,

50、0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

51、0x00,0x00,0x01,0x80,0x00,0x00,0x00,0xE0,0xC6,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x00,0x00,0xFE,0xC0,0xC6,0x01,0x81,0x83,0xC1,0x80,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x1F,0xC0,0xC3,0xC3,0x83,0x86,0xC3,0x80,0x00,0x00,0x00,0xE0,0x0F,0x80,0x00,0x01,0xBF,0xC0,0xFF,0x87,0x87,0x86,

52、0x67,0x80,0x00,0x00,0x01,0x98,0x18,0x80,0x00,0x00,0xFF,0xC0,0xFF,0x01,0x81,0x8E,0x61,0x80,0x00,0x00,0x02,0x04,0x20,0x60,0x00,0x00,0xFF,0xC0,0xF9,0x81,0x81,0x8C,0x61,0x80,0x00,0x00,0x04,0x04,0x20,0x20,0x00,0x00,0xFE,0xC1,0xF3,0x01,0x81,0x8E,0x61,0x80,0x00,0x00,0x04,0x02,0xE0,0x20,0x00,0x01,0x9C,0xC3,

53、0xDE,0x01,0x81,0x86,0x61,0x80,0x00,0x00,0x04,0x01,0x80,0x20,0x00,0x00,0x36,0xC0,0xCC,0x01,0x81,0x86,0xC1,0x80,0x00,0x00,0x08,0x01,0x80,0x30,0x00,0x00,0x00,0xC1,0xFF,0xC1,0x81,0x83,0x81,0x80,0x00,0x00,0x08,0x19,0xE0,0x10,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x2E,0x90,0x10,

54、0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x43,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x43,0x08,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x43,0x08,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x

温馨提示

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

评论

0/150

提交评论