毕业设计范文参考.docx
《毕业设计范文参考.docx》由会员分享,可在线阅读,更多相关《毕业设计范文参考.docx(56页珍藏版)》请在冰点文库上搜索。
毕业设计范文参考
毕业设计(论文)
课题名称基于AT89C51的智能温度
预警系统的设计
学生姓名张萌
学号**********
系、年级专业信息工程系07级通信工程
指导教师何海浪
职称讲师
2011年5月25日
摘要
本设计系统地介绍了基于AT89C51的智能温度预警系统的组成、设计方案、电路原理、程序设计以及系统仿真过程。
DS18B20多点温度测量系统是以AT89C51单片机作为控制核心,数字温度传感DS18B20为控制对象,运用C语言编程实现系统的各种功能。
该系统由单片机最小系统、传感器电路、报警电路、LCD显示电路、行列式键盘电路、电源电路六大部分组成。
借助PROTEUS软件,实现了系统电路设计和仿真。
它适用于电力工业、煤矿、森林、火灾、高层建筑等场所,还可以用于环境恶劣的工业控制现场。
通过DS18B20的单总线技术,系统实现了对远程环境的温度测量与监控。
关键词:
DS18B20;仿真;测量系统;PROTEUS;单片机
Abstract
Thedesignsystematicallyintroducedthecomposition,thedesign,thecircuittheory,theprogramdesignandthesystemsimulationprocessofthemultipointtemperaturemeasurementsystemwhichbasedontheAT89C51.TheAT89C51intelligencetemperaturemeasurementsystem,theAT89C51MCUasitscontrolcore,digitaltemperaturesensingDS18B20asitscontroltarget,usetheC-languageprogrammingsystemtorealizethefunctions.Thesystemcomposedofsixmajorcomponents,whicharethesmallestMCUsystem,thesensorcircuit,thealarmcircuits,theLCDdisplaycircuit,thekeyboard,thepowercircuit.ThesystemrealizesthecircuitdesignandsimulationwithPROTEUSsoftware.Itappliestothepowerindustry,coal,forest,fire,high-risebuildingsandotherplaces,itcanalsoappliestoindustrialcontrolfieldwiththebadenvironment.ThroughthemonobustechnologyoftheDS18B20,thesystemachievesthemeasurementandmonitoringofthelong-rangeenvironmentaltemperature.
Keywords:
DS18B20;simulation;measurementsystem;PROTEUS;MCU
第1章绪论
1.1课题来源
温度是国际单位制七个基本量之一,与人类的生活环境息息相关。
它是一种在生产、科研、生活中需要测量和控制的重要物理量,同时也是一种最基本的环境参数。
在实验研究和工业生产中,在机械、电力、化工、生物、冶金、农业、实验等行业和人们的家居生活里经常需要对环境温度进行检测和控制。
例如,汽车发动机气缸的温度必须保持在一定的范围内;在合适温度微生物的新陈代谢才能正常进行。
许多化学反应在不同的温度下会生成不同的反应物;温度过高,粮仓的粮食就会霉烂变质,电子设备的工作效率会降,低使用寿命会缩短,饭菜会变馊。
由此可见,研究温度测量工具有着极其重要的实用价值。
随着现代嵌入式技术和传感器技术的发展,作为各种信息的采集、处理、传输的功能器件,温度传感器的作用日益突出,成为自动检测、自动控制系统和计量测试中不可缺少的重要技术工具,其应用已遍及工农业生产和日常生活的各个领域。
本课题结合现在嵌入式技术和传感技术设计的智能温度预警系统就是满足生产生活中人们对温度测量的需求。
1.2课题研究的目的意义
随着科学技术的高速发展,科技的进步带动了传感技术的发展,自动控制设备的性能和性价比发生了巨大的变化,新世纪是嵌入式技术迅猛发展的时代,传感技术也成为当今科技的主流之一,被广泛地应用于生产和生活中。
基于AT89C51的智能温度预警系统的设计,其目的在于:
(1)掌握数字温度传感器AT89C51单片机的工作原理、和使用方法,利用C语言编写单片机程序。
(2)掌握数字温度传感器DS18B20的工作原理、和使用方法,利用C51对系统进行编程。
(3)本课题综合了现代嵌入式技术和传感器技术专业领域方面的知识,可全面提高学生的理论水平和动手能力。
1.3国内外现状及水平
传感器属于信息技术的前沿尖端产品,尤其是温度传感器被广泛用于工农业生产、科学研究和生活等领域,数量高居各种传感器之首。
温度传感器的发展大致经历了以下三个阶段:
传统的分立式温度传感器(含敏感元件);模拟集成温度传感器;数字温度传感器。
目前,温度传感器正朝着高精度、多功能、总线标准化、高可靠性及安全性、开发虚拟传感器和网络传感器、研制单片测温系统等高科技的方向迅速发展,同时具有抑制串模干扰能力强、分辨力高、线性度好、成本低等优点。
随着我国四个现代化和经济发展,我国在科技和生产各领域都取得了飞速的发展和进步,发展以温度传感器为载体的温度测量技术具有重大意义。
1.4课题研究内容
本设计研究的主要内容如下:
(1)本设计以AT89C51单片机为控制系统,来实现对温度的监测、处理等功能。
在广泛查阅温度检测控制理论和方法、测温技术和温度控制技术等资料的基础上,根据不同的控制要求及应用领域完成对系统方案的总体设计。
(2)在比较各元器件的特点和功能后,选择合适的元器件。
(3)设计硬件系统。
设计主要包括:
温度传感器采集温度数据、单片机处理温度数据、LCD显示温度、键盘设置参数、报警电路等模块。
(4)设计软件系统。
本以C语言为设计语言,用SourceInsight软件编辑代码,采用Keil软件编译程序。
本设计的重点分为软件和硬件两个方面。
其中硬件开发的难点在于各种元器件的选择和使用。
软件开发的难点在于温度传感器的时序。
第2章统方案设计
2.1基于模拟温度传感器的设计方案
该方案由AD590模拟温度传感器、运算放大器、AD转换器、51单片机、键盘、液晶显示屏、集成功率放大器、报警器组成,如图2.1所示。
本方案采用AD590模拟温度传感器检测温度,传感器将测量的温度变换转换成变化的电流,再通过模拟电路将电流的变化转换成电压的变化,使用运算放大器将信号进行适当的放大,最后通过AD转换器将模拟信号转换成数字信号,传送给AT89C51。
AT89C51将温度值进行处理之后用液晶显示屏显示,有报警信号时,信号通过集成功放放大,传给报警器。
图2.1基于模拟温度传感器的设计方案
本方案使用的测温元件的性能指标如下:
(1)模拟温度传感器的测温范围为﹣55℃~+150℃。
(2)模拟温度传感器的电源电压范围为4V~30V,电源电压可在4V~6V范围变化,电流 变化1mA,相当于温度变化1K。
模拟温度传感器可以承受44V正向电压和20V反向电压,因而器件反接也不会被损坏。
(3)输出电阻为710MW。
(4)精度高,模拟温度传感器共有I、J、K、L、M五档,其中M档精度最高,在﹣55℃~+150℃范围内,非线性误差为±0.3℃。
集成温度传感器具有线性好、精度适中、灵敏度高、体积小、使用方便、温度测量范围广等优点,得到广泛应用。
集成温度传感器的输出形式分为电压输出和电流输出两种。
电压输出型的灵敏度一般为10mV/K,温度0℃时输出为0,温度25℃时输出2.982V。
电流输出型的灵敏度一般为1mA/K。
2.2基于数字温度传感器的设计方案
该方案以数字温度传感器DS18B20为温度测量元件,使用AT89C51单片机作为控制核心,使用4个DS18B20进行温度检测,通过4×4键盘设置正常温度的最大值,采用128×64液晶显示电路,使用LM386作为功率放大器报警电路中的喇叭。
图2.2基于数字温度传感器的设计方案
本课题采用DS18B20数字温度传感器作为测为测温元件,它具有如下特点:
(1)测量温度范围在-55C到+125C之间。
(2)每个DS18B2都有唯一的ID。
(3)9~12位分辨率可调。
(4)只要一个端口即可通信。
(5)实际应用中不需要外部接任何元器件即可实现测温。
(6)内部有温度上、下限告警设置。
2.3方案论证
本设计要求测温范围为-20℃~+80℃,精度为0.5℃,测量的点数为4。
采用LCD显示,显示数据每秒刷新1次。
综合分析数字温度传感器和模拟温度传感器的性能指标,以上两个方案都能实现设计的需求。
方案一采用了DS18B20数字温度传感器。
它能在现场采集温度数据,直接将温度物理量转换为数字信号并以总线方式传送到单片机,再由单片机进行数据处理,并且可根据实际要求通过简单的编程实现9-12位的数字式读取方式,因而使用数字温度传感器可使系统结构更加简单,可靠性更高,大大提高系统的抗干扰能力。
数字温度传感器体积小、经济、使用方便灵活、测试精度高、较高的性能价格比,有CRC校验,系统简明直观,适合于恶劣环境的现场温度测量,如:
测温类消费电子产品、环境控制设备或过程控制等。
方案二采用AD590模拟温度传感器,转换结果需要经过AD转换器和运算放大器。
它虽然成本低,控制简单,但是后续电路复杂,而且需要进行温度标定。
AD590集成温度传感器输出为电流,且输出信号较弱,所以需要后续放大及A/D转换电路。
如采用普通运放则精度难以保证,而测量放大器价格较高,这样会使系统成本升高。
方案一程序设计稍微复杂一些,使用有大量的资料可以查询,该方案完全可行,经济上也有很大的优势,同时体现了技术的先进性。
综上所述,本设计采用方案一进行系统设计。
第3章电路设计
3.1工作原理
基于AT89C51的智能温度预警系统以AT89C51为控制芯片,以Keil软件为系统开发平台,用C51进行程序设计,以PROTEUS作为仿真软件。
系统主要由传感器电路、单片机最小系统、键盘电路、液晶显示电路、报警电路、电源电路组成,系统原理图如图3.1所示。
图3.1系统原理图
DS18B20数字温度传感器,每个DS18B20有自己的序列号,因此本系统可以在一根总线上挂接了4个DS18B20,通过CRC校验,对各个DS18B20的ROM进行寻址,地址符合的DS18B20数字温度传感器才作出响应,接收主机的命令,向主机发送转换的温度。
采用这种寻址技术,单片机使用一个IO口即能实现对四点环境的温度数据进行采集,使系统硬件电路更加简单,系统更加稳定。
它的输入/输出采用数字量,以单总线技术,接收主机发送的命令,根据DS18B20内部的协议进行相应的处理,将转换的温度以串口发送给主机。
主机按照通信协议用一个IO口(P1.7)模拟DS18B20的时序,发送命令(初始化命令、ROM命令、RAM命令)给DS18B20,转换完成之后单片机读取温度值,在内部进行相应的数值处理,用128×64LCD显示各点的温度。
在系统启动的时候,可以通过4×4键盘设置各点温度的上限值,当某点的实际温度超过设置值时,报警器开始报警,液晶显示该传感器的路数、设置温度值、实际温度值以及路数和该路的状态,从面实现了对各点温度的测量和实时监控。
3.2DS18B20与单片机接口技术
3.2.1DS18B20的引脚功能
DS18B20的引脚功能描述见表3.1。
表3.1 DS18B20引脚功能描述
序号
名称
引脚功能描述
1
GND
地信号
2
DQ
数字输入输出引脚,开漏单总线接口引脚,当使用寄生电源时,可向电源提供电源
3
VDD
可选择的VDD引脚,当工作于寄生电源时,该引脚必须接地
3.2.2DS18B20与单片机接口电路
如图3.2所示,为单片机和DS18B20的接口电路。
DS18B20只有三个引脚,一个接地,一个接电源,一个数字输入输出引脚接单片机的P1.7口,电源与数字输入输出脚间需要接一个4.7K的电阻。
图3.2DS18B20与单片机接口电路
3.2.3温度寄存器格式和温度/数据对应关系
DS18B20温度寄存器如表3.2所示。
寄存器有16位,高5位为符号位,低13位为数据位。
当寄存器高5位为1时,表示温度为负,否则为正。
表3.2温度寄存器格式
bit7bit6bit5bit4bit3bit2bit1bit0
23
22
21
20
2-1
2-2
2-3
2-4
LSByte
Bbit15bit14bit13bit12bit11bit10bit9bit8
S
S
S
S
S
26
25
24
MSByte
如果测得的温度大于0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,测得的数值需要取反加1再乘0.0625,即可得到实际的温度值。
如表3.3所示,是DS18B20的温度与数据的对应关系。
表3.3温度/数据的关系
温度
输出(2进制)
输出(16进制)
+125℃
0000011111010000
07D0H
+85℃
0000010101010000
0550H
+20.0625℃
0000000110010001
0191H
+10.125℃
0000000010100010
00A2H
+0.5℃
0000000000001000
0008H
0℃
0000000000000000
0000H
-0.5℃
1111111111111000
FFF8H
-10.125℃
1111111101011110
FF5EH
25.0625℃
1110111001101111
EE6FH
-55℃
1111111010010000
FE90H
3.2.4单片机对DS18B20的控制方法
DS18B20采用严格的单总线通信协议,以保证数据的完整性。
该协议定义了
几种信号类型:
复位脉冲、应答脉冲、写0、写1、读0和读1。
除了应答脉冲所有
这些信号都由主机发出同步信号。
总线上传输的所有数据和命令都是以字节为单位,且低位在前,高位在后。
(1)初始化序列:
复位脉冲和应答脉冲
在初始化过程中,主机通过拉低单总线至少480µs,以产生复位脉冲(TX)。
然
后主机释放总线并进入接收(RX)模式。
当总线被释放后,5kΩ的上拉电阻将单总线拉高。
DS18B20检测到这个上升沿后,延时15µs~60µs,通过拉低总线60µs~240µs产生应答脉冲。
初始化脉冲如图3.3所示。
图3.3DS18B20初始化时序
DS18B20的初始化应答C语言程序如下所示:
bitresetpulse(void)
{
DQ=0;
delay600us();
DQ=1;
delay60us();
return(DQ);
}
DS18B20的初始化C语言程序如下所示:
voidDs18b20_Init(void)
{
while
(1)
{
if(!
resetpulse())//收到ds18b20的应答信号
{
DQ=1;
delay600us();//延时240us
break;
}
else
resetpulse();//否则再发复位信号
}}
(2)DS18B20的读写控制
在写时序期间,主机向DS18B20写入数据;而在读时序期间,主机读入来自DS18B20的数据。
在每一个时序,总线只能传输一位数据。
读/写时序如图3.4所示。
①DS18B20写时序
DS18B20存在两种写时序:
“写1”和“写0”。
主机在写1时序时向DS18B20
图3.4DS18B20读写时序
写入逻辑1,而在写0时序向DS18B20写入逻辑0。
所有写时序至少需要60µs,且在两次写时序之间至少需要1µs的恢复时间。
两种写时序均以主机拉低总线开始。
写1时序:
主机拉低总线后,必须在15µs内释放总线,然后由上拉电阻将总线拉至高电平。
写0时序:
主机拉低总线后,必须在整个时序期间保持低电平(至少60µs)。
在写时序开始后的15µs~60µs期间,DS18B20采样总线的状态。
如果总线为高电平,则逻辑1被写入DS18B20;如果总线为低电平,则逻辑0被写入DS18B20。
②时序
DS18B20只能在主机发出读时序时才能向主机传送数据。
所以主机在发出读数据命令后,必须马上产生读时序,以便DS18B20能够传送数据。
所有读时序至少60µs,且在两次独立的读时序之间至少需要1µs的恢复时间。
每次读时序由主机发起,拉低总线至少1µs。
在主机发起读时序之后,DS18B20开始在总线上传送1或0。
若DS18B20发送1,则保持总线为高电平;若发送0,则拉低总线。
当传送0时,DS18B20在该时序结束时释放总线,再由上拉电阻将总线拉回空闲高电平状态。
DS18B20发出的数据在读时序下降沿起始后的15µs内有效,因此主机必须在读时序开始后的15µs内释放总线,并且采样总线状态。
DS18B20写命令子程序如下:
voidds18b20_writecommand(ucharcommand)
{
uchari;
for(i=0;i<8;i++)
{
if((command&0x01)==0)
{
DQ=0;
delay60us();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
DQ=1;
_nop_();
_nop_();
}
else
{
DQ=0;
_nop_();
_nop_();
DQ=1;
delay60us();
_nop_();
_nop_();
_nop_();
_nop_();
}
command=_cror_(command,1);
}
}
DS18B20读温度子程序如下:
ucharDs18b20_Readdata(void)
{
ucharreaddata;
uchari;
for(i=0;i<8;i++)
{
DQ=0;
_nop_();
_nop_();
_nop_();
DQ=1;
if(DQ==0)
{
readdata=readdata&0x7f;
delay60us();
}
else
{
readdata=readdata|0x80;
delay60us();
}
if(i<7)
readdata=_cror_(readdata,1);
}
returnreaddata;
}
③DS18B20的命令序列
根据DS18B20的通讯协议,主机(单片机)控制DS18B20完成温度转换必须经过三个步骤:
每一次读写之前都要对DS18B20进行复位操作,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。
ROM命令通过每个器件64-bit的ROM码,使主机指定某一特定器件(如果有多个器件挂在总线上)与之进行通信。
DS18B20的ROM如表3.4所示,每个ROM命令都是8bit长。
表3.4DS18B20ROM命令
指令
协议
功能
读ROM
33H
读DS18B20中的编码(即64位地址)
符合ROM
55H
发出此命令后,接着发出64位ROM编码,访问单总线上与该编码相对应的DS18B20,使之作出响应,为下一步对该DS18B20的读写作准备
搜索ROM
0F0H
用于确定挂接在同一总线上DS18B20的个数和识别64位ROM地址,为操作各器件作好准备
跳过ROM
0CCH
忽略64位ROM地址,直接向DS18B20温度转换命令,适用于单个DS18B20工作
告警搜索命令
0ECH
执行后,只有温度超过报警值上限或下限的DS18B20才做出响应
温度转换
44H
启动DS18B20进行温度转换,转换时间最长为500ms(典型为200ms),结果丰入内部9字节RAM中
读暂存器
BEH
读内部RAM中9字节的内容
写暂存器
4EH
发出向内部RAM的第3、4字节写上、下温度数据命令,紧该温度命令之后,传达两字节的数据
复制暂存器
48H
将RAM中第3、4字内容复制到E2PROM中
重调E2PROM
0B8H
将E2PROM中内容恢复到RAM中的第3、4字节
读供电方式
0B4H
读DS18B20的供电模式,寄生供电时DS18B20发送“0”,外部供电时DS18B20发送“1”
3.3键盘电路设计
3.3.1行列式键盘与单片机接口电路
根据本设计需要,本系统采用了4×4键盘实现对温度值和功能键的设定。
行列式键盘与单片机的接口电路如图3.5所示,H0-H3为行线,接单片机P2口的高4位,L0-L3为列线,接单片机P2口的低4位。
初始化时键盘行线为高电
平,列线为低电平。
键盘的行线接4输入与门,4输入与门的输出接单片机的外部中断0引脚P3.2口。
当有键按下时,将产生中断,在中断程序里对按键进行扫描,得到按键的键值。
图3.54×4键盘结构
3.3.2键盘面板
键盘面板如图3.6所示,本系统使用的键盘有10数字键,5个功能按键。
在系统启动时,先按“设置”键,然后按相应的数字键,按“左移”或者“右移”键改变其他温度的值。
按“确认”键之后系统正式启动。
系统在运行过程之中可以通过按“重新设置”键,对温度重新进行设置。
图3.6键盘面板
3.4显示电路设计
3.4.1LCD引脚分布及功能
(1)128×64液晶显示屏共有20个引脚,其引脚名称及引脚编号的对应关系如图3.7所示:
图3.7128×64液晶显示模块引脚分布图
(2)引脚功能如表3.5所示:
表3.5128×64液晶显示模块引脚功能
引脚
符号