基于单片机的大棚温度控制系统(共15页).doc

上传人:飞****2 文档编号:14247265 上传时间:2022-05-03 格式:DOC 页数:15 大小:223.50KB
返回 下载 相关 举报
基于单片机的大棚温度控制系统(共15页).doc_第1页
第1页 / 共15页
基于单片机的大棚温度控制系统(共15页).doc_第2页
第2页 / 共15页
点击查看更多>>
资源描述

《基于单片机的大棚温度控制系统(共15页).doc》由会员分享,可在线阅读,更多相关《基于单片机的大棚温度控制系统(共15页).doc(15页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、精选优质文档-倾情为你奉上 基于单片机的大棚温度控制系统 目 录 第1节 引 言31.1 温度控制系统概述31.2 本设计任务和主要内容4第2节 系统主要硬件电路设计52.1 系统硬件结构52.2 单片机主机系统52.3 温度检测的设计62.4 ISD1420语音芯片7第3节 系统的软件设计9 3.1 系统控制流程图93.2 温度控制系统程序93.3 温度检测子程序设计123.4 语音读写程序13基于单片机的大棚温度控制系统第1节 引言大棚蔬菜满足了人民能一年四季吃到新鲜蔬菜的愿望,为提供更多量、更有营养价值的蔬菜,智能的大棚温度控制系统已成为农民的迫切需要。以80C51单片机为主的温度控制系

2、统可对大棚内部的温度和蔬菜所需的正常温度进行比较,以人性化的方式向大棚管理人员提供温度调节的信息,帮助农民提高农作物的产量,减少农民的工作量。温度控制系统采用80C51单片机为核心。大棚温度经AD590温度传感器采样后变换为模拟电压信号,经低通滤波滤掉干扰信号后送放大器,信号放大后送模/数转换器转换为数字信号送单片机,单片机根据输入的温度得出结果,通过ISD1420语音芯片提醒农民作出适当的温度调节。该系统成本低,操作方便,设计人性化,具有良好的推广价值。1.1温度控制系统概述随着生活条件的不断改善,人们更关注自身的健康,绿色蔬菜尤其受到重视。大棚种植充分满足了人们的需求,但对于和农作物生长密

3、切相关的大棚温度的控制,对大部分没有专业知识的农民来说着实是一件头疼的事。种植高产量、高质量的农作物并非是一件简单的事,它不仅涉及遗传学,还与各地的气候、土壤、水分、温度、CO2含量等有密切的关系。对于大棚种植而言,良好的物种、本地适合种植的物种及土地酸碱度都是可以通过农民长期的种植经验获得的。但是温度是农民不能轻易解决的问题,而且温度的变化幅度大,不易人工控制,对于农民来说时刻关注作物的生长温度是个庞大的工作量。“白天太阳很好,阳光充足,外面的温度零下5度如果大棚的薄膜没有破,里面照样产生有25度以上的温度,从而地温也可以得到提升至15度左右。漆黑大风的夜晚棚内的温度会大幅度降低,能降低到零

4、下5度以下,停止刮风可以恢复到较地温少低点为止。”这些专业知识对于常年种植的农民也未必了解。产量提高不了,收入状况不佳会牵制农民的经济,减弱农民投身于农业的积极性,对地区乃至国家来说都是不容小觑的事实。应用于大棚种植的温度控制系统解决了长期以来困扰农民的问题,它的制作成本低廉,应用广泛,对农民自身的素质要求不高,便于农民操作。更重要的是,它不仅帮助农民节约了大量,还在无形之中提高了作物的产量,增加了农民的收入,满足了人们对大棚蔬菜的需求。要使全民步入小康的行列,重要的是提高农民的经济水平,只有每户农民家庭的生活都有了保障,才能进行各方面上层建筑的建设。基于单片机的大棚温度控制系统是个小型的软硬

5、件结合的产品,它针对个体农民的需要设计,适于中小面积的大棚种植。该温度控制系统所包含的提醒功能极具亲切性,它使用ISD1420语音芯片,这种芯片可重现优质原声,没有常见的背景噪音。农民可以根据自己的喜好录入属于自己的提示音,也可经常更换提示音。1.2 本设计任务和主要内容本论文旨在研究基于单片机的大棚温度控制系统,介绍温度传感器对大棚温度收集的具体设计,以及相关硬件的设计和软件编程。主要内容有: 温度控制系统的特点 单片机温度控制系统的组成及工作原理 温度检测的详细设计 各部分的软件编程。 第2节 系统主要硬件电路设计2.1 系统硬件结构 系统的硬件结构如下图2-1所示: ALEP1 P0 8

6、0C51 RD WR RESETP2 执行控制接口温度传感器1-8个 8155ISD1420 图2-1 系统结构图 2.2 单片机主机系统该系列单片机是采用高性能的静态80C51设计由先进CMOS工艺制造并带有非易失性Flash程序存储器全部支12时钟和6时钟操作P89C51X2 和P89C52X2/54X2/58X2分别包含128字节和256字节RAM32条I/O口线3个16位定时/计数器6输入4优先级嵌套中断结构1个串行I/O 口可用于多机通信I/O扩展或全双工UART以及片内振荡器和时钟电路。此外,由于器件采用了静态设计,可提供很宽的操作频率范围,频率可降至0。可实现两个由软件选择的节电

7、模式,空闲模式和掉电模式,空闲模式冻结CPU但RAM定时器,串口和中断系统仍然工作掉电模式保存RAM的内容但是冻结振荡器导致所有其它的片内功能停止工作。由于设计是静态的,时钟可停止而不会丢失用户数据,运行可从时钟停止处恢复。图2-2 单片机主机系统图2.3 温度检测的设计系统测温采用AD590温度传感器,AD590是美国模拟器件公司生产的单片集成两端感温电流源。它的主要特性如下: 1流过器件的电流(mA)等于器件所处环境的热力学温度(开尔文)度数;即: , (2-1) 式中:I流过器件(AD590)的电流,单位为mA;T热力学温度,单位为K。 2AD590的测温范围为-55+150; 3AD5

8、90的电源电压范围为4V30V; 4输出电阻为710MW; 5精度高。 AD590温度传感器输出信号经放大电路放大10倍,再送入模/数转换器ADC0804,转换后送单片机。根据AD590温度传感器特性以及放大10倍后的电压值与现场温度的比较发现,实际温度转换后送入单片机的值与按键输入数值之间有一定的差值,模/数转换器送入单片机的数值是按键输入值得2.5倍。由于单片机不能进行小数乘法运算,所以先对按键输入进行乘5,然后根据运算结果及程序状态字的状态再进行循环右移一位,如果溢出标志位为低电平时直接对累加器进行一次带进位循环右移,如果溢出标志位为高电平时,先对进位标准位CY位置为高电平,然后再进行一

9、次带进位循环右移,通过上述操作使按键输入的温度值与模/数转换器送入单片机的温度值相统一。 图2-3 感温部分的核心电路2.4 ISD1420语音芯片 ISD1420为美国ISD公司出品的优质单片语音录放电路,由振荡器、语音存储单元、前置放大器、自动增益控制电路、抗干扰滤波器、输出放大器组成。一个最小的录放系统仅由一个麦克风、一个喇叭、两个按钮、一个电源、少数电阻电容组成。录音内容存入永久存储单元,提供零功率信息存储,这个独一无二的方法是借助于美国ISD公司的专利-直接模拟存储技术(DAST TM)实现的。利用它,语音和音频信号被直接存储,以其原本的模拟形式进入EEPROM存储器。直接模拟存储允

10、许使用一种单片固体电路方法完成其原本语音的再现。不仅语音质量优胜,而且断电语音保护。一、特点:1)用方便的单片录放系统,外部元件最少2)现优质原声,没有常见的背景噪音3)放音可由边沿或电平触发4)无耗电信息存储,省掉备用电池5)信息可保存100年,可反复录放10万次6)无需专用编程或开发系统7)较强的分段选址能力可处理多达160段信息8)具有自动节电模式9)录或放后立即进入维持状态,仅需0.5A电流10)单一5伏电源供电。二、电特性:1)工作电压:5V;2)静态电流:典型值0.5A,最大值2A;3)工作电流:典型值15mA,最大值30mA(16欧姆)。图2-4 ISD1420引脚说明及外形图第

11、3节 系统的软件设计3.1 系统控制流程图系统总体设计思想是以80C51单片机为控制核心,整个系统硬件部分包括温度检测部分、控制执行部分及ISD1420语音芯片。系统利用单片机获得温度传感器数据并与系统设计值进行比较,根据比较结果分别控制执行系统。系统控制流程图如图3-1所示。NY系统初始化读取时间时间表值与当前控制状态是否一致?获取温度与设定值比较温度差控制装置显示信息图3-1 系统控制流程图3.2 温度控制系统程序单片机温度控制系统由硬件和软件组成,上述硬件原理图搭建完成上电之后,我们还不能实现对温度的控制,需要给单片机编写程序,下面给出了温度控制系统的编程方法。 ORG 00H STAR

12、T: ANL P1,#00H;显示00 JB P3.4,$ ;T0=0?有键按下? LCALL DELAY1 ;消除抖动 JNB P3.4,$;T0=1?放下? MOV R0,#00;计温指针初值 L1: MOV A, R0 ;计温指针载入ACC MOV P1, A ;输出至P1显示 MOV R5, #10 ;延时1秒 A1: MOV R6, #200 D1: MOV R7, #248 ;0.5毫秒 JNB P3.4,L2 ;第2次按下T0? DJNZ R7,$ DJNZ R6,D1 DJNZ R5,A1 INC A DA A MOV R0, A JMP L1 L2: LCALL DELAY1

13、 ;第2次按消除抖动 JB P3.4,L3 ;放开了没?是则跳至L3停止 JMP L2 L3: MOV A,R0 LCALL CHANGE MOV 31H, A ;下限温度存入31H JB P3.5,$ ;T1=0?有键按下? LCALL DELAY1 ;消除抖动 JNB P3.5,$ ;T1=1?放开? MOV R0,#00 ;计温指针初值 L4: MOV A,RO ;计温指针载入ACC MOV P1, A ;显示00 MOV R5,#10 ;延时1秒 A2: MOV R6,#200 D2: MOV R7,#248 ;0.5毫秒 JNB P3.5,L5 ;第二次按下T1DJNZ R7,$ D

14、JNZ R6,D2 DJNZ R5, A2 ADD A, #01H DA A MOV R0, A JMP L4 L5: LCALL DELAY1 ;第2次按消除抖动 JB P3.5,L6 ;放开了?是则跳至L6 JMP L5 L6: MOV A, RO ; LCALL CHANGE MOV 30H,A ;上限温度存入30H DELAY1:MOV R6,#60 ;30毫秒 D3: MOV R7, #248 DJNZ R7, $ DJNZ R6, D3 RET CHANGE:MOV B,#5 MUL AB JNZ D4 SETB C D4: RRC A RET MOV 32H,#0FFH ;32H

15、旧温度寄存器初值 AAA: MOVX R0, A;使BUS为高阻抗并令ADC0804开始转换 WAIT: JB P2.0,ADC ;检测转换完成否 JMP WAIT ADC: MOVX A,RO ;将转换好的值送入累加器 MOV 33H,A ;将现在温度值存入33H CLR C ;C=0 SUBB A,32H JC TDOWN ;C=0取入值较大,表示温度上升,C=1表示下降 TUP: MOV A, 33H ;将现在温度值存入A CLR C SUBB A,30H ;与上限温度作比较 JC LOOP ;C=1时表示比上限小须加热,C=0表示比上限大,停止;加热 SETB P2.1 JMP LOO

16、P TDOWN: MOV A,33H ;将现在温度值存入A CLR C SUBB A,31H ;与下限温度作比较 JNC LOOP ;C=1时表示比下限小,须加热,C=0表示比下限大 CLR P2.1 ;令P2.1动作 LOOP: MOV 32H,33H CLR A MOV R4,#0FFH ;延时 DJNZ R4,$ JMP AAA END 3.3温度检测子程序设计 温度传感器是温度控制系统的重要组成部分,缺少了它则功能不能实现。温度检测子程序如下: MOV DPTR,DS_TABLE ;指向器件序号表入口LOOP: MOV R7,7 ;逐个读取温度 MOV A,#055H ;ROM匹配 L

17、CALL WRITE_SERIAL LCALL DELAY MOV A,#44H ;发出温度转换命令 LCALL WRITE_1820LCALL DELAY ;延时750us(12位)LCALL INIT_1820 ;准备读温度前先复位LCALL DELAY LCALL WRITE_1820MOV A,#0BEH ;发出读温度命令LCALL WRITE_1820LCALL READ_1820 ;保存读出的温度数据DJNZ R7,LOOPCLR P1.4RET 3.4 语音读写程序 在参考了大量的书籍和网上资料后,有关ISD1420的读写程序以C语言为主,由于自身能力有限,所以在此也参考了别人的

18、程序用C语言进行语音芯片的编程。程序如下:#include#includeISD1420.h/0x000x09 对应数字09Voice_data=0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d;sbit CLK_595=P02;sbit DAT=P00;sbit ST=P01;void display(uchar dat) /595发送一个字节 uchar i; for(i=0;i=1; /数据移一位 /短延时函数:nNop()/*void nNop(uint i)for( ;i0;i-) ; */长延

19、时函数:LongDelay()void LongDelay(uint i) uint j; for(;i0;i-) for(j=1000;j0;j-); /指定段播放函数:Sound_Play()void Sound_Play1(uchar Addr)/PLAYL = 1;display( (Addr2) & 0x3c); ST=0; ST=1; LongDelay(50); PLAYL = 0; LongDelay(60); PLAYL = 1; void Sound_Play2(uchar Addr)/PLAYL = 1; display( (Addr2) & 0x3c); ST=0; ST=1; LongDelay(50); PLAYL = 0; LongDelay(260); PLAYL = 1; void InitIO(void) PLAYL = 0; PLAYE = 0; P0 = 0x00; void Disable(void) PLAYL = 1; PLAYE = 1;专心-专注-专业

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com