can总线温度控制.docx

上传人:b****6 文档编号:8868216 上传时间:2023-02-02 格式:DOCX 页数:28 大小:651.88KB
下载 相关 举报
can总线温度控制.docx_第1页
第1页 / 共28页
can总线温度控制.docx_第2页
第2页 / 共28页
can总线温度控制.docx_第3页
第3页 / 共28页
can总线温度控制.docx_第4页
第4页 / 共28页
can总线温度控制.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

can总线温度控制.docx

《can总线温度控制.docx》由会员分享,可在线阅读,更多相关《can总线温度控制.docx(28页珍藏版)》请在冰豆网上搜索。

can总线温度控制.docx

can总线温度控制

祝你成功

本系统以AT89S52单片机为核心部件,外加温度采集电路、及显示电路和越限报警等电路。

采用单总线型数字式的温度传感器DS18B20,使系统具有测温误差小、分辨率高、抗干扰能力强,动态显示的方式等特点。

本设计既可以对当前温度进行检测又可以对温度进行数码显示,两位整数两位小数的显示方式具有更高的显示精度,若超越极限温度则触发蜂鸣器报警。

利用功能强大的Keil和具有互动电路仿真的Proteus进行程序的编写和仿真。

关键词:

仿真温度检测报警DS18B20

目录

第一章选题依据1

1.1课题背景1

1.2研究设计内容2

第二章温度检测系统的硬件设计3

2.1电路总体原理框图3

2.1.1AT89S52介绍4

2.2DS18B20的特性6

2.2.1DS18B20的外形和内部结构6

2.2.2DS18B20的使用方法7

2.3测温电路8

2.4单片机复位电路9

2.5LED显示电路10

2.6报警电路11

第三章温度检测系统软件设计12

3.1总流程图12

3.2延时设计13

3.3复位设计14

3.4显示设计14

第四章系统仿真调试16

4.1Proteus7.116

4.2Keiluvision217

4.3仿真结果分析19

4.4硬件焊接及系统调试问题20

4.5结论22

致谢23

参考文献24

附录25

第一章选题依据

在科学技术突飞猛进的今天,温度检测、控制起不可忽视的作用。

温度控制无论在医疗电子领域还是工业控制领域应用都非常广泛,如在冶金工业、化工生产、电力工程、造纸行业、机械制造和食品加工等诸多领域中,人们都需要对各类加热炉、热处理炉、反应炉和锅炉中的温度进行检测和控制,医疗电子领域的生化分析仪等,内部都涉及到温度控制。

本课题它完成了从温度的采集、转换、显示以及报警的一系列任务。

本文介绍了以AT89S52单片机为核心的温度控制系统的工作原理和设计方法。

温度信号由温度芯片DS18B20采集,并以数字信号的方式传送给单片机,单片机进行温度的判断是否超越所设置的温度极限,若低于或高于所设温度,单片机将发出信号使蜂鸣器自动报警。

文中对每个部分功能、实现过程作了详细介绍。

整个系统的核心是进行温度监控报警,完成了课题所有要求。

1.1课题背景

自动控制系统在各个领域尤其是工业领域中有着及其广泛的应用,温度控制是控制系统中最为常见的控制类型之一。

随着单片机技术的飞速发展,通过单片机对被控对象进行控制日益成为今后自动控制领域的一个重要发展方向。

采用单片机AT89S52来对温度进行控制,不仅具有控制方便、组态简单和灵活性大等优点,而且可以大幅度提高被控温度的技术指标,从而能够大大提高产品的质量和数量。

1.2研究设计内容

本系统采用的新型智能化温度传感器DS18B20,能以数字形式直接输出被测点温度值,具有测温误差小、分辨率高、抗干扰能力强、成本低,是研制和开发具有高性价比的新一代温度检测系统的核心器件。

本系统设计了一个由数字化测温元件构成的温度检测报警系统,本系统包括了温度检测、温度显示、温度越限报警等部分。

本系统主要运用了单片机AT89S52,高性能CMOS8位单片机,片内含8Kbytes的可反复擦写的。

兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元等强大功能。

也采用了新型传感器DS18B20,利用它的体积小,高精度、强大的读写功能等特点进行温度的采集。

用PNP型三极管做驱动,采用4位共阴LED动态显示方式。

主要采用了手动复位操作。

第二章温度检测系统的硬件设计

2.1电路总体原理框图

温度测量及显示、报警系统控制的总体结构如图2-1所示。

系统主要包括现场温度采集、温度显示、电路控制输出、与报警装置和系统核心AT89S52单片机作为微处理器。

图2-1电路总体原理框图

温度采集电路以数字量形式将现场温度传至单片机。

单片机结合现场温度与用户设定的目标温度,进行判断是否超越极限以此控制蜂鸣器自动报警。

2.1.1AT89S52介绍

1、AT89S52性质

AT89S52单片机是美国ATMEL公司生产的AT89S52是一个低功耗,高性能CMOS8位单片机,片内含8kBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能强大的微型计算机的AT89S52可为许多嵌入式控制应用系统提供高性价比的解决方案。

AT89S52具有如下特点:

40个引脚,8kBytesFlash片内程序存储器256bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。

AT89S52芯片有40条引脚,双列直插式封装引脚图如2-2图所示:

2-2AT89S52引脚图

Vss(20):

接地。

Vcc(40):

电源+5V。

PSEN(29):

片外程序存储器选通信号,低电平有效。

RST/VPD(9):

复位信号输入端。

AT89S52接能电源后,在时钟电路作用下,该脚上出现两个机器周期以上的高电平,使内部复位。

第二功能是VPD,即备用电源输入端。

ALE/PROG(30):

地址锁存信号输出端。

P0口(39—32):

双向I/O口,既可作地址/数据总线口用,也可作普通I/O口用。

P1口(1—8):

准双向通用I/O口。

P2口(21—28):

准双向口,既可作地址总线口输出地址高8位,也可作普通I/O口用

P3口(10—17):

多用途口,既可做普通I/O口,也可按每位定义的第二功能操作。

ALE/PROG(30):

地址锁存信号输出端。

主要功能特性:

◆兼容MCS-51指令系统

◆8k可反复擦写(>1000次)FlashROM

◆32个双向I/O口

◆4.5-5.5V工作电压

◆时钟频率0-33MHz

◆全双工UART串行中断口线

◆256x8bit内部RAM

◆2个外部中断源

◆低功耗空闲和省电模式

◆中断唤醒省电模式

◆3级加密位

◆看门狗(WDT)电路

◆软件设置空闲和省电功能

◆灵活的ISP字节和分页编程

◆双数据寄存器指针

◆2个16位可编程定时/计数器

AT89S52共有4个(P0、P1、P2、P3口)8位并行I/O端口,共32个引脚。

P0口双向I/O口,用于分时传送低8位地址和8位数据信号;P1、P2、P3口均为准双向I/O口;其中P2口还用于传送高8位地址信号;P3口每一引脚还具有特殊功能,用于特殊信号的输入输出和控制信号。

AT89S52内部有一个可编程的、全双工的串行接口。

它串行收发存储在特殊功能寄存器SFR的串行数据缓冲器SBUF中的数据。

2.2DS18B20的特性

◆适应电压范围更宽,电压范围:

3.0~5.5V,在寄生电源方式下由数据线供电。

◆独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。

◆DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温。

◆DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内。

◆温范围-55℃~+125℃,在-10~+85℃时精度为0.5℃。

◆可编程的分辨率为9~12位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃,可实现高精度测温。

◆在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在你750ms内把温度值转换为数字,速度更快。

◆测量结果直接输出数字温度信号,以"一线总线"串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力。

◆负压特性:

电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。

2.2.1DS18B20的外形和内部结构

DS18B20的外形结构及引脚排列

图2-3DS18B20外形结构图

DS18B20内部结构主要由四部分组成:

64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。

2.2.2DS18B20的使用方法

DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。

DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。

该协议定义了几种信号的时序:

初始化时序、读时序、写时序。

所有时序都是将主机作为主设备,单总线器件作为从设备。

而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。

数据和命令的传输都是低位在先。

1、DS18B20的读时序

DS18B20的读时序分为读0时序和读1时序两个过程。

DS18B20的读时隙是从主机把单总线拉低之后,在15秒之内就得释放单总线,以让DS18B20把数据传输到单总线上。

DS18B20在完成一个读时序过程,至少需要60us才能完成。

图2-4DS18B20的读时序

2、DS18B20的写时序

DS18B20的写时序仍然分为写0时序和写1时序两个过程。

DS18B20写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60us,保证DS18B20能够在15us到45us之间能够正确地采样IO总线上的“0”电平,当要写1时序时,单总线被拉低之后,在15us之内就得释放单总线。

图2-5DS18B20的写时序

2.3测温电路

DS18B20测温原理如图2-6所示。

图中低温度系数晶振的振荡频率受温度影响很小,用于产生固定频率的脉冲信号送给计数器1。

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

计数器1和温度寄存器被预置在-55℃所对应的一个基数值。

计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时,温度寄存器的值将加1,计数器1的预置将重新被装入,计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。

图2-6DS18B20测温原理框图

DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:

用16位符号扩展的二进制补码读数形式提供,以0.0625℃/LSB形式表达,其中S为符号位。

图2-7DS18B20温度值格式表

这是12位转化后得到的12位数据,存储在18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。

如+125℃的数字输出07D0H,+25.0625℃的数

字输出为0191H,-25.0625℃的数字输出为FF6FH,-55℃的数字输出为FC90H。

最后CPU向传感器读取温度,加以处理。

2.4单片机复位电路

当单片机AT89S52的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,单片机就执行复位操作。

如果RST持续为高电平,单片机就处于循环复位状态。

根据应用的要求,复位操作通常有两种基本形式:

上电复位和上电或开关复位。

上电复位要求接通电源后,自动实现复位操作。

常用的上电复位图如3-5中A图所示。

图中电容C1和R1对电源+5V来说构成微分电路。

上电后使RST持续一段时间的高电平。

由于单片机内的等效电阻作用,不用图中电阻R1,也能达到上电复位的功能,如3-5图B所示。

图2-8(A)上电复位图图2-8(B)上电复位电路

上电或开关复位要求电源接通后,单片机自动复位,并且在单片机运行期间,用开关操作也能使单片机复位。

常用的上电或开关复位电路如上图(B)所示。

上电后,由于电容C3的充电和反相门的作用,使RST持续一段时间的高电平。

当单片机已在运行当中时,按下复位键K后松开,也能使RST为一段时间的高电平,从而实现上电或开关复位的操作。

根据实际操作的经验,下面给出这两种复位电路的电容、电阻参考值。

上图(A)中:

Cl=10-30uF,R1=1kO

上图(B)中:

C:

=1uF,Rl=lkO,R2=10kO

单片机复位后的状态:

单片机的复位操作使单片机进入初始化状态,其中包括使程序计数器PC=0000H,这表明程序从0000H地址单元开始执行。

单片机冷启动后,片内RAM为随机值,运行中的复位操作不改变片内RAM区中的内容,21个特殊功能寄存器复位后的状态为确定值,见下表。

说明:

表中符号*为随机状态;A=00H,表明累加器已被清零。

表2-1

PSW=00H,表明选寄存器0组为工作寄存器组;SP=07H,表明堆栈指针指向片内RAM07H字节单元,根据堆栈操作的先加后压法则,第一个被压入的内容写入到08H单元中。

Po-P3=FFH,表明已向各端口线写入1,此时,各端口既可用于输入又可用于输出;

IP=×××00000B,表明各个中断源处于低优先级;

IE=0××00000B,表明各个中断均被关断;

系统复位是任何微机系统执行的第一步,使整个控制芯片回到默认的硬件状态下。

51单片机的复位是由RESET引脚来控制的,此引脚与高电平相接超过24个振荡周期后,51单片机即进入芯片内部复位状态,而且一直在此状态下等待,直到RESET引脚转为低电平后,才检查EA引脚是高电平或低电平,若为高电平则执行芯片内部的程序代码,若为低电平便会执行外部程序。

2.5LED显示电路

单片机I/O的应用最典型的是通过I/O口与LED数码管构成显示电路,我不采用LCD液晶显示器的主要原因是液晶显示,省电,常用于精密仪器仪表,而且编程复杂,而数码管显示,亮度高,成本低,编程简易,易操作。

显示采用4位共阴LED动态显示方式,显示内容有温度值的十位、个位及小数点后两位。

用P2口作为段控码输出,P1.0—P1.2作为位控码输出,用PNP型三极管做驱动。

模块电路如下图

图2-9显示接口电路

工作原理:

利用DS18B2O所测量到的温度经过转换,再将转换出来的温度输入LED使内部的二极2管发光,使我们能看到清晰的温度值。

2.6报警电路

此设计选择了蜂鸣器,因为是做设计,且比扬声器使用起来简单,只要按照极性要求加上合适的直流电压,就可以发出固有频率的声音,从经济性、电路结构、系统性等各方面考虑。

当用户设定的目标温度达到时需用声音的形式提醒用户,此时蜂鸣器为断续的滴答滴答的叫声。

在本系统中我们为用户设计了越限报警,当温度低于用户设置的目标温度20度或高于30度时蜂鸣器为连续不断的滴答滴答叫声。

当单片机P1.7输出高电平时,三极管导通,蜂鸣器工作发出报警声。

报警及指示灯电路如下图2-10示

图2-10报警及指示灯电路图

当温度在正常范围内显示绿灯,当温度低于设限温度时,显示红灯2亮,同时,蜂鸣器报警。

当温度高于设限温度时,显示红灯3亮,同时,蜂鸣器报警。

第三章温度检测系统软件设计

3.1总流程图

 

图3-1总流程图

主程序:

voidmain()

{

uchari;

uchartemp;

floatbackbit;

ucharcounter;

counter=5;

sp=1;

for(i=0;i<4;i++)

dispbuf[i]=0;

while

(1)

{

//温度测量频率没有必要太高,太高反而影响数码显示

//所以用计数器加以控制

if(counter--==0)

{

readtemp();

counter=2;

}

//readtemp();//读18B20

backbit=temper[0];//换成浮点数

backbit=backbit*6.25;//乘以0.0625*100

temp=backbit;//取低2位整数部分

dispbuf[3]=temp%10;

temp=temp/10;

dispbuf[2]=temp%10;

temp=temper[1];//取整数部分

dispbuf[1]=temp%10;

temp=temp/10;

dispbuf[0]=temp%10;

saomiao();

}

}

3.2延时设计

本系统选用的AT89S52单片机的工作频率为12MHZ。

可以知道具体每条指令的周期数,这样就可以通过指令的执行条数来确定时间。

具体的延时程序:

voiddelay(uintz)

{

uintx,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

本系统不仅对主函数进行了延时,还对DS18B20的操作进行了延时,以便我们能更容易看清楚所测温度的变化。

对DS18B20的延时程序如下:

voiddelay1(uintz)

{

while(z--);

}

3.3复位设计

本系统主要采用的是手动进行复位,在上电后使RST持续一段时间的高电平。

就能使系统复位。

其程序如下:

voidreset(void)

{

ucharx=0;

DQ=1;

delay1(8);//稍做延时

DQ=0;

delay1(80);//精确延时大于480us

DQ=1;//拉高总线

delay(14);

x=DQ;

delay1(20);

}

3.4显示设计

本设计主要是采用了四位一体LED数码管,都对起进行了上拉,以增加数码管的亮度。

其程序:

voidsaomiao()

{

P0=table[dispbuf[0]];//十位

P1=0xfe;

delay

(2);

P1=0xff;

P0=table1[dispbuf[1]];//个位

P1=0xfd;

delay

(2);

P1=0xff;

P0=table[dispbuf[2]];//十分位

P1=0xfb;

delay

(2);

P1=0xff;

P0=table[dispbuf[3]];//百分位

P1=0xf7;

delay

(2);

P1=0xff;

第四章系统仿真调试

4.1Proteus7.1

Proteus软件是来自英国Labcenterelectronics公司的EDA工具软件,Proteus软件有十多年的历史,在全球广泛使用,除了其具有和其它EDA工具一样的原理布图、PCB自动或人工布线及电路仿真的功能外,其革命性的功能是,他的电路仿真是互动的,针对微处理器的应用,还可以直接在基于原理图的虚拟原型上编程,并实现软件源码级的实时调试。

Proteus与其它单片机仿真软件不同的是,它不仅能仿真单片机CPU 的工作情况,也能仿真单片机外围电路或没有单片机参与的其它电路的工作情况。

因此在仿真和程序调试时,关心的不再是某些语句执行时单片机寄存器和存储器内容的改变,而是从工程的角度直接看程序运行和电路工作的过程和结果。

Proteus的工作过程

◆运行proteus的ISIS程序后,进入该仿真软件的主界面。

◆Proteus 软件所提供的仪表资源,对于一个仿真软件或实验室,测试的仪器仪表的数量、类型和质量,是衡量实验室是否合格的一个关键因素。

◆Proteus 软件所提供的调试手段,Proteus提供了比较丰富的测试信号用于电路的测试。

 

图4-1Proteus的的主界面

4.2Keiluvision2

KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。

用过汇编语言后再使用C来开发,体会更加深刻。

KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。

另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。

在开发大型软件时更能体现高级语言的优势。

在打开Keil主界面后,新建工程进入界面如下图:

 

图4-2Keil主界面

程序编译成功后,点击Optionsfortarget后再点击Output进入以下界面

再点击GreateHEXFi:

生成HEX文件。

图4-3生成HEX文件界面

4.3仿真结果分析

图4-4系统温度正常情况

图4-5系统温度低于20℃

图4-6系统温度高于30℃

说明:

图4-1系统温度正常情况下的仿真图,此时,左边第一个发光二极管亮,蜂鸣器不报警,同时,LED数码管显示当前温度。

图4-2系统温度低于20℃情况下的仿真图,此时,中间发光二极管亮,峰鸣器发出声音报警,LED数码管显示当前温度。

图4-3系统温度高于30℃情况下的仿真图,此时,右边第一个发光二极管亮,蜂鸣器发出声音报警,LED数码管显示当前温度。

4.4硬件焊接及系统调试问题

在本次设计中,从设计的开始到结束这段历程中,也遇到了无数的困难,也让我对自己一次次的失去信心,碰到的问题有些看起来很简单,但做起来却特别难。

比如在焊接一不小心把元件的方向接反或者是把元件的引脚接错,由于板子太小,这对我们的焊接技术也是一个很大的考验,在焊接的时候我也常常把几个引脚焊接在了一起,导致线路的短路,烧坏元件。

在焊接时也常常忘记焊接一些非常重要的零件,在本次设计中电路刚开始工作,4位LED就冒烟,随着一声响就报废,原来没有对系统加限流电阻。

在本次

设计的焊接中也出现了一些非常简单而难以解决的问题,比如虚焊,本次设计在焊接AT89S52时,其接Vcc那个引脚的线时,没有接好,就导致整个系统不能工作,最初还以为是芯片坏了,就换了块,但还是不行,结果才发现引脚的线没有焊接好。

在软件方面,经过无数次的更改,无数次的重新烧写程序,最终才完成一组完整的程序,在经历了千辛万苦才完成了本次设计。

本次设计加强了我对C语言及Keil软件等的学习。

让我对单片机的兴趣也更加浓厚,对我的学习生涯奠定了坚实基础。

4.5结论

现在无论是工业、医疗等许多行业对温度检测系统运用广泛,本设计主要是依靠新型DS18B20温度传感器对温度的采集以及AT89S52单片机、LED数码管、蜂鸣器完成了一个简单的温度控制自动报警系统。

本设计充分采用了DS18B20的高精度、体积小、一线总线等特点和AT89S52单片机的强大功能以及使用蜂鸣器而不用扬声器,既节约了时间、经济成本,也减小了设计电路的复杂性。

但本设计也有许多不足的地方,在做硬件时焊接技术还不够成熟,布线也不是很理想等。

通过这次温度控制系统的设计,我也收获了许多,这以后使我对单片机更加感兴趣,也加强了我对C语言等的学习,使我的学习往前迈了一大步

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

当前位置:首页 > 高等教育 > 农学

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

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