粮仓温度监控系统数据的传输与设计.docx
- 文档编号:7860945
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:36
- 大小:865.49KB
粮仓温度监控系统数据的传输与设计.docx
《粮仓温度监控系统数据的传输与设计.docx》由会员分享,可在线阅读,更多相关《粮仓温度监控系统数据的传输与设计.docx(36页珍藏版)》请在冰豆网上搜索。
粮仓温度监控系统数据的传输与设计
XXXXXxXXXXX
毕业设计
论文题目粮仓温度监控系统数据的传输与设计
2016年12月1日
粮仓温度监控系统数据的传输与设计
覃丽芬
内容摘要
本文论述了一种以89C51单片机与DS18B20和SHT11传感器构成的温湿度检测、智能监控子系统。
整个系统是由上位计算机、测温湿度分机组成。
上位计算机通过通信电缆与各测温分机进行实时通信,取得粮仓温度、湿度等数据,经过智能分析以数据报表、温度曲线图等形式显示给用户,方便直观,最后由智能监控系统根据实际情况做出相应决策。
考虑到系统实际应用中,测温分机与测温主机间有较长的传输距离,本设计采用RS-485总线实现远程通信。
在本系统中,多点测温是设计的关键部分。
选用美国DALLAS公司生产的一线式数字温度传感器DS18B20,可以方便地实现多点测温。
关键词:
STC89C51单片机;DS18B20;显示电路;RS-485总线
第1章 绪 论
对中国这样一个13亿多人的发展中大国,粮食安全一直是“天字第一号”的大问题。
近些年虽然由于粮食产量还在继续增长,但农业发展形势严峻,农业总体产出率低,粮食价格不高,农业用地不断减少,农民种粮意愿及农业人口的下降,都在持续不断的影响着粮食安全,如果处理不当,有可能会诱发粮食危机,甚至损害经济增长,并危及社会稳定。
在这种背景下,中国对粮食安全的担忧大为增加。
如何解决粮食安全问题?
我想从建立国有战略储备粮制度,以及建立现代粮库管理系统,从科学管理的手段的角度,可以更好的辅助解决粮食安全问题。
使用计算机自动监测系统,对粮仓内的温度、湿度的测量,由计算机实现库内温度湿度的高低超限报警,并可智能地控制风机、谷物冷却器及粮食干燥机等辅助设计,从而使仓内粮食达到并保持安全的储藏条件,利于粮食战略安全。
粮食储备库中主要的物理参数是粮食的温度和湿度。
如何实现这些参数的快速准确的测量是研究粮情监控系统的关键。
本系统是一个基于粮仓温湿度的集散式监控系统。
可采集多点温度、湿度数据,并远距离上传到上位机上。
可选择定时(每小时或每天)将数据自动打印出来供随时监管或存档。
还可将数据存入磁盘形成数据文件,便于保存和随时用微机查看留档的文件。
系统采用智能化软件控制,根据需要可设置温、湿度上下界限报警点,当仓库(粮食或其它)物品的温、湿度超过上、下极限值时,主控微机自动发出音响式警报,高温高湿和低温低湿分别给出上滑音和下滑音的不同音调的警报。
管理人员闻讯即可及时采取控温湿措施,此外,计算机还要给下位机发出命令打开控制温、湿度调控设备和通风设备。
本文介绍一套基于单片机的温湿度监控系统,采用计算机实现自动实时检测与控制,能够明显提高粮食的贮存质量,减少仓储保管人员,带来较大的经济效益。
第2章系统总设计方案
2.1数字温度计设计方案论证
2.1.1方案一
由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,其中还涉及到电阻与温度的对应值的计算,感温电路比较麻烦。
而且在对采集的信号进行放大时容易受温度的影响出现较大的偏差。
2.1.2方案二
考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,电路简单,精度高,软硬件都以实现,而且使用单片机的接口便于系统的再扩展,满足设计要求。
从以上两种方案,很容易看出,采用方案二,电路比较简单,费用较低,可靠性高,软件设计也比较简单,故采用了方案二。
2.2系统总体框图
总体的设计思路是通过温度传感器将温度转换为电量输出,由A/D转换器对模拟信号进行数字化,被数字化的信号经过单片机处理后,送至显示器及执行,完成对温度的告警功能,总体设计框图如图2-1所示。
图2-1总体设计框图
2.3系统的功能
温度测量功能:
利用DS18B20数字温度传感器实现对温度进行准确的测量,使温度值显示到数码管上。
2.4本系统优点
2.4.1线路简单
DS18B20与单片机之间一根导线进行数据传输,不需要对数据进
行转换,接线简单。
2.4.2温度测量准确
DS18B20是常用的温度传感器,具有体积小,硬件开销低,抗干扰能力强,精确度高的特点。
DS18B20的温度分辨率为0.0625,所以对温度值可以进行准确的温度转换。
第3章主要硬件模块介绍
3.1SCT单片机介绍
单片机是单片机微型计算机(SingleChipMicrocomputer)简称,所谓单片机,通俗的来讲,就是把中央处理器CPU(CentralProcessingUnit),存储器(memrory),定时器,I/O(Input/Output)接口电路等一些计算机的主要功能部件集在一块集成路的芯片上的微型计算机。
单片机特别适合于控制领域,故又称为微型控制器MCU(MicroControlUnit)。
中文“单片机”的称呼是由英文名称“SingleChipMicrocomputer”直接翻译而来的。
单片机只要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。
3.1.1单片机功能介绍
单片机是随着大规模集成电路的出现极其发展,将计算机的CPU,RAM,ROM,定时/计数器和多种I/O接口集成在一片芯片上,形成了芯片级的计算机,因此单片机早期的含义称为单片微型计算(singlechipmicrocomputer).它拥有优异的性价比、集成度高、体积小、可靠性高、控制功能强、低电压、低功耗的显著优点.主要应用于智能仪器仪表、工业检测控制、机电一体化等方面,并且取得了显著的成果.单片机应用系统可以分为:
(1)最小应用系统是指能维持单片机运行的最简单配置的系统。
这种系统成本低廉,结构简单,常构成一些简单的控制系统,如开关状态的输入/输出控制等。
片内ROM/EPROM的单片机,其最小应用系统即为配有晶振,复位电路,电源的单个单片机.片内无ROM/EPROM的单片机,其最小应用系统除了外部配置晶振,复位电路,电源外,还应外接EPROM或EEPROM作为程序存储器用.
(2)最小功耗应用系统是指为了保证正常运行,系统的功耗最小.(3)典型应用系统是指单片机要完成工业测控功能所必须的硬件结构系统。
3.1.2STC89C51单片机引脚及功能介绍
STC89C51单片机引脚图如图3-1所示
图3-1单片机引脚图
单片机的40个引脚大致可分为4类,电源、时钟、控制、I/O引脚。
1、电源:
(1)VCC—芯片电源,接+5V;
(2)VSS—接地端;
2、时钟XTAL1、XTAL2—晶体振荡电路反相输入端和输出端。
3、控制线:
控制线共有4根
(1)ALE/PROG:
地址锁存允许/片内EPROM编程脉冲
ALE功能:
用来锁存PO口送出的低8位地址新门户
PROG功能:
片内有EPROM的芯片,在EPROM编程期间,
此引脚输入编程脉冲。
(2)PSEN:
外ROM读选通信号。
(3)EA/Vpp:
内外ROM选择/片内EPROM编程电源。
EA功能:
内外ROM选择端。
Vpp功能:
片内有EPROM的芯片,在EPROM编程期间,
施加编程电源Vpp。
4、I/O线
89C51共有4个8位并行I/O端口;P0、P1、P2、P3口,共有32个引脚。
P3口还具有第三功能,用于特殊信号输入输出和控制信号(属于控制总线)。
拿到一块芯片,想要使用它,首先必须要知道怎样连线,我们用的一块称之为89C51的芯片,下面我们就看一下如何给它连线。
1、电源:
这当然是必不可少的了。
单片机使用的是5V电源,其中正极接40的管脚,负极(地)接20管脚。
2、振荡电路:
单片机是一种时序电路,必须供给脉冲信号才能正常工作,在单片机内部已集成了振荡器,使用晶体振荡器,接18、19脚。
3、复位管脚
EA管脚:
EA管脚接到正电源端。
至此,一个单片机就接好了,通上电,单片机就开始工作了。
3.2系统模块
本系统采用STC89C51单片机作为控制核心,该系统电路主要是由单片机、排阻、显示器、蜂鸣器、DS18B20温度传感器、晶体等器件组成的电路。
图3-2系统模块图
3.2.2主控制器
单片机的时钟产生方式有内部时钟和外部时钟两种,本系统采用的内部时钟方式。
最常用的内部时钟是外接晶体和电容组成的并联谐振回路。
振荡晶体可在1.2M-12M之间。
电容值无严格要求,但电容的取值对震荡频率输出的稳定性、大小和震荡电路起振速度有少许影响,一般可在20pF-100pF之间的取值。
振荡电路如图3-3晶振电路所示。
图3-3晶振电路
复位电路是单片机应用中重要的一环,它对单片机抗干扰有重要作用。
复位电路如图3-4所示。
图3-4复位电路
3.2.3显示电路
显示电路采用4位共阴极LED数码管,P0口由上拉电阻提高驱动能力,作为段码输出并作为数码管的驱动。
P2口的低四位作为数码管的位选端。
采用动态扫描的方式显示。
图3-5显示电路
3.2.4报警温度调整按键电路
本系统设计三个按键,一个用于选择设定,另外两个分别用于设置报警温度的加和减。
图3-6按键电路
3.2.5温度传感电路
温度传感器的种类很多,根据温室使用条件,选择适当的传感器类型才能保证测量的准确可靠,并同时达到增加使用寿命和减低成本的目的。
根据温室温度控制的特点,本系统中的温度传感器选用DS18B20温度传感器。
温度传感电路主要是由一个电阻和一个DS18B20组成,DS18B20具有三个引脚,管脚的排列如图3-7所示,DQ为数字信号输入/输出端;GND为电源地;VCC为外接供电电源输入端(寄生)电源。
图3-7温度传感电路
3.2.6报警电路
如图3-8报警电路所示,该电路主要是由一个电阻,一个PNP三极管,一个蜂鸣器组成,实现电路的告警功能。
图3-8报警电路
3.3DS18B20数字温度传感器介绍
DS18B20数字温度计提供9位温度读数,指示器件的温度。
信息经过单线接口送入DS18B20或从DS18B20送出,因此从中央处理器到DS18B20仅需连接一条线(和地)。
读、写和完成温度变换所需的电源可以由数据线本身提供,而不需要外部电源。
因为每一个DS18B20有唯一的系列号,因此多个DS18B20可以存在于同一条单线总线上。
这允许在许多不同的地方放置温度灵敏器件。
此特性的应用范围包括HVAC环境控制,建筑物、设备或机械内的温度检测,以及过程监视和控制中的温度检测。
3.3.1特性介绍
(1)独特的单线接口,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。
(2)多点能力使分布式温度检测应用得以简化;
(3)不需要外部元件;
(4)可用数据线供电;
(5)不需备份电源,工作电源为3.0-5.5V/DC(可用数据线寄生电源);
(6)测量范围从-55℃至+125℃,增量值为0.5℃。
等效的华氏温度范围是-67°F至257°F,增量值为0.9°F;
(7)以9位数字值方式读出温度;
(8)在1秒(典型值)内把温度变为数字;
(9)用户可定义的,非易失性的温度告警设置;
(10)告警搜索命令识别和寻址温度在编定的极限之外的器件(温度根据情况);
(11)应用范围包括恒温控制,工业系统,消费类产品,温度计或任何热敏系统。
(12)支持多点组网功能,多个DS18B20可以并联在唯一的三线上,最多只能并联8个,实现多点测温,如果数量过多,会使供电电源电压过低,从而造成信号传输的不稳定。
3.3.2引脚介绍
DS18B20的介绍如图3-9所示。
DQ为数字信号输入/输出端;GND为电源地;VDD为外部供电电源输入端(在寄生电源接线方式时接地)可选的+5V电源。
图3-9DS18B20
3.3.3访问18B20的协议
DSl820工作过程中的协议如下:
初始化RoM操作命令存储器操作命令处理数据
1初始化
单总线上的所有处理均从初始化开始
2ROM操作品令
总线主机检测到DSl820的存在便可以发出ROM操作命令之一这些命令如
指令代码
ReadROM(读ROM)[33H]
MatchROM(匹配ROM)[55H]
SkipROM(跳过ROM][CCH]
SearchROM(搜索ROM)[F0H]
Alarmsearch(告警搜索)[ECH]
3存储器操作命令
指令代码
WriteScratchpad(写暂存存储器)[4EH]
ReadScratchpad(读暂存存储器)[BEH]
CopyScratchpad(复制暂存存储器)[48H]
ConvertTemperature(温度变换)[44H]
RecallEPROM(重新调出)[B8H]
ReadPowersupply(读电源)[B4H]
4时序
主机使用时间隙(timeslots)来读写DSl820的数据位和写命令字的位
(1)初始化
时序见图2.25-2主机总线to时刻发送一复位脉冲(最短为480us的低电平信号)接着
在tl时刻释放总线并进入接收状态DSl820在检测到总线的上升沿之后等待15-60us接
着DS1820在t2时刻发出存在脉冲(低电平持续60-240us)如图中虚线所示
以下子程序在MCS51仿真机上通过其晶振为12M.初始化子程序
RESET
PUSHB;保存B寄存器
PUSHA保存A寄存器
MOVA,#4;设置循环次数
CLRP1.0;发出复位脉冲
MOVB,#250;计数250次
DJNZB,$;保持低电平500us
SETBPl.0;释放总线
MOVB,#6;设置时间常数
CLRC;清存在信号标志
WAITL:
JBPl.0,WH;若总线释放跳出循环
DJNZB,WAITL;总线低等待
DJNZACC,WAITL;释放总线等待一段时间
SJMPSHORT
WH:
MOVB,#111
WH1:
ORLC,P1.0
DJNZB,WH1;存在时间等待
SHORT:
POPA
POPB
RET
(2)写时间隙
当主机总线to时刻从高拉至低电平时就产生写时间隙见图2253图225
4从to时刻开始15us之内应将所需写的位送到总线上DSl820在t后15-60us间对总线
采样若低电平写入的位是0见图2253若高电平写入的位是1见图2254
连续写2位间的间隙应大于1us
写位子程序(待写位的内容在C中)
WRBIT:
PUSHB;保存B
MOVB,#28;设置时间常数
CLRP1.0;写开始
NOP;1us
NOP;1us
NOP;1us
NOP;1us
N0P;1us
MOVPl.0,C;C内容到总线
WDLT:
DJNZB,WDLT;等待56Us
POPB
SETBPl.0;释放总线
RET;返回
写字节子程序(待写内容在A中):
WRBYTB:
PUSHB:
保存B
MOVB#8H;设置写位个数
WLOP:
RRCA;把写的位放到C
ACALLWRBIT;调写1位子程序
DJNZBWLOP;8位全写完?
POPB
RET
(3)读时间隙
见图2255主机总线to时刻从高拉至低电平时总线只须保持低电平l7ts之后
在t1时刻将总线拉高产生读时间隙读时间隙在t1时刻后t2时刻前有效tz距to为15
捍s也就是说tz时刻前主机必须完成读位并在to后的60尸s一120fzs内释放总线
读位子程序(读得的位到C中)
RDBIT:
PUSHB;保存B
PUSHA;保存A
MOVB,#23;设置时间常数
CLRP1.0;读开始图2255的t0时刻
NOP;1us
NOP;1us
NOP;1us
NOP;1us
SETBPl.0;释放总线
MOVA,P1;P1口读到A
MOVC,EOH;P1.0内容C
NOP;1us
NOP;1us
NOP;1us
NOP;1us
RDDLT:
DJNZB,RDDLT;等待46us
SETBP1.0
POPA
POPB
RET
读字节子程序(读到内容放到A中)
RDBYTE:
PUSHB;保存B
RLOPMOVB,#8H;设置读位数
ACALLRDBIT;调读1位子程序
RRCA;把读到位在C中并依次送给A
DJNZB,RLOP;8位读完?
POPB;恢复B
RET
四实际应用
1ds1820序列号获得
;|----------------------------------------------------------------------------|
;|读出ds1820序列号应用程序,P1.6接ds1820|
;|----------------------------------------------------------------------------|
ORG0000H
AJMPMAIN
ORG0020H
MAIN:
MOVSP,#60H
CLREA;使用ds1820一定要禁止任何中断产生
LCALLINT;初始化ds1820
MOVA,#33H
LCALLWRITE;送入读ds1820的ROM命令
LCALLREAD;开始读出当前ds1820序列号
MOV40H,A
LCALLREAD
MOV41H,A
LCALLREAD
MOV42H,A
LCALLREAD
MOV43H,A
LCALLREAD
MOV44H,A
LCALLREAD
MOV45H,A
LCALLREAD
MOV46H,A
LCALLREAD
MOV47H,A
SETBEA
SJMP$
INT:
;初始化ds1820子程序
CLREA
L0:
CLRP1.6;ds1820总线为低复位电平
MOVR2,#200
L1:
CLRP1.6
DJNZR2,L1;总线复位电平保持400us
SETBP1.6;释放ds1820总线
MOVR2,#30
L4:
DJNZR2,L4;释放ds1820总线保持60us
CLRC;清存在信号
ORLC,P1.6
JCL0;存在吗?
不存在则重新来
MOVR6,#80
L5:
ORLC,P1.6
JCL3
DJNZR6,L5
SJMPL0
L3:
MOVR2,#240
L2:
DJNZR2,L2
RET
WRITE:
;向ds1820写操作命令子程序
CLREA
MOVR3,#8;写入ds1820的bit数,一个字节8个bit
WR1:
SETBP1.6
MOVR4,#8
RRCA;把一个字节data(A)分成8个bit环移给C
CLRP1.6;开始写入ds1820总线要处于复位(低)状态
WR2:
DJNZR4,WR2;ds1820总线复位保持16us
MOVP1.6,C;写入一个bit
MOVR4,#20
WR3:
DJNZR4,WR3;等待40us
DJNZR3,WR1;写入下一个bit
SETBP1.6;重新释放ds1820总线
RET
READ:
CLREA
MOVR6,#8;连续读8个bit
RE1:
CLRP1.6;读前总线保持为低
MOVR4,#4
NOP
SETBP1.6;开始读总线释放
RE2:
DJNZR4,RE2;持续8us
MOVC,P1.6;从ds1820总线读得一个bit
RRCA;把读得的位值环移给A
MOVR5,#30
RE3:
DJNZR5,RE3;持续60us
DJNZR6,RE1;读下一个bit
SETBP1.6;重新释放ds1820总线
RET
END
2温度转换和读取
;|----------------------------------------------------------------------------------------------|
;|获取单个ds1820转化的温度值的应用程序,P1.6接ds1820|
;|----------------------------------------------------------------------------------------------|
ORG0000H
AJMPMAIN
ORG0020H
MAIN:
MOVSP,#60H
LCALLGET_TEMP
SJMP$
GET_TEMP:
CLRPSW.4
SETBPSW.3;设置工作寄存器当前所在的区域
CLREA;使用ds1820一定要禁止任何中断产生
LCALLINT;调用初使化子程序
MOVA,#0CCH
LCALLWRITE;送入跳过ROM命令
MOVA,#44H
LCALLWRITE;送入温度转换命令
LCALLINT;温度转换完全,再次初使化ds1820
MOVA,#0CCH
LCALLWRITE;送入跳过ROM命令
MOVA,#0BEH
LCALLWRITE;送入读温度暂存器命令
LCALLREAD
MOVR7,A;读出温度值低字节存入R7
LCALLREAD
MOVR6,A;读出谩度值高字节存入R6
SETBEA
RET
INT:
;初始化ds1820子程序
CLREA
L0:
CLRP1.6;ds1820总线为低复位电平
MOVR2,#200
L1:
CLRP1.6
DJNZR2,L1;总线复位电平保持400us
SETBP1.6;释放ds1820总线
MOVR2,#30
L4:
DJNZR2,L4;释放ds1820总线保持60us
CLRC;清存在信号
ORLC,P1.6
JCL0;存在吗?
不存在则重新来
MOVR6,#80
L5:
ORLC,P1.6
JCL3
DJNZR6,L5
SJMPL0
L3:
MOVR2,#240
L2:
DJNZR2,L2
RET
WRITE:
;向ds1820写操作命令子程序
CLREA
M
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 粮仓 温度 监控 系统 数据 传输 设计