ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:215.78KB ,
资源ID:26932870      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/26932870.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于单片机的大棚温度控制系统1.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于单片机的大棚温度控制系统1.docx

1、基于单片机的大棚温度控制系统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度左右。漆黑大风的夜晚棚内的温度会大幅度降低,能降低到零下5度以

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

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

6、20图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。可实现两个由软件选择的节电模式,空闲模式和掉电模式,空闲模式冻结CPU但RAM定时器,串口和中断系统仍然工作掉电模式

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

8、器输出信号经放大电路放大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引脚说明及外形图第3节 系统的软件设计3.1 系统控制流程图系统总体设计思想是以80C51单片机为控制核心,

11、整个系统硬件部分包括温度检测部分、控制执行部分及ISD1420语音芯片。系统利用单片机获得温度传感器数据并和系统设计值进行比较,根据比较结果分别控制执行系统。系统控制流程图如图3-1所示。图3-1 系统控制流程图3.2 温度控制系统程序单片机温度控制系统由硬件和软件组成,上述硬件原理图搭建完成上电之后,我们还不能实现对温度的控制,需要给单片机编写程序,下面给出了温度控制系统的编程方法。 ORG 00H START: ANL P1,#00H;显示00 JB P3.4,$ ;T0=0?有键按下? LCALL DELAY1 ;消除抖动 JNB P3.4,$;T0=1?放下? MOV R0,#00;计

12、温指针初值 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 ;第2次按消除抖动 JB P3.4,L3 ;放开了没?是则跳至L3停止 JMP L2 L3: MOV A,R0 LCALL CHANGE MOV 31H, A ;下限温度存入31H J

13、B 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,$ DJNZ R6,D2 DJNZ R5, A2 ADD A, #01H DA A MOV R0, A JMP L4 L5: LCALL DELAY1 ;第2次按消除抖动 JB P3.5,L6

14、 ;放开了?是则跳至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旧温度寄存器初值 AAA: MOVX R0, A;使BUS为高阻抗并令ADC0804开始转换 WAIT: JB P2.0,ADC ;检测转换完成否 JMP WAIT ADC: MOVX

15、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 LOOP TDOWN: MOV A,33H ;将现在温度值存入A CLR C SUBB A,31H ;和下限温度作比较 JNC LOOP ;C=1时表示比下限小,须加热,C=0表示比下限大 C

16、LR 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匹配 LCALL WRITE_SERIAL LCALL DELAY MOV A,#44H ;发出温度转换命令 LCALL WRITE_1820LCALL DELAY ;延时750us(12位)L

17、CALL INIT_1820 ;准备读温度前先复位LCALL DELAY LCALL WRITE_1820MOV A,#0BEH ;发出读温度命令LCALL WRITE_1820LCALL READ_1820 ;保存读出的温度数据DJNZ R7,LOOPCLR P1.4RET 3.4 语音读写程序 在参考了大量的书籍和网上资料后,有关ISD1420的读写程序以C语言为主,由于自身能力有限,所以在此也参考了别人的程序用C语言进行语音芯片的编程。程序如下:#include#includeISD1420.h/0x000x09 对应数字09Voice_data=0x00,0x01,0x02,0x03,

18、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-) ; */长延时函数:LongDelay()void LongDelay(uint i) uint j; for(;i0;i-) for(j=1000;j0;j-); /指定段播放函数:Sound_

19、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;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1