




已阅读5页,还剩46页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
广州学院机电综合课程设计说明书 基于单片机的温室环境控制系统设计 院(系) 机械工程学院 专 业 机械电子工程 班 级 机械电子2班 学生姓名 指导老师 成 绩 2015年 10 月 30 日课 程 设 计 任 务 书兹发给 12级机械电子2 班学生 课程设计任务书,内容如下:1 设计题目: 基于单片机的温室环境控制系统设计 2 应完成的项目:(1)设计说明书计算准确、书写工整,字数不少于3000字;图纸正确清晰,符合制图标准及有关规定。 (2)分组实现原理图设计及相关元器件的设计,按要求完成总体电路。 (3)基于相关电路完成电路设计、程序设计与实物。 (4)完成总体内容,实现具体功能。 3 参考资料以及说明:(1) 电子线路CAD与实训(电子工艺出版社) (2) 电子工艺技术与实践(机械工程出版社) (3) 新概念单片机C语言教程:入门、提高、开发、拓展全攻略(电子工业出版社) (4) 单片机原理及应用(清华大学出版社) (5) 集成电路数据手册查询网:/ 4 本设计任务书于2015年 月 日发出,应于2015年 月 日前完成,然后进行答辩。指导教师 签发 2015 年 10 月 30 日评语:总评成绩:指导教师签字:年 月 日目 录第一章 绪论1第二章 总体内容及设计22.1 总体内容设计及目标22.2 实现目标2第三章 电路设计及元器件选型33.1 选型33.2 湿度测量电路43.3 温度测量电路53.4 光照度测量电路83.5 数据显示电路103.6 复位电路133.7 键盘电路133.8 继电器控制电路143.9 电源电路15第四章 程序设计164.1 主程序流程图164.2 参数测量子程序流程图174.3 键盘扫描子程序流程18参考文献20总结21附录1 系统总体电路图22附录2 系统源代码23摘要 本设计以STC89C52单片机为核心完成了对空气温度、土壤湿度、光照度进行数据的采集、处理、显示等系统的基本框图、工作原理和继电器控制的设计的工作。主要内容有:(1)通过数字温度传感器DS18B20采集实时温度。(2)通过湿度传感器HS1101采集实时湿度。(3)通过光敏电阻采集实时光照度。(4)判断采集到的参数值与设置值是否一致,并进行继电器控制。通过以上设计可以湿度、环境温度、光照度进行了连续地检测、直观地显示并进行自动地控制。克服了传统的人工测量方法不能进行连续测量的弊端,节省了工作量,并避免了人为的疏漏或错误造成的不必要的损失。关键词: 单片机、温室环境、智能、第一章 绪论 现代化农业生产中的重要一环就是对农业生产环境的一些重要参数进行检测和控制。例如:空气的温度、湿度、光照强度、二氧化碳含量、土壤的含水量等。温室环境与生物的生长、发育、能量交换密切相关,进行环境测控是实现温室生产管理自动化、科学化的基本保证,通过对监测数据的分析,结合作物生长发育规律,控制环境条件,使作物达到优质、高产、高效的栽培目的。以蔬菜大棚为代表的现代农业设施在现代化农业生产中发挥着巨大的作用,所以对大棚内的温度、湿度与光照强度等参数的控制就显的非常重要了。传统的方法是用毛发湿度表、酒精温度计等进行人工测量,再对不符合的温度、湿度、光照度通过在温室大棚进行灌溉、降温、遮光等控制操来调节,这种人工测控的方法费时费力、效率低、且无法保证测量的连续性,测量的误差大、随机性大,随意性强。为了克服以上几点不足,我们需要一种造价低廉,使用方便且测量准确的自动测控系统。国外的温室设施己经发展到比较完备的程度,并形成了一定的标准,但是价格非常昂贵,缺乏与我国气候特点相适应的测控软件,不利于在我国广泛地推广,而当今在我国大多数地方对大棚温度、湿度、二氧化碳含量,光照强度的检测与控制都采用人工管理,存在着测控精度低、劳动强度大及由于测控不及时等弊端,容易造成不可弥补的损失,结果不但大大增加了成本,浪费了人力资源,而且很难达到预期的效果。本系统主要针对温室大棚内温度、湿度,光照强度研制了单片机控制的温室大棚自动控制系统,综合考虑系统的精度、效率以及经济性要求三个方面因素之后,最终确定以单片机为控制核心,选用性价比比较高的传感器,实现对温湿度的精确测量与准确控制,同时又具有价格低等优点,便于在我国推广。第二章 总体内容及设计2.1 总体内容设计及目标本设计的要求是以单片机为控制核心,以湿度传感器、温度传感器、光敏电阻完成对温室内的各项参数进行测量,并将数据输入到单片机中,有单片机根据所编写的程序,通过继电器控制电路控制相应的设备达到自动调控温室内各项参数的目的,同时将通过各种传感器测的数据实时地显示在液晶屏上。系统可通过按键人为地设定合适的参数,便于根据不同的植被的环境中使用。2.2 实现目标 通过湿度传感器检测土壤的湿度,若土壤的湿度过低,单片机就打开滴灌设备的电磁阀一分钟,对作物进行滴灌作业,增加土壤湿度,经过一段时间,单片机再次检测土壤湿度,如果湿度过高,就关闭滴灌设备的电磁阀,停止滴灌作业。如果开始检测的土壤湿度在适宜的范围,单片机则维持现有状态不变。 通过温度传感器检测温室的空气温度,当空气温度过高时,就通过控制电路,打开排气扇配合设置在温室大棚顶部的喷雾设备的进行一段时间的温室大棚的降温作业,而当温室温度过低时,则通过单片机自动关闭降温设备的工作,使温度值达到适宜的范围。 若一开始检测的光照度在适宜范围,单片机将维持现有状态。 光照度的控制主要靠遮阳幕的开关,光照度过高时,系统通过关闭大棚顶部的遮阳幕,避免阳光直射作物,减小光照度,及减少强光对作物生长的影响。当光照度过低时,就打开遮阳幕,增加光照度。如果检测的光照度在适宜范围,单片机将维持现状。第三章 电路设计及元器件选型3.1 选型STC89C52是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 具有以下标准功能: 8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,三个16 位 定时器/计数器,全双工串行口,最高运作频率35MHZ。 它是MCS-51系列单片机的派生产品,在指令系统、硬件结构和片内资源上与标准8052单片机完全兼容,DIP40封装系列与8051兼容均为Pin-to-Pin,使用时容易掌握; 高速、低功耗、价格低、稳定可靠、应用广泛、通用性强,在系统/在应用可编程(ISP,IAP),不占用户资源。STC89C52单片机管脚如图3-1:图3-1 STC89C52单片机管脚定义图3.2 湿度测量电路HS1101湿度传感器,在电路中等效于 一个电容器件,其电容量随着所测的土壤湿度增大而增大,如何将电容的变化量准确的转换成单片机易于接受的信号,常有两种方法:一是将该湿敏传感器置于运放与阻容组成的桥式振荡电路中,所产生的正弦波电压信号经整流、直流放大、再经过A/D转换成为数字信号;另一种是将该湿敏传感器置于555振荡电路中,将电容值的变化转化为与之成反比的电压频率信号,可直接被单片机所采集。本系统采用的是测量555输出的振荡的方法,电路如图3-2所示:图3-2 湿度测量电路图此电路为典型的555双稳态电路。HS1101/HS1100作为电容变量接在555的TRIG与THRES两引脚上,引脚7用作电阻R9的短路。等量电容HS1101/HS1100通过R8与R9充电到门限电压(约0.67Vcc),通过R8放电到触发电平(约0.33Vcc),然后R9通过引脚7短路到地。传感器由不同的电阻R8与R9充放电。电压输出典型参数(VCC=5V,25)如表3-1表3-1 HS1101湿度传感器电压输出典型参数(VCC=5V,25)RH0102030405060708090100Vout-1.411.651.892.122.362.602.833.073.313.553.3 温度测量电路 因为在本系统中采用了DS18B20数字温度传感器,所以后续电路简单,只需将传感器的数据输入/输出管脚直接接到单片机I/O口,通过单片机的控制DS18B20传感器并实时读取空气温度。数字温度传感器的测量电路如图3-3所示:图3-3 温度测量电路图DS18B20数字温度计是DALLAS公司生产的1Wire,即单总线器件,具有线路简单,体积小的特点。因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。DS18B20产品的特点(1)只要求一个端口即可实现通信。(2)在DS18B20中的每个器件上都有独一无二的序列号。(3)实际应用中不需要外部任何元器件即可实现测温。(4)测量温度范围在55oC到125oC之间。(5)数字温度计的分辨率用户可以从9位到12位选择。(6)内部有温度上、下限告警设置。DS18B20的管脚图如图3-4所示:图3-4 DS18B20管脚及封装图GND:地信号DQ:数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源。VDD:可选择的VDD引脚。当工作于寄生电源时,此引脚必须接地。DS18B20的ROM指令如表3-2所示:表3-2 DS18B20的ROM指令表指 令约定代码功 能读ROM33H读DS1820温度传感器ROM中的编码(即64位地址) 符合 ROM55H发出此命令之后,接着发出 64 位 ROM 编码,访问单总线上与该编码相对应的 DS1820 使之作出响应,为下一步对该 DS1820 的读写作准备。 搜索 ROM0FOH用于确定挂接在同一总线上 DS1820 的个数和识别 64 位 ROM 地址。为操作各器件作好准备。 跳过 ROM0CCH忽略 64 位 ROM 地址,直接向 DS18B20 发温度变换命令。适用于单片工作。 告警搜索命令0ECH执行后只有温度超过设定值上限或下限的片子才做出响应。 DS18B20的RAM指令如表3-3所示:表3-3 DS18B20的RAM指令表指 令约定代码功 能温度变换44H启动DS18B20进行温度转换,12位转换时最长为750ms(9位为93.75ms)。结果存入内部9字节RAM中。 读暂存器0BEH读内部RAM中9字节的内容 写暂存器4EH发出向内部RAM的3、4字节写上、下限温度数据命令,紧跟该命令之后,是传送两字节的数据。 复制暂存器48H将RAM中第3 、4字节的内容复制到EEPROM中。 重调 EEPROM0B8H将EEPROM中内容恢复到RAM中的第3 、4字节。 读供电方式0B4H读DS18B20的供电模式。寄生供电时DS18B20发送“ 0 ”,外接电源供电 DS18B20发送“ 1 ”。 3.4 光照度测量电路系统采用价格低廉的光敏电阻5测量光照度,因其没有良好的线性度,所以只能大致的测量。根据光敏电阻在不同的光照下有不同的阻值,经过A/D转换后输入到单片机内进行处理。其与ADC080410的连接电路如图3-5:图3-5 ADC0804与单片机的连接电路图ADC0804为8bit一路的A/D转换器,其输入电压范围在05v,转换速度小于100us,转换精度0.39,满足设计的精度要求。ADC0804管脚图如图3-6所示: 图3-6 ADC0804管脚定义图CS:Chip Select,与RD、WR 接脚的输入电压高低一起判断读取或写入与否,当其为低位准(low) 时会active。RD:Read。当CS 、RD 皆为低位准(low) 时,ADC0804 会将转换后的数字讯号经由DB7 DB0 输出至其它处理单元。WR:启动转换的控制讯号。当CS 、WR 皆为低位准(low) 时ADC0804 做清除的动作,系统重置。当WR 由01且CS 0 时,ADC0804 会开始转换信号,此时INTR 设定为高位准(high)。CLK IN、CLKR:频率输入/输出。频率输入可连接处理单元的讯号频率范围为100 kHz 至800 kHz。而频率输出频率最大值无法大于640KHz,一般可选用外部或内部来提供频率。若在CLK R 及CLK IN 加上电阻及电容,则可产生ADC 工作所需的时序。INTR:中断请求。转换期间为高位准(high),等到转换完毕时INTR 会变为低位准(low)告知其它的处理单元已转换完成,可读取数字数据。VIN(+)、VIN(-):差动模拟讯号的输入端。输入电压VINVIN(+)VIN(-),通常使用单端输入,而将VIN(-)接地。A GND:模拟电压的接地端。VREF2:模拟参考电压输入端。VREF 为模拟输入电压VIN 的上限值。若PIN9空接,则VIN 的上限值即为VCC。D GND:数字电压的接地端。DB7 DB0:转换后之数字数据输出端。Vcc:驱动电压输入端。3.5 数据显示电路 系统采用了LCD16028液晶显示屏,LCD1602液晶是一款很常用,也很易用的字符液晶。可以显示2行每行16个字符,对比度可调、黄绿色背光。与单片机的链接电路如图3-7:图3-7 LCD1602与单片机的连接电路图16028液晶也叫1602字符型液晶它是一种专门用来显示字母、数字、符号等的点阵型液晶模块它有若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符。每位之间有一个点距的间隔每行之间也有间隔起到了字符间距和行间距的作用,正因为如此所以他不能显示图形。LCD1602的管脚定义图如图3-8所示:图3-8 LCD1602管脚定义图VSS:为电源地 VDD:接5V电源正极 V0:为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会 产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。 RS:为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。 RW:为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。 E:(或EN)端为使能(enable)端。 D0D7:为8位双向数据端。 BLABLK:空脚或背灯电源。15脚背光正极,16脚背光负极。1602液晶模块内部的控制器共有11条控制指令,如表3-4所示:表3-4 控制命令表序号指令RSR/WD7D6D5D4D3D2D1D01清显示00000000012光标返回000000001*3置输入模式00000001I/DS4显示开/关控制0000001DCB5光标或字符移位000001S/CR/L*6置功能00001DLNF*7置字符发生存贮器地址0001字符发生存贮器地址8置数据存贮器地址001显示数据存贮器地址9读忙标志或地址01BF计数器地址10写数到CGRAM或DDRAM)10要写的数据内容11从CGRAM或DDRAM读数11读出的数据内容1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明:1为高电平、0为低电平)指令1:清显示,指令码01H,光标复位到地址00H位置。指令2:光标复位,光标返回到地址00H。指令3:光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左移 S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。指令4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 ;C:控制光标的开与关,高电平表示有光标,低电平表示无光标; B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。指令5:光标或显示移位 S/C高电平时移动显示的文字,低电平时移动光标。指令6:功能设置命令 DL:高电平时为4位总线,低电平时为8位总线 N:低电平时为单行显示,高电平时双行显示 F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。指令7:字符发生器RAM地址设置。指令8:DDRAM地址设置。指令9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。指令10:写数据。指令11:读数据。3.6 复位电路 为了确保系统中的电路温度可靠工作,复位电路是必不可少的部分 ,其第一功能就是高电平复位,高电平复位是在通电瞬间通过充电来实现的。手动复位是指通过接通一按键开关,使单片机进入复位状态。系统上电运行后,如果需要复位,只需通过手动复位就可以实现。本系统使用的复位电路如图3-9所示:图3-9 复位电路图3.7 键盘电路本设计采用的键盘扫面电路采用简单的低电平扫描方式,即采用开关的一端与单片机I/O口相连,另一端接地的方式,用单片机检测I/O口是否是低电平来判断键盘是否被按下。这样的方式可以方便键盘扫描部分的的编程。键盘电路如图3-10:图3-10 键盘电路图3.8 继电器控制电路单片机是一个弱电器件,一般情况下它们大都工作在5V甚至更低。驱动电流在mA级以下。而要把它用于一些大功率场合,比如控制电动机,显然是不行的.所以,就要有一个环节来衔接,这个环节就是所谓的功率驱动。继电器驱动就是一个典型的、简单的功率驱动环节。在这里,继电器驱动含有两个意思:一是对继电器进行驱动,因为继电器本身对于单片机来说就是一个功率器件;还有就是继电器去驱动其他负载,比如继电器可以驱动中间继电器,可以直接驱动接触器,所以,继电器驱动就是单片机与其他大功率负载接口。本设计采用的继电器控制电路如图3-11:图3-11 继电器控制电路图图中的三极管起开关的作用,当单片机输出高电平时,三极管导通,继电器吸合。单片机输出低电平时,继电器断开。二极管起保护作用,防止继电器产生的感应电动势烧坏三极管或继电器。3.9 电源电路由于STC89C51的工作电压为+5V,所以电源需要输出+5V稳定电压可以使单片机可以稳定正常的工作,稳压芯片选用7805,电源电路如图3-12所示:图3-12 电源电路图第四章 程序设计4.1 主程序流程图启动继电器控制电路,调节参数NY各参数与设置比较,是否需要调节?各参数显示结束开始初始化和位定义清标志清显示扫描键盘各参数采集主程序的流程如图4-1:图4-14.2 参数测量子程序流程图参数测量子程序流程如图4-2: YN开始声明变量与函数调用显示函数启动A/D完成转换?读取转换值结束图4-2 参数测量子程序流程图子程序开始先声明变量和调用的函数后,调用显示函数,启动模数转换器ADC0804进行模数转换,转化如果未完成,单片机进行等待。当转换完成后,单片机读取转换后的数据,然后循环调用显示函数和进行模数转换。4.3 键盘扫描子程序流程键盘扫描子程序流程如图4-3:图4-3 键盘扫描流程图 键盘扫描子程序一开始先扫描按键,判断是否有按键被按下,确定有按键被按下时判断被按下的是哪个按键,如果是按键S1,系统将进入设置模式,这时按键S2和S3被启用,进入那个参数的设置取决于按键S1被按下的次数,S1被按下一次,进行温度值设置,S1被按下两次,进行湿度值设置,S1被按下三次,进行光照度设置,当按下第四次,返回正常显示,按键S2和S3被禁用。按键S2和S3作用是调节参数值,每次按下S2,当前设置的参数值就加一。每次按下S3,当前设置的参数值就减一。S4是切换显示按键,当S4被按下,判断S4被按下的次数,一次是显示温度值,两次是显示湿度值,三次是显示光度值。参考文献1 梅晓榕,柏桂珍,张卯瑞.自动控制元件及线路M.北京:科学出版社,20072 张义和,王敏男,许宏昌,余长春.例说51单片机(C语言版)M.北京:人民邮电出版社,2010,63 湿度传感器HS1101的原理与应用EB/OL.中国电子科技信息网.4 胡汉才.单片机原理与接口技术M.清华大学出版社,1996.5 黄贤斌,郑筱霞.传感器原理与应用M.北京:高等教育出版社. 成都:电子科技大学出版社,2004,3(2009.1重印)6 何立民.单片机应用系统设计M.北京:北京航天航空出版社.1990,50-4907 刘笃仁,韩保君.传感器原理及应用技术M.机械工业出版社.2003,8 8 1985赵亮.液晶显示模块LCD1602应用J.电子制作,2007(3)9 王勇等.凌阳单片机原理及其毕业设计精选M.科学出版社10 童诗白.模拟电路基础M,北京:高等教育出版社,200111 马忠梅,籍顺心,张凯等.单片机的C语言应用程序设计M.北京航天航空大学出版社,200312 M考夫曼,AH塞得.电子计算手册M.国防科技出版社.13 王毅.单片机器件应用手册M.北京:人民邮电出版社,1994总结本次课程设计对于我们有很大的帮助,大学已经度过了三年,但是我们还只是停留在理论的学习上。如何把理论的知识运用到实践中去,课程设计便是一个很好的方法。在设计过程中,需要大量的查阅设计要求和指导书大量的网络资料和数据手册,力求自己的设计更加完善和符合标准。在设计的过程中,我们会遇到很多我们平时没有遇到的问题,而这些问题,需要我们靠自己的探索去解决。而在这一过程,恰恰锻炼了我们独立发现问题和解决问题的能力!另外,我们在完成的过程中也熟悉了单片机的功能以及引脚的作用,同时加深了对主要单片机的应用和认识。这次设计给我们提供了一个很好的实践平台,能学到课堂上没有的东西,实践过程中我们巩固了理论知识。但是,由于水平有限,难免会有错误,还望老师批评指正。由此我可用更好地了解到自己的不足,以便课后加以弥补。附录1 系统总体电路图附录2 系统源代码 #include #include#include#include#define uchar unsigned char#define uint unsigned int#define T_cont 0.0625;#define DataPort P0 /LCD接口#define ReadPort P2 /AD读取uchar code temp=temp: ;uchar code tempset=tempset: ;uchar code hun=hun: ;uchar code hunset=hunset: ;uchar code inte=inte: ;uchar code inteset=inteset: ;uchar code set=step in set!;uchar tempset1,s1num,s4num,hunset1,hun1,hun2,inteset1,inte1;bit T_sign;float temp1=0;uchar t_bai,t_shi,t_ge,t_feng,t_miao,sshi,sge, h_bai,h_shi,h_ge,hshi,hge, i_bai,i_shi,i_ge,ishi,ige;sbit s1=P10;sbit s2=P11;sbit s3=P12;sbit s4=P13;sbit relay1=P15;sbit relay2=P16;sbit relay3=P17;sbit cs1=P30;sbit lcdrs=P31;sbit DS=P32;sbit lcdrw=P33;sbit lcden=P34;sbit cs2=P35;sbit wr=P36;sbit rd=P37;/void delay(uint z) /延时函数uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);void dsreset(void) /send reset and initialization command uint i; /DS18B20初始化 DS=0; i=103; while(i0)i-; DS=1; i=4; while(i0)i-;bit tmpreadbit(void) /read a bit 读一位 uint i; bit dat; DS=0;i+; /i+ for delay 小延时一下 DS=1;i+;i+; dat=DS; i=8; while(i0)i-; return (dat);uchar tmpread(void) /read a byte date 读一个字节 uchar i,j,dat; dat=0; for(i=1;i=8;i+) j=tmpreadbit(); dat=(j1); /读出的数据最低位在最前面,这样刚好/一个字节在DAT里 return(dat); /将一个字节数据返回void tmpwritebyte(uchar dat) /write a byte to ds18b20 /写一个字节到DS18B20里 uint i; uchar j; bit testb; for(j=1;j1; if(testb) /write 1 写1部分 DS=0; i+;i+; DS=1; i=8;while(i0)i-; else DS=0; /write 0 写0部分 i=8;while(i0)i-; DS=1; i+;i+; void readtemperature() /读温度函数uint y; uchar T_L=0;uchar T_H=0;uchar k;dsreset();delay(1);tmpwritebyte(0xcc);tmpwritebyte(0x44);dsreset();delay(1);tmpwritebyte(0xcc);tmpwritebyte(0xbe);T_L=tmpread();T_H=tmpread();k=T_H&0x08;if(k=0x08)T_sign=1;elseT_sign=0;T_H=T_H&0x07;temp1=(T_H*256+T_L)*T_cont;temp1=temp1*100;t_bai=(uint)temp1/10000;y=(uint)temp1%10000;t_shi=y/1000;y=(uint)y%1000;t_ge=y/100;y=(uint)y%100;t_feng=y/10;t_miao=(uint)y%10;/void inteadc0804() /光照度adc转换子程序与数据处理 rd = 1;wr = 1; /读ADCReadPort = 0xff; /P1置位cs1=0;wr = 0;wr = 1; /启动ADCrd=0; /开始读转换后数据_nop_(); _nop_(); /稍延时,等待读完数inte1 = ReadPort; /读出的光照度数据赋与inte1rd = 1; cs1 = 1; /读数完毕 i_bai = inte1/100; /百位数 i_shi = (inte1%100)/10; /十位数 i_ge = (inte1%10); /个位数 void hunadc0804() /湿度adc转换子程序与数据处理 rd = 1;wr = 1; /读ADCReadPort = 0xff; /P1置位cs2=0;wr = 0;wr = 1; /启动ADCrd=0; /开始读转换后数据_nop_(); _nop_(); /稍延时,等待读完数delay(20);hun2= ReadPort; /读出的湿度数据赋与hun1rd = 1; cs2 = 1; /读数完毕hun1=hun2/2.55;h_bai = hun1/100; /百位数 h_shi = (hun1%100)/10; /十位数 h_ge = (hun1%10); /个位数/void write_com(uchar com) /lcd写命令函数lcdrs=0;lcdrw=0;lcden=0;P0=com;delay(10); /延时lcden=1; /下三行表示E高脉冲到来就开始转换delay(10);lcden=0;void write_data(uchar date) /lcd写数据函数lcdrs=1;lcdrs=1;lcdrw=0;lcden=0;P0=date;delay(10);lcden=1;delay(10);lcden=0;void init() /初始化函数s1=1;tempset1=25;hunset1=50;inteset1=15;lcdrw=0;lcden=0;write_com(0x38);delay(10);write_com(0x0f);delay(10);write_com(0x06);delay(10);write_com(0x01);delay(10);void print(uchar a,uchar *str) /输出字符write_com(a);while(*str!=0) write_data(*str+);*str=0;void print1(uchar a,uchar t) /输出18b20数据到1602write_com(a);write_data(t);void print2(uchar a1,uchar t1) /输出设置温度数据到1602uchar sshi,sge; sshi=t1/10;sge=t1%10;write_com(0x80+a1);write_data(sshi+0x30);write_data(sge+0x30);/void keyscan()/键盘扫描函数rd=0;if(s1=0)delay(5);if(s1=0)s1num+;while(!s1);if(s1num=1)write_com(0x01);print(0x80,tempset);print1(0x8e,0x43);print1(0x80+11,0x2e);print1(0x80+12,0+0x30);print1(0x80+13,0+0x30);write_com(0x80+9);write_com(0x0f);delay(20); if(s1num=2)write_com(0x01);print(0x80,hunset);print1(0x8b,0x30);print1(0x8d,0x25); print1(0x8e,0x20);write_com(0x80+11);write_com(0x80+11);if(s1num=3)write_com(0x01);print(0x80,inteset);print1(0x8b,0x30);print1(0x80+12,0+0x30);print1(0x80+13,0+0x30);print1(0x8d,0x4d); print1(0x8e,0x56);write_com(0x80+11);if(s1num=5)s1num=0;write_com(0x01);s4num=1;if(s1num!=0)if(s1num=1)if(s2=0)delay(5);if(s2=0)while(!s2);if(s1num=1)tempset1+;write_com(0x80+10);print2(9,tempset1);if(tempset1=40)tempset1=15;if(s3=0)delay(5);if(s3=0)while(!s3);if(s1num=1)tempset1-;write_com(0x80+11); print2(9,tempset1);if(tempset1=15)tempset1=40;if(s1num=2)if(s2=0)delay(5);if(s2=0)while(!s2);if(s1num=2)hunset1+;write_com(0x80+10);print2(11,hunset1);if(hunset1=90)hunset1=10;if(s3=0)delay(5);if(s3=0)while(!s3);if(s1num=2)hunset1-;write_com(0x80+11);print2(11,hunset1);if(hunset1=10)hunset1=90; if(s1num=3)if(s2=0)delay(5);if(s2=0)while(!s2);if(s1num=3)inteset1+;write_com(0x80+10);print2(9,inteset1);if(inteset1=25)inteset1=0;if(s3=0)delay(5);if(s3=0)while(!s3);if(s1num=3)inteset1-;write_com(0x80+11);print2(9,inteset1);if(inteset1=0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- iceshelf对混合层分层的影响-洞察阐释
- 小学五年级上册安全工作计划(18篇)
- 车辆挂靠汽车美容养护合作协议范本
- 产业园区场地预租及招商引资合同
- 高科技园区场地无偿租赁协议
- 车库及车位租赁管理服务协议
- 2025电子产品购销版合同
- 2025员工劳动合同范本
- 2025合同范本企业合作运营协议模板
- 2025年上海市物业服务合同示范文本
- 英文版中国故事绘本愚公移山
- 在线网课知慧《流行病学与循证医学(山盟-山东第一医科大学)》单元测试考核答案
- CATIA知识工程参数化教程课件
- 2024年1月浙江省高考地理真题 Word版含解析
- 林木种质资源调查表(新表)
- 孕期体重科学管理1护理课件
- 儿童出国留学规划方案
- 《围手术期管理》课件
- 消化系统疾病的病史采集与评估
- 安徽省小餐饮信息公示卡注销申请表【模板】
- NB-T 47013.7-2012(JB-T 4730.7) 4730.7 承压设备无损检测 第7部分:目视检测
评论
0/150
提交评论