自动浇花系统设计_第1页
自动浇花系统设计_第2页
自动浇花系统设计_第3页
自动浇花系统设计_第4页
自动浇花系统设计_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

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

文档简介

成都工业学院毕业设计(论文) 页目录摘要 IIAbstract III目录 IV第1章 绪论 61.1选题的目的和意义 61.2自动浇花器的诞生背景及国内外发展现状 61.3毕业设计所采用的研究方法和手段 7第2章 第基于单片机控制的家庭自动浇花机设计 92.1 定时浇花方案的设计 92.2 智能浇花 102.3 本设计的硬件总体设计 11第3章 硬件电路的设计 133.1 AT89C51单片机 133.1.1 单片机的基本组成 153.1.2 管脚说明 163.1.3 振荡电路和时钟 183.1.4 AT89C51的中断系统 183.1.5 定时器/计数器 213.2 温湿度传感器 223.2.1 数字温湿度传感器SHT-11 223.2.2 湿度值输出 233.2.3 温度值输出 243.2.4 SHT-11的特性 243.2.5 SHT-11的详细规格 253.2.6 SHT-11的引脚 253.2.7 7SHT-11的的内部命令与接口时序 263.2.8 电路连接 293.3 时钟芯片 293.3.1 DS1302时钟芯片的简介 293.3.2 引脚 303.3.3 命令字节 303.4 液晶显示器LCD 343.4.1 液晶显示器的分类 353.4.2 AMPIRE128×64 353.4.3 LCD128×64引脚功能 363.4.4 KS0108控制器指令功能 373.4.5 应用说明 393.4.6 电路连接 393.5 键盘 403.6 继电器 413.7 电路连接 423.8 总电路连接图 42第4章 软件系统设计 434.1 系统控制流程图 434.2 系统主控制程序如下: 434.3 子程序的流程框图 48第5章 总结 52致谢 54参考文献 55绪论1.1选题的目的和意义随着社会生活的进步,人们的生活质量越来越高。在家里养盆花可以陶冶情操、丰富生活。同时,盆花通过光合作用可吸收二氧化碳,净化室内空气,在有花木的地方空气中阴离子聚积较多,所以空气也特别清新,而且有许多花木还可吸收空气中的有害气体,因此,养盆花如今被许多的人所喜爱。盆花浇水量是否能做到适时适量,是养花成败的关键。但是,在生活中人们总是会有无暇顾及的时候,比如工作太忙或者出差、旅游等。花草生长问题80%以上是由花儿浇灌问题引起;好不容易种植几个月的花草,因为浇水不及时,长势不好,用来美化家园的花草几乎成了“鸡肋”;不种植了吧,家中没有绿色衬托感觉没有生机;保留吧,花草长得不够旺盛,还影响家庭装饰效果。虽然目前市面上有卖盆花自动浇水器的,但价格十分的昂贵,并且大多只能设定一个定时浇水的时间,很难做到给盆花适时适量浇水。也有较经济的盆花缺水报警器,可以提醒人们及时的给盆花浇水。可是这种报警器只能报警,浇水还是需要人们亲自动手。当家里无人时,即使报警也无人浇水,就起不到应有的作用了。因此,我想通过设计一种集盆花土壤湿度检测,自动浇水以及蓄水箱自动供水于一体的盆花自动浇水系统。让盆花在人们无暇照顾时也能得到及时的浇灌。1.2自动浇花器的诞生背景及国内外发展现状微喷系统是近几年利用国内外先进技术组装的新型灌溉设施,主要是利用水流通过低压管道系统以一定速度从特制的喷头喷出,在空气中分散成细小的水滴,着落在花草植物、作物及周围的地面上,从而达到及时补充水分的目的。该系统具有用水量少、冲击力小的灌溉特性,适用于栽培密度大、植株柔软细嫩的植物。自动浇花器的诞生是随着人们生活水平的提高和生活节奏的加快而诞生的一种懒人园艺用品。它把微喷的概念应用于家庭盆花浇灌中,通过相应的改进,达到合理给盆花自动浇水的目的。早在很多年前,国外就已经开始普及,国内使用的电子类自动浇花器多数从国外进口的,价格昂贵,但质量比较可靠。不过这并不太适用于国内,目前国内外比较流行的是玻璃制作的自动浇花器。这种类型的浇花器多数在我国山西和浙江一带加工生产的,价格比较低廉,实用性没有电子类自动浇花器好。随着国内居民消费水平和生活质量的提高,居家园艺市场异常火爆,但是由于生活节奏加快,种花容易养花难的问题暴露出来,而养花最重要的问题就是浇水问题,研究表明花草80%以上的死亡由于浇水不及时引起,因此国内商家已经看到了这种需求潜力。目前这类小居家用品的厂家主要集中在广东,上海,浙江一带。现在市面上所出售的自动浇花器主要有以下几类:⑴电子类自动浇花器电子类自动浇花器又叫时控喷淋装置,系统构成为:主机(或者控制器)、主管(可以是花园管也可以是4/7mm的微喷淋管)、分水接头(3通、4通、5通、6通、分水器)、副管(3/5mm)喷淋管(雾化喷头、旋转喷头、折射雾化喷头等)。电子类自动浇花器根据电源的不同分为交流电自动浇花器和电池自动浇花器两种。控制器的一般性能有:电磁阀控制;智能时控电路•微电脑芯片控制;适用电源为AC220V/50HZ;最适宜水压0.3-0.6Mpa;待机功率(4VA,浇水时<12VA);可控制连续作业时间是1分钟至168个小时;可每天自动完成十次以上浇水作业,可每天、隔天、隔多天自动循环进行浇水,手动自动两用;每天计时误差小于正负3秒;电器适应环境温度为-10~50℃;相对湿度<90%RH。⑵玻璃、陶瓷类自动浇花器玻璃、陶瓷类自动浇花器又叫自动渗水装置,它由本身材质的物理结构构成,根据器具的物理渗水原理完成自动浇灌,当自动浇水器内部存水,自身形成一定的压力,当遇到干燥的土壤,水就会自上而下的流出,当土壤湿润以后,会形成一个堵塞压力,从而导致水流速度变慢或者停止。器具工艺不同,效果也不一样,当然也因土壤的疏松情况决定器具内水流的速度。当前传感器技术与单片机技术发展迅速,其应用逐步由工业、军事等领域向其他领域渗透,已经和我们的日常生活息息相关。而且智能家居概念也越来越受人们的推崇,因此,微电脑控制的电子类自动浇花系统有很好的发展前景。1.3毕业设计所采用的研究方法和手段本次毕业设计是设计一种单片机控制的自动浇水系统,实现自动浇水的自动化系统。该系统可对土壤的温湿度进行监控,并对作物进行适时、适量的浇水。其核心是单片机和温湿度传感器以及浇水驱动电路构成的检测控制部分。主要研究土壤湿度与浇水量之间的关系、浇灌控制技术及设备系统的硬件、软件编程各个部分。检测部分,单片机选用AT89C51单片机,温湿度传感器选用SHT-11温湿度传感器。SHT-11采用COMsens专利传感器技术将温度湿度传感器、A/D转换器、数字接口、校准数据存储器、标准I2C总线等电路全部集成在一个芯片内。。土壤温湿度传感器可将检测到的土壤温湿度模拟量放大转换成数字量通过单片机内程序控制精确的将温度与湿度分别显示在LCD显示屏上,同时通过单片机内的中断服务程序判断是否要给花浇水,若需浇水则单片机系统发出浇水信号并经放大驱动设备开启电磁阀进行浇水若不需浇水则进行下一次循环检测。第基于单片机控制的家庭自动浇花机设计定时浇花方案的设计定时定量浇花是每天规定的时间开始浇花,设置浇花时长,比如1分钟,1分钟后停止浇花。具体硬件:安装了2个三位共阳数码管和1个两位共阳数码管,用以显示时间和浇花时间的长短。按键控制时间调整和时间设置调整,并有一个按钮根据不同花卉所需水量的不同,设置浇花时间长短,在数码管上显示出来,1302芯片实现时间保持,断电时不影响时间。这里可假设每天早上7点20分自动给花卉浇水,浇花时间为1分钟,到了早上的7点20分,单片机控制智能浇花器开始浇花,单片机p2.0引脚接继电器,继电器接电磁阀,电磁阀控制水流,到了7点20分,给单片机一个指令,setb02.0,三级管导通,这样继电器线圈有电流经过,对应的常开触点闭合,使得电磁阀线圈得电,此时电磁阀门由闭合变成断开,水流经过,给花卉浇水,1分钟时间到,给单片机一个指令clrp2.0,这样单片机p2.0引脚输出低电平,三极管截止,继电器线圈没有电流经过,常开触点恢复为断开,电磁阀线圈失电,此时电磁阀门闭合,水流停止。这里的时间是显示在数码管上,通过按键控制,时间可调整,同时浇花的时间也可以通过按键设置,另外浇花时间的长短也可以通过按键调整。同时加入1302芯片,为了断电时不影响时间正常,防止每次断电后都要重新调整是时间。图3为定时定量浇花结构图。图1智能浇花先通过按键设定湿度,这里选用的是温湿度传感器是SHT-11湿度传感器,SHT-11是一款专门为用户设计自身产品而提供的数字化温湿度探头,其湿度测量量程为1%~99%RH,分辨率为0.5%RH,测量精度为±3.0%RH(典型值);温度测量范围为-25~+60℃,分辨率为0.0625℃,测量精度为±0.5℃;响应时间典型值为5s;工作电压范围为4.5~5.5V。LTM8901将测量结果直接输出为数字信号,通过“一线式总线”串行传送给单片机,不需要进行模数转换,减少了元件,简单方便。利用SHT-11温湿度传感器检测到温湿度,传送到单片机进行处理,温湿度显示在LCD上,当湿度低于设定值时,给单片机一个指令,sethp2.0,继电器线圈有电流经过,对应的常开触点闭合,使电磁阀线圈得电,此时电磁阀门由闭合变成断开,进行浇花,当等于或高于设定值时,clrp2.0,继电器线圈失电,对应常开触点断开,电磁阀线圈失电,阀门闭合,水无法流过,停止浇花。湿度控制浇花结构如图4所示。图2温湿度控制浇花结构图智能浇花的外部结构图如图3所示图32.3本设计采用的方案和优势由于我们的设计要求是通过测量土壤的温湿度来判断是否给花浇水,所以我们采用智能浇水这种方式。我采用的是温湿度传感器SHT-11来测土壤的温湿度,用DS1302芯片进行对时间的设置,用LCD对温湿度值和时间进行显示,也加了一个蜂鸣器,SHT-11的两个探针直接插入到土壤中,然后SHT-11把测到的温湿度值直接传给单片机AT89C51,我事先用键盘设定了最适合植物生长的温湿度值,这时单片机就会把真实值和设定值进行比较,如果设定的值高于真实值,那么蜂鸣器就会先报警,然后单片机就会输出一个信号,p2.0就置高电平,这时就会有电流通过,而电磁阀就会打开而驱动水龙头打开从而进行给花浇水,而这种设计的优势就在于能够完全实现自动化,不需要人去管理,还有一个好处就是能够给花浇最适量的水,给好最合适的生成环境。本设计的硬件总体设计图4驱动硬件设计框图图5控制器电路图硬件电路的设计AT89C51单片机51系列单片机最早有Intel公司推出,主要有8031系列,8051系列。后来Atmel公司以8051的内核为基础推出了AT89系列单片机。其中AT89C51、AT89C52、AT89S51、AT89S52等单片机完全兼容8051系列单片机,所有的指令功能也是一样的。就是功能做了一系列的扩展,比如说AT89S系列都支持ISP功能,AT89S52、AT89S8252增加了内部WDT功能,增加了一个定时器等功能。为了学习简单Atmel也推出了8051指令完全一样的AT89C2051、AT89C4051等单片机,这些单片机可以看成精简型的8051单片机。比较适合初学者的需要Avr单片机也是Atmel公司的产品,最早的就是AT90系列单片机,现在很多AT90单片机都转型给了Atmega系列和Attiny系列,Avr单片机最大的特点就是精简指令型单片机,执行速度,据我所知是8位MCU中最快的一种单片机(相同的振荡频率下)。学习AVR的单片机当然可以直接学习,但是建议还是从51系列起。PIC单片机是Mirochip公司的产品,它也是一种精简指令型的单片机,指令数量比较少,中档的PIC系列仅仅有35条指令而已,低档的仅有33条指令。但是如果使用汇编语言编写PIC单片机的程序有一个致命的弱点就是PIC中低端单片机里有一个翻页的概念,编写程序比较麻烦,但是我个人认为PIC还是一个不错的8位MCU。初学单片机一般是选用51系列的单片机,比如说Itmel公司的8051系列,Atmel的AT89系列,STC公司的51系列等等都可以算是51系列单片机。这些单片机的指令系统是一样的。外面出的资料也是最多。建议选择Atmel的At89系列系列芯片,出的资料最多。如果你自己要做实验,建议选择AT89S52AT89S51AT89S8252等芯片学习,因为这些“S”的芯片全部支持ISP(在线烧录)只要一根下载线就可以了(建议选择AVR的下载线,为了以后能同时下载AVR的芯片的程序考虑),编译软件可以到上下载。烧录软件就选双龙的SLISP就可以了。这样学习的话无需使用昂贵的编程器,只要一根廉价的下载线就可以了。这类也可以同时进行SPI(同步串行扩展接口),和USART(串行方式通用同步/异步收发器)的学习。而且学习8051类型片除了资料多以外还有一个好处就是它属于CISC(复杂指令集)结构型单片机。指令系统比较完全,利用汇编语言写程序比较简单,易懂。而且它也有keilC51的C编译器。可以利用C语言来写程序。当然51类单片机还有很多缺点:1.运行速度很慢,(因为是CISC(集中指令)结构,而且芯片为了抗干扰采用了12分频的方法)2.所有的I/0口都是准双向口,I/0口的驱动能力弱。(但是AT89的灌电流比较大,大概有20mA左右)3.芯片里面的P0口没有上拉电阻(P1,P2,P3口有上拉电阻)如果要输出高电平或者要定义成输入口,一般要外接电阻上拉。4.芯片不能定义成内部复位方式,只能用外部微分电路复位。5.芯片内部没有RC振荡,如要芯片正常工作,需要外加振荡源(比如晶振,RC振荡,PLL振荡等)6.功耗比较高,抗干扰能力也不是很强。但是还是建议选择8051类单片机学习,因为这是学习其他8位单片机的基础。51如果学好了,学习其他单片机上手非常快。建议从汇编语言开始学起,搞懂所有指令的意义,以及如何运行的。等熟悉了以后再学C来写程序。千万别抄写人家一段程序,结果自己没有弄懂直接把程序写芯片里了,然后芯片怎么运行的都不知道。其他常见单片机如下:Microchip的PIC系列单片机Atmel的AVR系列单片机Freescal的MC系列Motorola的6800系列Zilog的Z80系列(这个是比51还要老的单片机)义隆公司的EM系列麦肯公司的MDT系列合泰的HT系列现代的ABOV系列意法半导体的ST系列单片机还有就是ARM系列32位的单片机。还有比如说NECLG三星philip等公司都做单片机的对于我这个初学单片机的学生来说,我就选择AT89C51单片机来做本次的设计。AT89C51单片机AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。单片机的基本组成AT89C51由一个8位的微处理器,128KB片内数据存储器RAM,21个特殊功能寄存器SFR,4KB片内程序存储器FlashROM,64KB可寻址片内外统一编址的ROM,64KB可寻址片外的RAM,4个8位并行I/O接口(P0—P3),一个全双工通用异步串行接口UART,两个16位的定时器/计数器,具有位操作功能的布尔处理机及位寻址功能的五个中断源、两个优先级的中断控制系统以及片内振荡器和时钟产生电路。其基本组成框图如图6所示。图6AT89C51的基本组成3.1.2AT89C51主要特性AT89C51主要特性有:·与MCS-51兼容·4K字节可编程闪烁存储器

·寿命:1000写/擦循环

·数据保留时间:10年

·全静态工作:0Hz-24Hz

·三级程序存储器锁定

·128*8位内部RAM

·32可编程I/O线

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

·5个中断源

·可编程串行通道

·低功耗的闲置和掉电模式

·片内振荡器和时钟电路管脚说明AT89C51的引脚图如图7所示。各引脚的具体说明如下:VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。图789c51结构图P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入口。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如表2-1所示。同时,P3口为闪烁编程和编程校验接收一些控制信号。表2-1P3口的特殊功能引脚名称功能说明引脚名称功能说明P3.0RXD串行输入口P3.4T0记时器0外部输入P3.1TXD串行输出口P3.5T1记时器1外部输入P3.2外部中断0P3.6外部数据存储器写选通P3.3外部中断1P3.7外部数据存储器读选通RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

/VPP:当/EA保持低电平时,则在此期间外部程序存储(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,将内部锁定为RESET;当端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。振荡电路和时钟在AT89C51芯片内部,有一个振荡电路和时钟发生器,引脚XTAL1和XTAL2之间接入晶体振荡器和电容后构成内部时钟方式。也可以使用外部振荡器,由外部振荡器产生的信号直接加载到振荡器的输入端,作为CPU的时钟源,称为外部时钟方式。采用外部时钟方式时,外部振荡器的输出信号接至XTAL1,XTAL2悬空。两种方式的电路连接如图2-5所示。大多数的单片机采用内部时钟方式,本次设计亦然。(a)使用片内振荡器接法(b)使用片外振荡器接法图8AT89C51振荡器的连接方式在AT89C51单片机内部,引脚XTAL2和引脚XTAL1连接着一个高增益反相放大器,XTAL1引脚是反相放大器的输入端,XTAL2引脚是反相放大器的输出端。芯片内部的时钟发生器是一个二分频触发器,振荡器的输出为其输入,输出为两相的时钟信号(状态时钟信号),频率为振荡器输出信号频率的1/2。状态时钟经三分频后为低字节地址锁存信号ALE,频率为振荡器输出信号频率的1/6,经六分频后为机器周期信号,频率为/12。、一般取20~30pF的陶瓷电容器。AT89C51的中断系统为了提高系统的工作效率,AT89C51单片机设置了中断系统,采用中断方式与外设进行数据传送。所谓“中断”,是指单片机在执行某一段程序的过程中,由于某种原因(如异常情况或特殊请求),单片机暂时中止正在执行的程序,而去执行相应的处理程序,待处理结束后,再返回到被打断的程序处,继续执行原程序的过程。(1)中断系统结构和中断控制AT89C51有六个固定的可屏蔽中断源,分别是三个片内定时器/计数器溢出中断TF0、TF1和TF2,两个外部中断(P3.2)和(P3.3),一个片内串行口中断TI或RI。6个中断源有两级中断优先级,可形成中断嵌套。它们在程序存储器中各有固定的中断入口地址,由此进入相应的中断服务程序。引起6个中断源的符号、名称及产生的条件如下::外部中断0,由P3.2端口线引入,低电平或下降沿引起;:外部中断1,由P3.3端口线引入,低电平或下降沿引起;T0:定时器/计数器0中断,由T0记满回零引起;T1:定时器/计数器1中断,由T1记满回零引起;TI/RI:串行口I/O中断,串行端口完成一帧字符发送/接收后引起中断;T2:定时器/计数器2中断,由T2记满回零引起。在本次设计中采用了定时器/计数器0中断,它的中断控制寄存器包括定时器/计数器0、1控制寄存器TCON和中断允许控制寄存器IE。①定时器控制寄存器TCONTCON是定时器/计数器和外部中断两者合用的一个可位寻址的特殊功能寄存器,它的格式如下:D7D6D5D4D3D2D1D0TF1TR1TF0TR0IE1IT1IE0IT0各控制位定义如下:TF1:定时器/计数器1溢出中断请求标志位。当定时器/计数器1计数产生溢出时,由内部硬件置位TF1,向CPU响应中断并转向该中断服务程序执行时,由硬件内部自动TF1清0。TR1:定时器/计数器1启动/停止位。由软件置位/复位控制定时器/计数器1的启动或停止计数。TF0:定时器/计数器0溢出中断请求标志位。当定时器/计数器0计数产生溢出时,由内部硬件置位TF0,向CPU响应中断并转向该中断服务程序执行时,由硬件内部自动TF1清0。TR0:定时器/计数器0启动/停止位。由软件置位/复位控制定时器/计数器0的启动或停止计数。IE1:外部中断请求标志位。当CPU检测到INT0低电平或下降沿且IT1=1时,由内部硬件置位IE1标志位(IE1=1)向CPU请求中断,当CPU响应中断并转向该中断服务程序执行时,由硬件内部将IE1清0。IE0:外部中断请求标志位。当CPU检测到INT0低电平或下降沿且IT0=1时,由内部硬件置位IE0标志位(IE0=1)向CPU请求中断,当CPU响应中断并转向该中断服务程序执行时,由硬件内部将IE0清0。IT1:用软件置位/复位IT1来选择外部中断INT1是下降沿触发还是电平触发中断请求。当IT1置1时,则外部中断INT1为下降沿触发中断请求,即INT1端口由前一个机器周期的高电平跳变为下一个机器周期的低电平,则触发中断请求;当IT1复位清0,则INT1的低电平触发中断请求。IT0:由软件置位/复位IT0来选择外部中断INT0是下降沿触发还是低电平触发中断请求,其控制原理同IT1。②中断允许控制寄存器 中断允许控制寄存器IE的格式如下:D7D6D5D4D3D2D1D0EAET2ESET1EX1ET0EX0各控制位定义如下:EA:中断总控制为。EA=1,CPU开中断,它是CPU是否响应中断的前提,在此前提下,如果某中断源的中断允许位置1,才能响应该中断源的中断请求。如果EA=0,无论哪个中断源有请求,CPU都不予回应。ET2:定时器/计数器T2中断控制位,ET2=1,允许T2计数溢出中断;ET2=0,禁止T2中断。ES:串行口中断控制位,ES=1,允许串行口发送/接收中断;ES=0禁止串行口中断。ET1:定时器/计数器T1中断控制位,ET1=1,允许T1计数溢出中断;ET1=0,禁止T1中断。EX1:外部中断1控制位,EX1=1,允许中断;EX1=0,禁止外部中断1中断。ET0:定时器/计数器T0中断控制位,ET0=1,允许T0计数溢出中断;ET0=0,禁止T0中断。EX0:外部中断0控制位,EX0=1,允许中断;EX0=0,禁止外部中断0中断[1]。(2)中断响应过程CPU中断处理从响应中断、控制程序转向对应的中断矢量地址入口处执行中断服务程序,到执行返回(RETI)指令为止。中断响应可分为以下几个步骤:①保护断点,即保存下一个将要执行的指令的地址,把这个地址送入堆栈。②寻找中断入口,根据6个不同的中断源所产生的中断,中断系统必须能够正确地识别中断源,查找6个不同的入口地址。以上工作是由单片机自动完成的,与编程者无关。在6个入口地址处存放有中断处理程序。③执行中断处理程序。④中断返回:执行完中断指令后,从中断处返回到主程序,继续执行[2]。定时器/计数器AT89C51单片机内部设有两个16位可编程定时器/计数器,即定时器/计数器0和定时器/计数器1。除此之外还有一个可编程定时器/计数器2。定时器/计数器0和1简介定时器/计数器0和1内部有一个计数寄存器(和),它实际上是一个累加寄存器进行加1计数。定时器和计数器共用这个寄存器,但定时器/计数器同一时刻只能工作在其中一种方式下,不可能既工作在定时器方式,同时又工作在计数器方式。这两个工作方式的根本区别是在于计数脉冲的来源不同。工作在定时器方式时,对振荡源12分频的脉冲计数,即每过一个机器周期(1个机器周期在时间上和12个振荡周期的时间相等),计数寄存器中的值就加1。工作在计数器方式时,计数脉冲不是来自内部的机器周期,而是来自外部输入。对定时器/计数器0、定时器/计数器1,计数脉冲分别来自T0、T1引脚。当这些引脚上输入的信号产生高电平至低电平的负跳变时,计数寄存器的值就加1。单片机每个机器周期都要对对外部输入进行采样,如果在第一个周期采得的外部信号为高电平,在下一个周期采得的信号为低电平,则在再下一个机器周期,即第三个机器周期计数寄存器的值才增加1[1]。(1)与定时器/计数器0和1相关的特殊功能寄存器①计数寄存器TH0、TL0和TH1、TL1计数寄存器是16位的,再启动定时器时需要对它设定初始值。是计数寄存器的高8位,是计数寄存器的低8位。TH0、TL0对应T/C0,TH1、TL1对应T/C1。②定时器/计数器控制寄存器TCON定时器/计数器控制寄存器TCON的格式如下:TF1TR1TF0TR1IE1IT1IE0IT0TF1为T/C1的溢出标志,溢出时由硬件置1,进入中断后又由硬件自动清0。TR1为T/C1的启动和停止位,由软件控制。置1时启动T/C1;清0时停止T/C1。TF0和TR0的功能和使用方法以TF1、TR1类似,只是它们针对的是T/C0。③定时器/计数器方式控制寄存器TMOD定时器/计数器方式控制寄存器TMOD的格式如下所示。它的控制位都是由软件控制的,其中高4位是针对T/C1的,低4位是针对T/C0的,其功能和使用方法相似。GATEM1M0GATEM1M0现在以T/C0来说明各控制位的使用方法:GATE是一个选通位,当GATE位置1时,T/C0受到双重控制,只有为高电平且TR0位置1是T/C0才开始工作,当GATE位清0时,T/C0仅受到TR0的控制。用来选择工作在定时器方式还是计数器方式。当该位置1时工作在计数器方式,清0时工作在定时器方式。M1和M0联合起来用于选择操作模式,一共有四种操作模式,如表2-2所示。表2-2操作模式M1M0操作模式计数器配置00模式013位计数器10模式2自动重转载的8位计数器10模式2自动重转载的8位计数器11模式3T0分为两个8位计数器,T1停止计数温湿度传感器现在研发的温湿度的传感器种类很多,由于有一体化的传感器,就比如SHT-11,SHT-10,DHT10等,选用温湿度传感器要从精度和长期稳定性、温度系数、湿度系数、温湿度传感器的供电、互换性、温湿度校正、根据对以上几个型号的传感器参数的对比,我决定选用SHT-11的传感器,这个传感器既能满足设计的要求,也不浪费资源,也适合初学者学习。数字温湿度传感器SHT-11数字温湿度传感器SHT—11采用COMSens专利传感器技术将温度湿度传感器、A/D转换器、数字接口、校准数据存储器、标准I2C总线等电路全部集成在一个芯片内(其内部结构如图9所示)[4]。图9数字温湿度传感器SHT—11的内部结构图由它的内部结构可看出SHT-11具有不同保护的“微型结构”检测电极系统与聚合物覆盖层组成了传感器芯片的电容,这样除保持了电容式湿敏器件的原有特性外还可抵御来自其它方面的影响。将温度传感器与湿度传感器结合在一起构成了一个单一的个体,这就使得测量精度提高并且可以精确得出露点,而不会产生由于温度与湿度传感器之间随温度梯度变化而引起的误差。而且将传感器元件、信号放大器、模/数转换器、OTP校准数据存储器、I2C工业标准串行总线等,电路功能部件全部采用CMOS技术与温湿度传感器一起放置在一个芯片内。这不仅使信号强度增加,更重要的是长期稳定性也得到增强,这对传感器系统是极为重要的。同时,模/数转换也在一个芯片内同时完成,这可使信号对噪声不敏感,尤其重要的是,在传感器芯片数据存储器内装载的针对每一只传感器的校准数据保证了每一只传感器都有相同的功能,可以实现100%的互换。此外,。该传感器还具有I2C二线串行总线接口,这可使传感器方便的与任何类型的微处理器、微控制器接口相连,为温湿度的微机化测试带来极大的方便,这不仅能减少温湿度测试系统的开发时间,还可节约数字化接口的软硬件成本。该传感器还有反应迅速、高精度、低功耗等优点。湿度值输出SHT-11可通过I2C总线直接输出数字量湿度值,其相对湿度输出特性曲线如图3-2所示。从中可以看出,SHT11的输出特性呈一定的非线性,为了补偿湿度传感器的非线性以获取准确数据,可按式(3-1)修正湿度值:=式中,SORH表示传感器相对湿度测量值,系数取值分别如下:12位时:;8位时:。温度值输出SHT-11温度传感器的线性非常好,可用下列公式(3-2)将温度数字输出转换成实际温度值T:式中,表示传感器温度测量值。当电源电压为5V,温度传感器的分辨率为14位时,,;当温度传感器的分辨率为12位时,,。图10相对湿度输出特性曲线SHT-11的特性SHT-11传感器的特点如下:1)相对湿度和温度一体测量;2)精确露点测量;3)全量程标定,无需重新标定即可互换使用;4)超快响应时间;5)两线制数字接口(最简单的系统集成,较低的价格);6)超小尺寸(7.5×5×2.5mm);7)高可靠性(工业CMOS工业);8)优化的长期稳定性;9)可完全浸没水中;10)基于请求式测量,因此低能耗;11)具有湿度传感器元件的自检测能力;12)传感器元件加热应用,亦可获得极高的精度和稳定性。SHT-11的详细规格1.相对湿度传感器(RH)的性能参数如下:范围:0—100%RH;精度:±3%RH(20—80%RH);响应时间:≤4s;复现性:±0.1%RH;分辨率:0.03%RH;工作温度:-40℃—+120℃。2.温度传感器(T)的性能参数如下:范围:-40℃—+120℃;精度:±0.5℃(在25℃时),±0.9℃(在0—40℃时);响应时间:≤20s;复现性:±0.1℃;分辨率:0.01℃。3.电器数据能耗:典型30uW(@5V,12-bit,测量周期2秒)典型1uW(@2.4V,8-bit,测量周期2分);供电范围:2.4V—5.5V;检测电流:0.5mA;待机电流:0.3uV。SHT-11的引脚SHT-11的引脚图如图11所示。图11SHT-11的引脚图引脚简介引脚1—GND接地端;SHT-11的供电电压为0.4~5.5V,传感器上电后要等待11ms以越过“休眠”状态。在此期间无需发送任何指令,电源引脚(VDD,GND)之间可增加一个100uF的电容,用以去耦滤波。引脚2—DATA双向串行数据线;SHT-11的串行接口,在传感器的读取及电源损耗方面都做了优化处理。DATA三态门用于数据的读取。引脚3—SCK串行时钟输入;用于微处理器与SHT-11之间的通讯同步。由于接口包含了完全静态逻辑,因而不存在最小SCK频率。引脚4—VDD电源端,0.4—5.5V电源引脚5—8—NC空管脚7SHT-11的的内部命令与接口时序(1)SHT-11的内部命令SHT-11传感器共有5条用户命令,具体命令格式见表3-1。在程序编程时根据命令编号来设定SHT-11的工作状态。例如:0x03设置SHT-11为温度测量,0x05是设置SHT-11为湿度测量[5]。表3-1SHT-11传感器命令列表命令编号说明测量温度00011温度测量测量湿度00101湿度测量读寄存器00111“读”状态寄存器写寄存器00110“写”状态寄存器软启动11110重启芯片,清除状态记录器的错误记录11毫秒后进入下一个命令(2)SHT-11的命令顺序及命令时序1)传输开始初始化传输时,应发出“传输开始”命令,具体为SCK是高电平时,DATA高电平变为低电平,并在下一个SCK为高时将DATA升高。接着传输开始下一个命令,包含3个地址位(目前只支持“000”)和5个命令位,通过DATA脚的ack位处于低电位表示SHT11正确收到命令。2)连接复位顺序如果与SHT11传感器的通讯中断,下列信号顺序会使串口复位:当使DATA线处于高电平时,触发SCK9次以上(含9次),并发一个前述的“传输开始”命令。3)温湿度测量时序当发出了温(湿)度测量命令后,控制器就要等到测量完成后才开始动作。使用8/12/14位的分辨率测量分别需要大约11/55/210ms。为表明测量完成,SHT11会使DATA为低电平,此时控制器必须重新启动SCK,然后SHT11传送两字节测量数据与1字节CRC校验和到控制器,控制器必须通过使DATA为低来确认每一字节,通讯在确认CRC数据位后停止。如果没有用CRC28校验和,则控制器就会在测量数据LSB后,保持ack为高时停止通讯,SHT11在测量和通讯完成之后会自动返回睡眠模式。需要注意的是,为使SHT11温升高低于0.1℃,则此时工作频率不能大15%(如:12位精确度时,每秒最多进行3次测量)。测量温度和测量湿度命令所对应的时序如图12所示。图12测量温湿度时序图4)加热控制将传感器芯片中的加热开关接通,传感器温度大约增加5℃,加热用途如下:其一,通过对启动加热器前后的温、湿度进行比较,可以正确地区别传感器的功能;其二,在相对湿度较高的环境下,传感器可通过加热来避免冷凝。5)低电压检测SHT11的工作极限功能可以检测VDD电压是否低于2.45V,准确度为±0.1V。3.3.2.8SHT-11的状态寄存器SHT-11的状态寄存器的类型及其说明见表3-2。表3-2SHT-11状态寄存器及说明位类型说明缺省说明7保留06读工检限X5保留04保留0续表位类型说明缺省说明3只用于试验,不可以使用02读/写加热0关1读/写不从OTP重下载0重下载0读/写‘1’—8位相对湿度,12位温度分辨率;‘0’—12位相对湿度,14位温分辨率012位相对湿度,14温度电路连接图13SHT-11与AT89C51电路连接时钟芯片DS1302是Dallas公司推出的高性能低功耗涓流充电时钟芯片。可通过简单的串行接口与单片机进行通信,光感应用于智能仪器、单片机系统和家用时钟电路等领域。DS1302时钟芯片的简介DS1302涓流充电计时芯片包含一个实时时钟/日历和31字节的静态RAM。它通过一个简单的串行接口与微处理器进行通信[8]。实时时钟/日历提供秒,分钟,小时,周,日期,月份和年的有关信息。对于少于31天的月份,每月月底的日期是自动调整的,包括对瑞年进行更正,时钟运行可采用24小时制或带AM/PM指示的12小时制。同步串行通信简化了DS1302与微处理的接口。与时钟/RAM通信只需三根线:、I/O(数据线)及SCLK(串行时钟)。时钟/RAM数据的读/写以每次一个字节或多达31个字节的多字节模式传输。DS1302设计为低功耗工作,保持数据和时钟信息的功耗小于1uF引脚DS1302的引脚(引脚图如图4-1所示)及功能简介如下:图14DS1302引脚图第1、2脚:Vcc1、Vcc2电源。第3脚:复位输入端。第4脚:串行时钟输入端。第5脚:数据输入/输出端。第6、7脚:X1、X2是32.768kHz晶振输入/输出端。命令字节表4-1所示为命令字节格式。命令字节启动每个字节的数据传输。该MSB(第7位)必须为逻辑1.如果是0,写入DS1302操作将被禁用。第6位是逻辑1时指定RAM数据。第1至第5位规定特定寄存器作为输入还是输出。LSB(第0位)如果是逻辑0,指定一个写操作(输入);如果是逻辑1,执行一个读操作。命令字节总是从LSB(第0位)输入。表4-1DS1302命令字节765432101RAMSCLKA4A3A2A1A0RD(1)及时钟控制驱动输入高电平可启动所有的数据传输。输入起到两种功能:第一,启动控制逻辑,允许地址/字节序列访问移位寄存器。第二,信号提供了一种终止单字节或多字节数据传输的方法。一个时钟周期是一个上升沿序列,紧跟着下降沿。对于数据输入,在时钟周期的上升沿时间,数据必须正确;在时钟周期的下降沿,数据位输出。如果输入低电平所有数据传输中止。I/O引脚变成高阻状态。数据的传输如图15所示。在上电时,必须是逻辑0,直到Vcc>2.0V.此外,当被驱动到逻辑1状态时,SCLK必须为逻辑0。a)单字节传送b)多字节传送图15数据传送时序(2)数据输入继输入写命令字节的8个SCLK周期后,在接下来的8个SCLK周期的上升沿输入数据字节。如果有额外的SCLK周期,将被忽略。数据输入从位0开始。(3)数据输出继输入写命令的8个SCLK周期后,在接下来的8个SCLK周期的下降沿输出数据字节。请注意,将被传输的第一个数据位出现在命令字节最后一位被写入后的第一个下降沿。只要维持高电平,如有附加的SCLK的周期,将重新转发数据字节。此操作允许连续多字节模式读取能力。此外,I/O引脚在每个SCLK的上升沿都是三态的。数据输出开始于第0位。(4)多字节模式时钟/日历或由十进制存储单元31(地址/命令1至5=逻辑1)寻址的RAM寄存器可以为多字节模式。如上所述,第6位指定时钟或RAM和第0位指定读或写。在日历/时钟寄存器的地址9至31或RAM寄存器中的地址31不能存储数据。在多字节模式中,读或写开始于地址0的第0位。当在多字节模式下写时钟寄存器时,必须按数据传输的次序写入首八个寄存器。然而,当在多字节模式写入RAM时,为了数据的传输,没有必要写入所有的31个字节。每个被写入的字节都将被传输到RAM,无论31个字节是否都被写入。(5)DS1302内部寄存器DS1302内部寄存器地址及数据分配情况如表4-2所示。1)时钟/日历:时钟/日历包含在7个写/读寄存器中。数据以BCD码形式包含在时钟/日历寄存器中。2)时钟暂停标志:秒寄存器的第7位定义为时钟暂停标志。当此位置1时,时钟振荡器停止,DS1302进入低功耗备用模式,电源消耗小于100nA。当此位置0时,时钟将启动。初始上电状态未定义。3)AM-PM/12-24模式:DS1302能运行于12小时制或24小时制模式下。小时寄存器的第7位被定义为12或24小时模式选择位。当其处于高电平时,选择12小时模式。在12小时模式下,第5位是AM/PM位,其为逻辑高电平表示PM。在24小时模式下,第5位是第二个10小时位元(20-23)小时。当12/24位被改变时,小时数据一定要被重新初始化。表4-2DS1302的日历、时钟寄存器及控制字寄存器名命令字格式取值范围位内容写操作读操作76543210秒寄存器80H81H00-59CH10SECSEC分寄存器82H83H00-59010MINMIN小时寄存器84H85H01-1200-2312/24010HRHRA/P日期寄存器86H87H01-28/29/30/310010DATEDATE月份寄存器88H89H01-1200010MMONTH星期寄存器8AH8BH01-0700000DAY年份寄存器8CH8DH00-9910YEARYEAR写保护寄存器8EH8FH—WP0涓流充电寄存器90H91H—TCSDSRS时钟多字节寄存器BEHBFH——RAM多字节寄存器FEHFFH——4)写保护位:控制寄存器的第7位是写保护位。首7位(第0至第6位)必须为0,读取时始终读0。对时钟或RAM进行任何操作前,第7位必须为0。当写保护位为高电平时,该位阻止对任何其他寄存器的写操作。初始的上电状态没有定义。因此,在写入该器件之前,应清除WP位。5)涓流充电寄存器:该寄存器控制DS1302的涓流特性。涓流充电选择(TCS)位(第4至第7位)控制涓流充电器的选择。为了阻止意外使能,只有1010模式使能涓流充电器。所有其他模式都禁用涓流充电器。DS1302上电时,涓流充电器被禁用。DS为二极管选择位,RS为电阻选择位。6)时钟/日历多字节模式:该时钟/日历命令字节指定多字节触发模式操作。在此模式下,首8个时钟/日历寄存器可以从地址0的第0位开始被连续地读取或写入。当指定写时钟/日历多字节模式时,如果写保护位被设置为高电平,将没有数据传送到8个时钟/日历寄存器(包括控制寄存器)的任意一个。在多字节模式下,涓流充电器不可用。7)RAM:静态RAM是RAM地址空间中连续编址的31×8字节。8)RAM多字节模式:RAM命令字节指定多字节模式操作。在此模式下,31个RAM寄存器从地址0的第0位开始被连续读取或写入。(6)晶振的选择32.768kHz的晶振可通过引脚2和3(X1、X2)直接连接至DS1302。所选定的晶振应该加一个6pF的负载电容。(7)电源控制Vcc1在单电源与电池供电的系统中提供低电源的电池备份。Vcc2在双电源系统中提供主电源,此时Vcc1连接到备份电源,以便在没有主电源,以便在没有主电源的情况下能保存时间信息以及数据。DS1302由Vcc1或Vcc2两者中较大者供电。它与单片机连接后,单片机便可读出其实时时间。连接示意图如图16所示。图16DS1302与AT89C51连接图液晶显示器LCD液晶显示器是一种低功耗液晶显示器件。工作电流小,适合于仪表和低功耗系统。常用的有笔画型液晶显示器、点阵字符型液晶显示器和图形点阵式液晶显示器。LCD液晶显示器的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,。有电就显示黑色,这样就显示出图形。液晶显示器适应于大规模电路直接驱动,易于实现全彩色显示的特点。目前被广泛应用于计算机,数字摄像机等众多领域。液晶显示器的分类液晶显示器按显示图案的不同可分笔段型LCD、字符型LCD和点阵图型LCD三种[1]。笔段型笔段型是以长条状作为基本单位显示。该类型主要用于数字显示,也可用于显示西文字符或某些字符。这种段型显示通常有6段、7段、8段、9段、14段和16段等,在形状上与数码管类似,总是围绕数字“8”的结构变化。其中以7段显示器常用,常用于数字仪表、电子仪器中。字符型字符型液晶显示器是专门用来显示英文和其他拉丁文字母、数字、符号等点阵型液晶显示模块。它一般由若干个5×8或5×11点阵组成,每个点阵显示一个字符。这类模块一般应用于数字寻呼机、数字仪表等电子设备中。点阵图形型点阵图形型是在一平板上排列多行多列的矩阵式的晶格点,点的大小可根据显示清晰度来设计,可显示数字、字母、汉字、图像,甚至动画。这液晶显示器广泛应用于手机、笔记本电脑等需要显示大量信息的设备中。AMPIRE128×64带中文字库的128×64是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64,内置8192个16*16点汉字,和128个16*8点ASCII字符集。利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示8×4行16×16点阵的汉字.也可完成图形显示。低电压低功耗是其又一显著特点。由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。在本次设计中要求显示温度值,湿度值的同时显示起表明作用的“温度”与“湿度”两组汉字。因此选用点阵图形型的AMPIRE128×64。它的基本特性如下:•低电源电压(VDD:+3.0--+5.5V);•显示分辨率:128×64点;•内置汉字字库,提供8192个16×16点阵汉字(简繁体可选);•内置128个16×8点阵字符;•2MHZ时钟频率;•显示方式:STN、半透、正显;•驱动方式:1/32DUTY,1/5BIAS;•视角方向:6点;•背光方式:侧部高亮白色LED,功耗仅为普通LED的1/5—1/10;•通讯方式:串行、并口可选;•内置DC-DC转换电路,无需外加负压;•无需片选信号,简化软件设计;•工作温度:0℃-+55℃,存储温度:-20℃-+60℃。LCD128×64引脚功能AMPIRE128×64内置KS0108型图形液晶模块驱动,它的引脚功能表如表5-1所示。逻辑工作电压:4.5V~5.5V;电源地(GND):0V;工作温度:0~60℃(常温)/-20~70℃(宽温)。表5-1LCD128×64引脚功能表引脚号引脚名称电平引脚功能描述1CS1/CS2H/L片选信号,芯片1/芯片2控制液晶左半屏/右半屏2GND0V电源地3VCC+5V电源正4V0—对比度(亮度)调整续表引脚号引脚名称电平引脚功能描述5RSH/LRS=“H”,表示DB7~DB0为显示数据RS=“L”,表示DB7~DB0为显示指令数据6R/WH/LR/W=“H”,E=“H”,数据被读到DB7~DB0R/W=“L”,E=“L”,DB7~DB0的数据被写到IR或DR7EH/L使能信号8DB0~DB7H/L三态数据线9H/L复位端,低电平有效10VOUT—LCD驱动电压输出端KS0108控制器指令功能KS0108控制器指令功能如表4-2所示。具体分析如下:读状态字(readstatus)格式:BUSY0ON/OFFRESETO000BUSY=1:表示KS0108正在处理计算机发来的指令或数据。此时接口电路被封锁,不能接受除状态字以外的任何操作。BUSY=0表示KS0108接口控制电路已处于“准备好”状态,等待计算机的访问。ON/OFF:表示当前的显示状态。ON/OFF=1表示关显示状态;ON/OFF=0表示开显示状态。RESSET:表示当前KS1008的工作状态,即反映RET端得电平状态。当RST为低电平状态时,KS0108处于复位工作状态,RESET=1;当RST为高电平状态时,KS0108为正常工作状态,RESET=0。在占领设置和数据读写时要注意状态字中的BUSY标志。只有在BUSSY=0时,计算机对KS0108的操作才有效。因此计算机在每次对KS0108操作之前,都要读出状态字判断BUSY是否为“0”。若不为“0”,则计算机需要等待,直至BUSY=0为止。显示开关(displayon/off)格式:0011111D该指令设置显示开关/触发器的状态,由此控制显示数据锁存器的工作方式,从而控制显示状态。D位为显示开/关的控制位。当D=1为显示设置,显示数据锁存器正常工作,显示屏上呈现所需的效果。此时在状态字中ON/OFF=0。当D=0为关显示设置,显示数据锁存器被清0,显示屏呈不显示状态,但显示存储器并没有被破坏,在状态组中ON/OFF=1。显示起始行设置(displaystartline)格式:11L5L4L3L2L1L0该指令设置了显示起始行寄存器的内容。KS0108有64行显示的管理能力,该指令中L5~L0为显示起始行的地址,取值在0~3FH(1~64)范围内,它规定了显示屏上最顶一行所对的显示存储器的行地址。如果定时间间隔地,等间距地修改(如加一或减一)显示起始行寄存器的内容,则显示屏将呈现显示内容向上或向下平滑滚动的显示效果。页面地址设置(setpage(Xaddress))格式:10111P2P1P0该指令设置了页面地址→X地址寄存器的内容。KS0108将显示存储器分成了8页,指令代码中P2~P0就是要确定当前所要的选择的页面地址,取值范围为0~7H,代表第1~8页。该指令规定了以后的读/写操作将在哪一个页面上进行。⑤列地址设置(setYaddress)格式:01C5C4C3C2C1C0该指令设置了Y地址计数器的内容,C5~C0=0~3FH(1~64)代表某一页面上的某一单元地址,随后的一次读或写数据将在这个单元上进行。Y地址计数器具有自动加一功能,在每一次读/写数据后它将自动加一,所以在连续进行读/写数据时,Y地址计数器不必每次都设置一次。页面地址的设置和列地址的设置将显示存储器单元唯一确定下来,为后来的显示数据的读/写作了地址的选通。⑥写显示数据(writedisplaydata)该操作将8位数据写入先前已经确定的显示存储器的单元内,操作完成后列地址计数器自动加一。⑦读显示数据(readdisplaydata)该操作将KS0108接口部的输出寄存器内容读出,然后列地址自动加一。应用说明用带中文字库的128×64显示模块时应注意以下几点:①欲在某一个位置显示中文字符时,应先设定显示字符位置,即先设定显示地址,再写入中文字符编码。②显示ASCII字符过程与显示中文字符过程相同。不过在显示连续字符时,只须设定一次显示地址,由模块自动对地址加1指向下一个字符位置,否则,显示的字符中将会有一个空ASCII字符位置。③当字符编码为2字节时,应先写入高位字节,再写入低位字节。④模块在接收指令前,向处理器必须先确认模块内部处于非忙状态,即读取BF标志时BF需为“0”,方可接受新的指令。如果在送出一个指令前不检查BF标志,则在前一个指令和这个指令中间必须延迟一段较长的时间,即等待前一个指令确定执行完成。指令执行的时间请参考指令表中的指令执行时间说明。⑤“RE”为基本指令集与扩充指令集的选择控制位。当变更“RE”后,以后的指令集将维持在最后的状态,除非再次变更“RE”位,否则使用相同指令集时,无需每次均重设“RE”位。电路连接图17显示器电路连接图键盘在单片机控制系统中可以通过键盘输入数据或命令。键盘是由一组常开的按键组成,每个按键都被赋予一个代码,称为键码。键码分为编码键盘和非编码键盘。编码键盘是通过一个编码电路识别闭合键的键码,非编码键盘是通过软件来识别键码。由于非编码键盘的硬件电路简单,用户可以方便的改变键的数量,因此在单片机系统中应用广泛。非编码键盘可以分为独立式键盘和行列式键盘两种结构形式。在本次设计中用到的键数较少,为了简化硬件电路,选用独立式非编码键盘。图18键盘电路图继电器电磁继电器是在输入电路内电流的作用下,由机械部件的相对运动产生预定响应的一种继电器。它包括直流电磁继电器、交流电磁继电器、磁保持继电器、极化继电器、舌簧继电器,节能功率继电器。直流电磁继电器,输入电路中的控制电流为直流的电磁继电器。交流电磁继电器,输入电路中的控制电流为交流的电磁继电器。磁保持继电器,将磁钢引入磁回路,继电器线圈断电后,继电器的衔铁仍能保持在线圈通电时的状态,具有两个稳定状态。极化继电器,状态改变取决于输入激励量极性的一种直流继电器。舌簧继电器,利用利用密封在管内,具有触点簧片和衔铁双重作用的舌簧的动作来开,闭或转换线路继电器。节能功率继电器:输入电路中的控制电流为交流的电磁继电器,但它的电流大,体积小,节电功能。电磁式继电器一般由控制线圈、铁芯、衔铁、触点簧片组成,控制线圈和接点组之间是相互绝缘的,因此,能够为控制电路起到良好的电器隔离作用。当我们在继电器的线圈两头加上其线圈的额定的电压时,线圈中就会流过一定的电流,从而产生电磁效应,衔铁就会在电磁力的作用下克服返回弹簧的拉力吸向铁芯,从而带动衔铁的动触点与静触点吸和当线圈断电后,电磁的吸力也随之消失,衔铁就会在弹簧的反作用力返回原来的位置,使动触点与原来的静触点吸和。这样吸和、释放,从而达到了在电路中的接通、切断的开关目的。继电器的作用就相当于一个开关,继电器连接一个三极管,三极管的一个手(手)和单片机的p2.3连接,当这个引脚置高电平时,继电器就会打开进而浇水。电路连接图19总电路连接图图20软件系统设计系统控制流程图图21主要流程图系统主控制程序如下:#include<reg51.h>#include<intrins.h>#include<string.h> #include<12864.h>#include<DS1302.h>#include<sht11.h>#include<key.h>xdatauncharTemBuf[]={0,0,0};xdatauncharTimeBuf[]={0,0,0};//分别存放秒、分、时xdatauncharDateBuf[]={0,0,0}; //分别存放年的后两位、月、日xdataunsignedintmaxhumidity;xdataunsignedintminhumidity;sbitled_red=P2^4;sbitbuzzer=P2^3;sbitflower=P2^5;//显示日期voidDateShow(){GetDate(DateBuf);PutOnech(0,0,Seg[2]); //显示年份PutOnech(0,1,Seg[0]); PutOnech(0,2,Seg[DateBuf[0]/10]);PutOnech(0,3,Seg[DateBuf[0]%10]);PutOneWor(0,2,nianyueri[0]); PutOnech(0,6,Seg[DateBuf[1]/10]); //显示月份PutOnech(0,7,Seg[DateBuf[1]%10]);PutOneWor(0,4,nianyueri[1]);PutOnech(0,10,Seg[DateBuf[2]/10]); //显示月份PutOnech(0,11,Seg[DateBuf[2]%10]);PutOneWor(0,6,nianyueri[2]);}//显示时间voidTimeShow()//显示时分秒{GetTime(TimeBuf);PutOnech(1,0,Seg[TimeBuf[2]/10]); //显示时PutOnech(1,1,Seg[TimeBuf[2]%10]);PutOneWor(1,1,shifenmiao[0]);PutOnech(1,4,Seg[TimeBuf[1]/10]); //显示时PutOnech(1,5,Seg[TimeBuf[1]%10]);PutOneWor(1,3,shifenmiao[1]);PutOnech(1,8,Seg[TimeBuf[0]/10]); //显示时PutOnech(1,9,Seg[TimeBuf[0]%10]);PutOneWor(1,5,shifenmiao[2]);}voidread_sht11(){ valuehumi_val,temp_val;unsignedcharerror,checksum;unsignedintwendu,shidu; error=0;error+=s_measure((unsignedchar*)&humi_val.i,&checksum,HUMI);//measurehumidityerror+=s_measure((unsignedchar*)&temp_val.i,&checksum,TEMP);//measuretemperatureif(error!=0) s_connectionreset();//incaseofanerror:connectionresetelse{ humi_val.f=(float)humi_val.i;//convertsintegertofloat temp_val.f=(float)temp_val.i;//convertsintegertofloat calc_dht90(&humi_val.f,&temp_val.f);//calculatehumidity,temperature wendu=10*temp_val.f; PutOneWor(2,0,wen); PutOneWor(2,1,Wendu); PutOneWor(2,2,fenhao); PutOnech(2,5,Seg[wendu/1000]); //显示时 PutOnech(2,6,Seg[(wendu%10

温馨提示

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

评论

0/150

提交评论