基于51单片机数字温度计毕业设计Word文件下载.docx

上传人:b****3 文档编号:17745217 上传时间:2022-12-09 格式:DOCX 页数:11 大小:28.03KB
下载 相关 举报
基于51单片机数字温度计毕业设计Word文件下载.docx_第1页
第1页 / 共11页
基于51单片机数字温度计毕业设计Word文件下载.docx_第2页
第2页 / 共11页
基于51单片机数字温度计毕业设计Word文件下载.docx_第3页
第3页 / 共11页
基于51单片机数字温度计毕业设计Word文件下载.docx_第4页
第4页 / 共11页
基于51单片机数字温度计毕业设计Word文件下载.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

基于51单片机数字温度计毕业设计Word文件下载.docx

《基于51单片机数字温度计毕业设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于51单片机数字温度计毕业设计Word文件下载.docx(11页珍藏版)》请在冰豆网上搜索。

基于51单片机数字温度计毕业设计Word文件下载.docx

硬件电路复杂;

软件调试复杂;

制作成本高。

方案三:

DS18B20传感器测温本设计采用DS18B20作为检测元件DS18B20可以直接读出被测温度值,特点是成本低,结构简单,便于使用。

所以本设计采用方案三,用DS18B20作为温度传感器。

2.1.2显示器的选择数码管足以实现温度的显示,所以在本设计中采用数码管显示。

2.1.3单片机AT89S51的选择对于单片机的选择,可以考虑使用8031与8051系列,由于8031没有内部RAM,系统又需要大量内存存储数据,因而不适用。

单片机AT89S51具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用系统可用二节电池供电,因此选用AT89S51更适合。

按照系统设计功能的要求,确定系统由4个模块组成;

主控制器、测温电路、显示电路。

数字温度计总体设计电路结构框图如图2-1所示:

AT89S51复位电路显示电路温度传感器时钟电路图2-1系统框图第3章系统硬件电路的设计3.1主控制器单片机AT89S51是低功耗,高性能CMOS8位单片机,片内含4kbytes的可编程的Flash只读程序存储器,兼容标准8051指令系统及引脚。

它集Flash程序存储器既可在线编程(ISP),也可用传统方法进行编程。

3.1.1AT89S51的介绍AT89S51主要特性及引脚如下●与MCS-51兼容●4K字节可编程闪烁存储器●全静态工作:

0Hz-24Hz●三级程序存储器锁定●128*8位内部RAM●32可编程I/O线●两个16位定时器/计数器●5个中断源●可编程串行通道●低功耗的闲置和掉电模式●片内振荡器和时钟电路图3-2AT89S51单片机引脚图AT89S51单片机为40引脚双列直插式封装。

其引脚排列和逻辑符号如图3-2所示。

各引脚功能简单介绍如下:

●VCC:

供电电压●GND:

接地●P0口:

P0口为一个8位漏级开路双向I/O口,每个管脚可吸收8TTL门电流。

当P0口的管脚写“1”时,被定义为高阻输入。

P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。

在FLASH编程时,P0口作为原码输入口,当FLASH进行校验时,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口也可作为AT89S51的一些特殊功能口:

P3.0RXD(串行输入口)lP3.1TXD(串行输出口)lP3.2INT0(外部中断0)lP3.3INT1(外部中断1)lP3.4T0(记时器0外部输入)lP3.5T1(记时器1外部输入)lP3.6WR(外部数据存储器写选通)lP3.7RD(外部数据存储器读选通)同时P3口同时为闪烁编程和编程校验接收一些控制信号。

●RST、ALE/PROG、PSEN、XTAL1、XTAL2:

等等笔者就不一一赘述,详细请参照相关资料。

3.1.2DS18B20的介绍DS18B20数字温度传感器接线方便,耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。

图3-3DS18B20的实物管脚分布图DS18B20引脚及特点

(1)引脚功能说明GND是地址信号;

DQ是数据输入/输出引脚,开漏单总线接口引脚,当被用在寄生电源下,也可以向器件提供电源;

VDD为外接供电电源输入端(在寄生电源接线方式时接地)。

(2)DS18B20功能特点1、采用单总线技术,只需一根I/O线,在一根线上能挂接多个DS18B20。

2、每个DS18B20具有一个特有的64位序列号,依据序列号访问地应的器件。

3、低压供电,电源范围从3.0~5.5V,可以本地供电,也可以直接从数据线窃取电源(寄生电源方式)。

4、测温范围为-55℃~+125℃,在-10℃~+85℃范围内误差为±

0.5℃。

用户可自设定报警上下限温度。

5、报警搜索命令可识别和寻址超过程序限定温度(温度报警条件)的器件。

6、分辨率由用户设置为9~12位。

7、D将检测到温度值转化为数字量,与主控制器进行数据通信。

8、电源极性接反时,温度计不能正常工作。

DS18B20的内部结构

(1)64位激光ROM每一个DS18B20包括一个唯一个64位长的ROM编码。

64位ROM的位结构如下图3-5所示。

开始的8位是单线产品系列编码(DS18B20编码是10h);

接着的48位是每个器件唯一的系列号;

最后的8位是开始56位CRC检验码。

64位ROM和ROM操作控制部分允许DS18B20作为一个单线器件工作并遵循“单线总线系统”一节中所详述的单线协议。

直到ROM操作协议被满足,DS18B20控制部分的功能是不可访问的。

8位检验CRC48位序列号8位工厂代码(10H)

MSBLSBMSBLSBMSBLSB图3-564位ROM结构框图(3)运用—报警信号TH或TL的最高比较位对应于16位温度寄存器符号位。

若温度测量的结果低于TL或者高于TH,器件内告警标志将置位。

每次温度测量更新此标志。

只要告警标志置位,DS18B20将对告警搜索命令做出响应。

这允许并联接许多DS18B20,同时进行温度测量。

(4)CRC产生DS18B20有一存贮在64位ROM的最高有效字节内的8位CRC。

总线上的主机可以根据64位ROM的前56位计算机CRC的值并把它与存贮在DS18B20内的值进行比较以决定ROM的数据是否已被主机正确地接收。

CRC的等效多项式函数为:

CRC=X8+X5+X4+1(公式3.1)

DS18B20也利用与上述相同的多项式函数产生一个8位CRC值并把此值提供给总线的主机以确认数据字节的传送。

当存贮在DS18B20内或由DS18B20计算得到的CRC值与总线主机产生的值不相符合时,在DS18B20内没有电路来阻住命令序列的继续执行。

(5)存贮器DS18B20的存贮器由一个高速暂存(便笺式)RAM和一个非易失性、电可擦除EEPROM组成,后者存贮高温度和低温度触发器TH和TL。

暂存存贮器有助于在单线通信时确保数据的完整性。

数据首先写入暂存存贮器,在那里它可以被读回。

当数据被校验之后,复制暂存存贮器的命令把数据传送到非易失性EEPROM。

这一过程确保了更改存贮器时数据的完整性。

DS18B20的测温原理如图3-11所示,图中低温度系数振荡器的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给减法计数器1;

高温度系数振荡器随温度变化其振荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入。

预置斜率累加器低温度系数振荡器减法计数器1预置减到0温度寄存器计数比较器高温度系数振荡器减法计数器2减到0图3-11DS18B20测温原理图图中还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲进行计数,进而完成温度测量。

高温度系数振荡器决定计数门的开启时间,测量前,将-55℃所对应的基数分别置入减法计数器和温度寄存器中,减法计数器和温度寄存器被预置在-55℃所对应的基数值。

另外,DS18B20单线通信功能是分时完成的,所以读/写时序很重要。

系统对DS18B20的各种操作必须按协议进行。

3.2单片机最小系统设计单片机最小系统就是指能使单片机工作的最少的器件构成的系统。

因为单片机已经包含了数据存储器和程序存储器,所以只要在其外部加上时钟电路和复位电路就可以构成单片机最小系统。

3.2.1时钟电路图3-12是时钟电路的PROTEUS仿真图。

图3-12时钟电路单片机允许的振荡晶体可在1.2~24MHz之间选择,一般为11.0592MHz。

电容C2,C3的取值对振荡频率输出的稳定性、大小及振荡电路起振速度有一定的影响,可在20~100pF之间选择,典型值位30pF。

3.2.2复位电路计算机每次开始工作,CPU和系统中的其他部件都必须要有一个确定的初值,即复位状态。

图3-13是单片机复位电路仿真图。

图3-13复位电路单片机RST引脚是高电平有效。

单片机在上电瞬间C1充电,RST引脚端引出正脉冲,只要RST端保持两个机械周期以上的高电平,单片机就能复位。

在单片机工作后,如果还想再次复位,只需按下开关,单片机就能重新变成复位状态。

当晶体振荡频率为12MHz时,RC的典型值为C=10μF,R=8.2KΩ。

3.2.3最小系统图3-14是单片机最小系统的完整仿真图。

图3-14单片机最小系统3.3DS18B20与单片机接口电路的设计DS18B20可以采用两种供电方式:

一种是电源供电方式,另一种是寄生电源供电。

当DS18B20处于写存储器操作和温度A/D转换操作时,总线上必须有强的上拉,上拉开启时间最长为500ms。

采用寄生电源供电方式时,VDD和GND端接地。

因为单线制只有一根线,所以发送接口必需是三态的。

3.4显示电路的设计3.4.12.6.1LED数码管主要技术参数数码管使用条件:

a、段及小数点上加限流电阻b、使用电压:

段:

根据发光颜色决定;

小数点:

根据发光颜色决定c、使用电流:

静态:

总电流80mA(每段10mA);

动态:

平均电流4-5mA峰值电流100mA上图是七段数码管引脚图,其中共阳极数码管的引脚图和共阴极的是一模一样的,4位数码管的引脚图数码管的使用注意说明:

(1)数码管表面不要用手触摸,不要用手去弄引角;

(2)焊接温度:

260度;

焊接时间:

5S(3)表面有保护膜的产品,可以在使用前撕下来。

2.6.2LED数码管的引脚说明分为共阳极与共阴极两种,对于单个数码管,从正面看进去,以左下角那个脚为1脚,逆时针方向为110脚,左上角那个脚便是10脚了,上两个图的数字分别与这10个管脚对应。

注意,3脚和8脚是连通的,这两个都是公共脚。

另外常用的是四位数码管,内部的数码管共用a~dp这几根数据线,由于里面有4个数码管,加上a~dp,一共有12个引脚,下图是一个共阴四位数码管内部结构图(。

引脚排列依然是从左下角的那个脚(1脚)开始,以逆时针方向依次为1~12脚,下图中的数字与之一一对应。

图2-18位共阳数码管内部结构2.6.3数码管编码说明4位数码管编码说明,如4.5表所示:

表4.5控制命令表P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0eddpcgbfa00010100028H111101011EBH20011001032H310100010A2H411100001E1H510100100A4H60010010024H711101010EAH80010000020H910100000A0HH0110000161HL001100013DH-11110111F7HC001111003CH第4章系统程序的设计4.1系统设计内容系统程序主要包括主程序、读出温度子程序、温度转换命令子程序、计算温度子程序、测量序列号子程序、显示数据刷新子程序等。

4.1.1主程序主程序主要功能是负责温度的实时显示、读出处理DS18B20的测量温度值。

主程序流程图如图4-1所示:

开始调用显示子程序显示当前四路温度初始化读取并显示序列号图4-1主程序流程图4.1.2读出温度子程序读出温度子程序的主要功能是读出RAM中的9字节。

在读出时须进行CRC校验,校验有错时不进行温度数据的改写。

读出温度子程序流程图如图4-2所示:

开始复位DS18B20发跳过ROM命令发出温度转换命令转换完毕复位DS18B20发匹配ROM命令发1个DS18B20序列号读温度值存入储存器指向下一个延时NY图4-2读出温度子程序流程图4.1.3温度转换命令子程序温度转换命令子程序主要是发温度转换开始命令,当采用12位分辨率时,转换时间约为750ms。

在本程序设计中,采用1s显示程序延时法等待转换的完成。

温度转换命令子程序流程图如图4-3所示:

发DS18B20复位命令发跳过ROM命令发温度转换开始命令结束图4-3温度转换命令子程序流程图4.1.4计算温度子程序计算温度子程序将RAM中读取值进行BCD码的转换运算,并进行温度值正负的判定。

计算温度子程序流程图如图4-4所示:

开始温度零下?

温度值取补码置“-”标志位计算小数位温度BCD值计算小数位温计算小数位温度BCD值度BCD值结束置“+”标志NY图4-4计算温度子程序流程图4.1.5温度数据的计算处理方法从DS18B20读取出的二进制值必须转换成十进制值,才能用于字符的显示。

DS18B20的转换精度为9~12位,为了提高精度采用12位。

在采用12位转换精度时,温度寄存器里的值是以0.0625为步进的,即温度值为寄存器里的二进制值乘以0.0625,就是实际的十进制温度值。

通过观察表4-1可以发现,一个十进制与二进制间有很明显的关系,就是把二进制的高字节的低半字节和低字节的高半字节组成一字节,这个字节的二进制化为十进制后,就是温度值的百、十、个位字节,所以二进制值范围是0~F,转换成十进制小数就是0.0625的倍数(0~15倍)。

这样需要4位的数码管来表示小数部分。

实际应用不必这么高的精度,采用1位数码管来显示小数,可以精确到0.1℃。

表4.5二进制与十进制的近似对应关系表小数部分二进制值0123456789ABCDEF十进制值00112334556678894.2源程序4.2.1DS18B20的各条ROM命令

(1)ReadROM[33H]。

这条命令允许总线控制器独到DS18B20的8位系列编码、唯一的序列号和8位CRC码。

只要在总线上存在单只DS18B20时,才能使用该命令。

如果总线上有不止一个从机,则当所有从机试图同时传送信号时就会发生数据冲突(漏极开路连在一起形成相“与”的效果)。

(2)MatchROM[55H].这是一条匹配ROM命令,后跟64位ROM序列,让总线控制器在多点总线上定位一只特定的DS18B20.只有与64位ROM序列完全匹配的DS18B20才能响应随后的存储器操作.所有与64位ROM序列不匹配的从机都将等待复位脉冲.这条命令在总线上有单个或多个器件时都可以使用.(3)SkipROM[0CCH].这条命令允许总线控制器不用提供64位ROM编码就使用存储器操作命令,在单点总线情况下,可以节省时间.如果总线上不止一个从机,则在SkipROM命令之后跟着发一条读命令.由于多个从机同时传送信号,所以总线上就会发生数据冲突(漏极开路下拉效果相当于相“与”)。

(4)SearchROM[0F0H]。

当一个系统初次启动时,总线控制器可能并不知道单线总线上有多少个器件或它们的64位ROM编码。

搜索ROM命令允许总线控制器用排除法识别总线上的所有从机的64位编码。

(5)AlarmSearch[0ECH]。

这条命令的流程与SearchROM相同。

然而,只有在最近一次测温后遇到符合报警条件的情况下,DS18B20才会响应这条命令。

报警条件定义为温度高于TH或低于TL。

只要DS18B20不掉电,报警状态将一直保持,直到再一次测得的温度值达不到报警条件。

(6)WriteScratchpad[4EH]。

这条命令向DS18B20的暂存器TH和TL中写入数据。

可以在任何时刻发出复位命令来中止写入。

(7)ReadScratchapad[0BEH]。

这条命令读取暂存器的内容。

读取将从第一字节开始,一直进行下去,直到第九字节(CRC)读完。

如果不想读完所有字节,则控制器可以在任何时间发出复位命令来中止读取。

(8)CopyScratchpad[48H]。

这条命令把暂存器的内容拷贝到DS18B20的E²

PROM存储器里,即把温度报警触发字节存入非易失性存储器里。

如果总线控制器在这条命令之后跟着发出读时间隙,而DS18B20又忙于把暂存器拷贝到E²

PROM存储器,则DS18B20就会输出一个0;

如果拷贝结束,则DS18B20输出1。

如果使用寄生电源,则总线控制器必须在这条命令发出后立即启动强上拉,并最少保持10ms。

(9)ConvertT[44H]。

这条命令启动一次温度转换而无需其他数据。

温度转换命令被执行后DS18B20保持等待状态。

如果总线控制器在这条命令之后跟着发出读时间隙,而DS18B20又忙于做时间转换,则DS18B20将在总线上输出0;

如果温度转换成功,则输出1。

如果使用寄生电源,则总线控制器必须在发出这条命令后立即启动强上拉,并保持500ms以上时间。

(10)RecallE²

[0B8H]。

这条命令把报警触发器里的值拷贝回暂存器。

这种拷贝操作在DS18B20上电时自动执行,这样器件一上电暂存器里马上就存在有效的数据了。

若在这条命令发出之后发出读数据隙,器件会输出温度转换忙的标识:

0表示忙;

1表示完成。

(11)ReadPowerSupply[0B4H]。

若把这条命令发给DS18B20后发出读时间隙,器件会返回它的电源模式0:

0表示寄生电源;

1表示外部电源。

第5章调试及性能分析5.1系统的调试硬件调试比较简单,首先检查电路的焊接是否正确,然后可以用万用表测试或通电检测。

软件测试本文利用Proteus与KEILC51对单片机多点温度测量系统进行了仿真设计.从本文结果可以看出,利用Proteus进行单片机系统的仿真设计可以极大地简化单片机程序在目标硬件上的调试工作,大幅度节省制作电路板的时间,对于提高产品的开发效率、降低开发成本等有重要作用.硬件电路的简单是以软件的复杂为代价的,所以在程序编写和调试的过程中稍一粗心就会出现错误,包括时间延时不够,设置参数的类型有误等错误。

本课题通过分析对比各种不同的温度传感器,选定DS18B20,这种单总线数字温度传感器的通信方式比较独特,软件编写要求的比较新颖,特点突出。

用其构建的系统有很多优点:

硬件连线简单,省去了使用模拟传感器要进行放大、A/D转换等工作,由于它的级联功能,一条总线可挂接多个传感器测量不同位置的温度,根据DS18B20唯一的序号识别不同传感器在各自位置的温度。

需要注意的是,在系统安装及工作之前应将主机逐个与DS18B20挂接,以读出其序列号。

另外,由于DS18B20单线通信功能是分时完成的,遵循严格的时隙概念,因此,系统对DS18B20和各种操作必须按协议进行,即:

初始化DS18B20(发复位脉冲)—发ROM功能命令—发存储器操作命令—处理数据。

现场温度直接以“一线总线”的数字方式传输,每一个自带地址,大大减少了系统的电缆数,提高了系统的稳定性和抗干扰性。

通过调试成型系统发现了DS18B20除了上述优点外,还有一些缺点,如:

简单的硬件连接的代价是复杂的软件时序,DS18B20在测量温度的时候,灵敏度不够高,温度快速变化时无法迅速显示出其变化。

通过一系列的实验发现:

由DS18B20构建的测温小系统适用于环境温度监控,对温度小变化较敏感;

不适合应用于要求实时性强、温度跨度大的测温方式。

5.2性能分析性能测试可用制作的温度计和已有的成品温度计同时进行测量比较。

由于DS18B20的精度很高,所以误差指标可以限制在±

0.1℃以内。

另外,0~100℃的测量范围使得该温度计完全适合一般的应用场合,其低压供电特性可以做成电池供电的手持电子温度计。

DS18B20温度计还可以在高低温报警、远距离多点测温控制等方面进行应用开发,但在实际设计中应注意一下问题:

①DS18B20工作时电流高达1.5mA,总线上挂接点数较多且同时进行转换时要考虑增加总线驱动,可用单片机端口在温度转换时导通一个MOSFET供电。

②连接DS18B20的总线电缆是有长度限制的,因此在用DS18B20进行长距离测温系统设计时要充分考虑总线分布电容和阻抗匹配等问题。

③在DS18B20测温程序设计中,向DS18B20发出温度转换命令后,程序总要等待DS18B20的返回信号。

一旦某个DS18B20

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 企业管理

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

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