基于C51单片机DS18B20温度计的设计与实现毕业设计论文范文模板参考资料Word文档格式.docx
《基于C51单片机DS18B20温度计的设计与实现毕业设计论文范文模板参考资料Word文档格式.docx》由会员分享,可在线阅读,更多相关《基于C51单片机DS18B20温度计的设计与实现毕业设计论文范文模板参考资料Word文档格式.docx(26页珍藏版)》请在冰豆网上搜索。
(5)经济效益高
1.2系统的设计步骤
(1)系统总体方案设计、
(2)方案论证评审
硬件和软件的分别细化设计
硬件和软件的分别调试
系统的组装
(3)离线仿真和调试阶段
1.3系体的总体方案设计和框图设计
(1)系统的主要功能、技术指标、原理性方框及文字说明。
(2)系统的硬件结构几配置,主要软件的功能、结构几框图。
(3)保证性能指标要求的技术措施。
(4)抗干扰性和可靠性设计。
(5)工艺要求
温度数码管显示。
调节温度的超调量小于30%。
实现温度闭环控制,控制温度误差范围≤±
0.1℃。
温度范围:
-50℃~125℃。
供电电压:
交流5V。
方案一:
考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以使用热敏电阻之类的器件利用其感温效应,感温电路比较麻烦,进行A/D转换,才可以满足设计要求。
方案二:
由于本设计是测温电路,首先要选用高性能的AT89C51单片机,保证在恶劣的工业环境下能正常运行。
单片机AT89C51具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用二节电池供电。
测温传感器使用二极管结电压变化的数值来转化成温度的变化,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来。
从以上两种方案,很容易看出,采用方案二,电路比较简单,软件设计也比较简单,故采用了方案二。
考虑到方案中制作数字温度计,在单片机电路设计中,大多都是使用传感器,这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。
温度计电路设计总体设计方框图如图1所示,控制器采用单片机AT89C51,温度传感器采用DS18B20,用4位LED数码管以串口传送数据实现温度显示。
图1.1 总体设计方框图
第二章硬件设计
2.1主要器件说明
2.1.1主控制器
单片机AT89S51具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用二节电池供电。
如图2.1所示。
图2.1
(1)主要特性:
·
与MCS-51兼容
4K字节可编程闪烁存储器
寿命:
1000写/擦循环
数据保留时间:
10年
全静态工作:
0Hz-24Hz
三级程序存储器锁定
128*8位内部RAM
32可编程I/O线
两个16位定时器/计数器
5个中断源
可编程串行通道
低功耗的闲置和掉电模式
片内振荡器和时钟电路
(2)管脚说明:
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下表所示:
口管脚备选功能
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2/INT0(外部中断0)
P3.3/INT1(外部中断1)
P3.4T0(记时器0外部输入)
P3.5T1(记时器1外部输入)
P3.6/WR(外部数据存储器写选通)
P3.7/RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;
当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
2.1.2显示器
显示电路采用3位共阳LED数码管,利用动态扫描方式,从P0口输出段码,P2口的P2.5、P2.6、P2.7输出位码。
(1)LED数码有共阳和共阴两种,把这些LED发光二极管的正极接到一块(一般是拼成一个8字加一个小数点)而作为一个引脚,为共阳管。
如下图2.2、2.3所示:
图2.2图2.3
2.1.3温度传感器
DS18B20温度传感器是采用美国DALLAS公司生产的DS18B20可组网数字温度传感器芯片,经焊接,外加不锈钢保护管封装而成,具有耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。
①:
:
技术性能描述
*独特的单线接口方式,DS1820在与微处理器连接时仅需要一条口线即可实现微处理器与DS1820的双向通讯,在使用中不需要任何外围元件。
*测温范围-55℃~+125℃,固有测温分辨率0.5℃。
-
*支持多点组网功能,多个DS1820可以并联在唯一的三线上,实现多点测温。
*工作电源:
3~5V/DC
*测量结果以9位数字量方式串行传送。
*不锈钢保护管直径
Φ6
*适用于1/2”,3/4”,1”,DN40~DN250各种介质工业管道和狭小空间设备测温
②:
应用范围
*
该产品适用于冷冻库,粮仓,储罐,电讯机房,电力机房,电缆线槽等测温和控制领域
轴瓦,缸体,纺机,空调,等狭小空间工业设备测温和控制。
汽车空调、冰箱、冷柜、以及中低温干燥箱等。
供热/制冷管道热量计量,中央空调分户热能计量和工业领域测温和控制
③.DS18B20的性能特点如下:
*独特的单线接口仅需要一个端口引脚进行通信;
*多个DS18B20可以并联在惟一的三线上,实现多点组网功能;
*无须外部器件;
*可通过数据线供电,电压范围为3.0~5.5V;
*零待机功耗;
*温度以9或12位数字;
*用户可定义报警设置;
*报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;
*负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作;
DS18B20采用3脚PR-35封装或8脚SOIC封装,其内部结构框图如图2.4所示。
图2.4DS18B20内部结构
DS18B20内部结构主要由四部分组成:
64位光刻ROM、温度传感器、非挥发的
温度报警触发器TH和TL、配置寄存器。
DS18B20的管脚排列如图2.5所示:
图2.5
DS18B20温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的EERAM。
高速暂存RAM的结构为8字节的存储器,结构如图2.6所示。
头2个字节包含测得的温度信息,第3和第4字节TH和TL的拷贝,是易失的,每次上电复位时被刷新。
第5个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。
DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值。
该字节各位的定义如图2.7所示。
低5位一直为1,TM是工作模式位,用于设置DS18B20在工作模式还是在测试模式,DS18B20出厂时该位被设置为0,用户要去改动,R1和R0决定温度转换的精度位数,来设置分辨率。
由表2.1可见,DS18B20温度转换的时间比较长,而且分辨率越高,所需要的温度数据转换时间越长。
因此,在实际应用中要将分辨率和转换时间权衡考虑。
表2.1DS18B20温度转换时间表
R1
R0
分辨率/位
温度最大转换时间/MS
9
93.75
1
10
187.5
11
375
12
750
高速暂存RAM的第6、7、8字节保留未用,表现为全逻辑1。
第9字节读出前面所有8字节的CRC码,可用来检验数据,从而保证通信数据的正确性。
当DS18B20接收到温度转换命令后,开始启动转换。
转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1、2字节。
单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以0.0625℃/LSB式表示。
当符号位S=0时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;
当符号位S=1时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。
表2是一部分温度值对应的二进制温度数据。
DS18B20完成温度转换后,就把测得的温度值与RAM中的TH、TL字节内容作比较。
若T>TH或T<TL,则将该器件内的报警标志位置位,并对主机发出的报警搜索命令做出响应。
因此,可用多只DS18B20同时测量温度并进行报警搜索。
在64位ROM的最高有效字节中存储有循环冗余检验码(CRC)。
主机ROM的前56位来计算CRC值,并和存入DS18B20的CRC值作比较,以判断主机收到的ROM数据是否正确。
另外,由于DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。
系统对DS18B20的各种操作按协议进行。
操作协议为:
初使化DS18B20(发复位脉冲)→发ROM功能命令→发存储器操作命令→处理数据。
分别说明如下:
(1)初始化单总线的所有处理均从初始化开始。
初始化过程是主机通过向作为从机的DS18B20芯片发一个有时间宽度要求的初始化脉冲实现的。
初始化后,才可进行读写操作。
(2)ROM操作命令总线主机检测到DS18B20的存在便可以发出ROM操作命令之一这些命令表2.2:
表2.2ROM操作命令
指令
代码
ReadROM(读ROM)
[33H]
MatchROM(匹配ROM)
[55H]
SkipROM(跳过ROM]
[CCH]
SearchROM(搜索ROM)
[F0H]
Alarmsearch(告警搜索)
[ECH]
(3)存储器操作命令如表2.3:
表2.3存储器操作命令
指令
代码
WriteScratchpad(写暂存存储器)
[4EH]
ReadScratchpad(读暂存存储器)
[BEH]
CopyScratchpad(复制暂存存储器)
[48H]
ConvertTemperature(温度变换)
[44H]
RecallEPROM(重新调出)
[B8H]
ReadPowersupply(读电源)
[B4H]
(4)时序主机使用时间隙(timeslots)来读写DS18B20的数据位和写命令字的位
①初始化
图2.7初始化时序
时序见图2.7,主机总线to时刻发送一复位脉冲(最短为480us的低电平信号),接着在tl时刻释放总线并进入接收状态。
DS18B20在检测到总线的上升沿之后等待15-60us,接着DS18B20在t2时刻发出存在脉冲(低电平持续60-240us)。
如图中虚线所示:
②写时间隙
图2.8.1写0时序图2.8.2写1时序
当主机总线to时刻从高拉至低电平时,就产生写时间隙见图2.8.1和图2.8.2。
从to时刻开始15us之内应将所需写的位送到总线上,DSl820在to后15-60us间对总线采样。
若低电平,写入的位是0。
见图2.5.1。
若高电平写入的位是1见图2.5.2。
连续写2位间的间隙应大于1us。
③读时间隙
见图2.9,主机总线to时刻从高拉至低电平时,总线只须保持低电平lus。
之后在t1时刻将总线拉高,产生读时间隙,读时间隙在t1时刻后t2时刻前有效,t2距to为15us。
也就是说t2时刻前主机必须完成读位,并在to后的60us一120us内释放总线,读位子程序(读得的位到C中)。
图2.9读时序
DSl820多路测量简介
图2.10DSl820原理框图
每一片DSl820在其ROM中都存有其唯一的48位序列号,出厂前已写入片内ROM中,主机在进入操作程序前必须逐一接入DS18B20用读ROM(33H)命令将该DS18B20的序列号读出并登录。
当主机需要对众多在线DS18B20的某一个进行操作时,首先要发出匹配ROM命令(55H),紧接着主机提供64位序列(包括该DS18B20的48位序列号)。
之后的操作就是针对该DS18B20的。
而所谓跳过ROM命令即:
MOVA,#0CCH。
图2.10中先有跳过ROM,即是启动所有DS18B20进行温度变换,之后通过匹配ROM再逐一地读回每个DS18B20的温度数据。
在DS18B20组成的测温系统中,主机在发出跳过ROM命令之后,再发出统一的温度转换启动码44H,就可以实现所有DS18B20的统一转换,再经过1s后,就可以用很少的时间去逐一读取。
这种方式使其T值往往小于传统方式。
(由于采取公用的放大电路和A/D转换器只能逐一转换)。
显然通道数越多,这种省时效应就越明显。
DS1820使用中注意事项
DS1820虽然具有测温系统简单、测温精度高、连接方便、占用口线少等优点,但在实际应用中也应注意以下几方面的问题:
(1)较小的硬件开销需要相对复杂的软件进行补偿,由于DS1820与微处理器间采用串行数据传送,因此,在对DS1820进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。
在使用PL/M、C等高级语言进行系统程序设计时,对DS1820操作部分最好采用汇编语言实现。
(2)在DS1820的有关资料中均未提及单总线上所挂DS1820数量问题,容易使人误认为可以挂任意多个DS1820,在实际应用中并非如此。
当单总线上所挂DS1820超过8个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意。
(3)连接DS1820的总线电缆是有长度限制的。
试验中,当采用普通信号电缆传输长度超过50m时,读取的测温数据将发生错误。
当将总线电缆改为双绞线带屏蔽电缆时,正常通讯距离可达150m,当采用每米绞合次数更多的双绞线带屏蔽电缆时,正常通讯距离进一步加长。
这种情况主要是由总线分布电容使信号波形产生畸变造成的。
因此,在用DS1820进行长距离测温系统设计时要充分考虑总线分布电容和阻抗匹配问题。
(4)在DS1820测温程序设计中,向DS1820发出温度转换命令后,程序总要等待DS1820的返回信号,一旦某个DS1820接触不好或断线,当程序读该DS1820时,将没有返回信号,程序进入死循环。
这一点在进行DS1820硬件连接和软件设计时也要给予一定的重视。
测温电缆线建议采用屏蔽4芯双绞线,其中一对线接地线与信号线,另一组接VCC和地线,屏蔽层在源端单点接地。
2.1.4稳压电源7805
7805管脚图如图2.11所示:
图2.11
2.2各部分电路说明
2.2.1单片机控制部分
在本设计中,采用了AT89C51单片机作为本电路的核心电路的设计。
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。
AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除100次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。
AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
(1)振荡器特性:
XTAL1和XTAL2的反向放大器的输入和输出。
该反向放大器可以配置为片内振荡器。
石晶振荡和陶瓷振荡均可采用。
如采用外部时钟源驱动器件,XTAL2应不接。
有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
(2)单片机芯片的擦除:
整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。
在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。
AT89C51的稳态逻辑可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。
在闲置模式下,CPU停止工作。
但RAM,定时器,计数器,串口和中断系统仍在工作。
在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。
(3)单片机的时钟电路
图2.12片内振荡电路的时钟电路
AT89C1单片机内部的振荡电路是一个高增益反向放大器,引线XTAL1和XTAL2分别是放大器的输入端和输出端。
单片机内部虽然有振荡电路,但要形成时钟,外部还需附加电路。
AT89C51的时钟产生方式有两种:
内部时钟电方式和外部时钟方式。
由于外部时钟方式用于多片单片机组成的系统中,所以此处选用内部时钟方式。
即利用其内部的振荡电路在XTAL1和XTAL2引线上外接定时元件,内部振荡电路产生自激振荡。
最常用的是在XTAL1和XTAL2之间接晶体振荡器与电路构成稳定的自激振荡器,如图2.13电路所示为单片机最常用的时钟振荡电路的接法,其中晶振可选用振荡频率为6MHz的石英晶体,电容器一般选择30PF左右。
(4)单片机的复位电路
图2.13AT89C51的复位电路
本设计中AT89C51是采用上电自动复位和按键复位两种方式。
最简单的复位电路如图2.13所示。
上电瞬间,RC电路充电,RST引线端出现正脉冲,只要RST端保持10ms以上的高电平,就能使单片机有效地复位。
其中R1和R2分别选择200Ω和1KΩ的电阻,电容器一般选择22μF。
(5)AT89C51的最小应用系统
AT89C51是片内有程序存储器的单片机,要构成最小应用系统时只要将单片机接上外部的晶体或时钟电路和复位电路即可,如图2.14所示。
这样构成的最小系统简单可靠,其特点是没有外部扩展,有可供用户使用的大量的I∕O线。