基于单片机的温度采集仪.docx

上传人:b****8 文档编号:9941111 上传时间:2023-02-07 格式:DOCX 页数:27 大小:319.84KB
下载 相关 举报
基于单片机的温度采集仪.docx_第1页
第1页 / 共27页
基于单片机的温度采集仪.docx_第2页
第2页 / 共27页
基于单片机的温度采集仪.docx_第3页
第3页 / 共27页
基于单片机的温度采集仪.docx_第4页
第4页 / 共27页
基于单片机的温度采集仪.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

基于单片机的温度采集仪.docx

《基于单片机的温度采集仪.docx》由会员分享,可在线阅读,更多相关《基于单片机的温度采集仪.docx(27页珍藏版)》请在冰豆网上搜索。

基于单片机的温度采集仪.docx

基于单片机的温度采集仪

电气信息工程学院

2014年12月12日

 

目录

序言...............................................................................................................................3

第一章系统方案..............................................4

1.1课题的意义和目的..........................................................................................................4

1.2主要设计内容.................................................................................................................4

1.3课题的任务要求.......................................................4

1.4单片机选型.................................................................................................................5

1.5系统框图........................................................................................................................6

第二章硬件设计7

2.1单片机模块设计7

2.1.1引脚描述7

2.1.2时钟电路设计9

2.1.3复位电路设计9

2.1.4中断系统10

2.2LCD1602显示电路11

2.2.1LCD1602工作原理及引脚功能11

2.2.2LCD1602硬件原理图12

2.3RS232通信电路设计12

2.4DS18B20电路设计13

2.5外围报警、按键电路13

2.5.1温度上下限值电路设计13

2.5.2蜂鸣器、灯连接报警电路13

第三章软件设计16

3.1主程序设计14

3.2LCD液晶显示软件设计14

3.3温度采集软件设计14

第四章系统的软硬件调试20

4.1硬件调试20

4.1.1上电前的调试15

4.1.2上电后的调试15

4.1.3各模块调试15

4.2软硬件联调15

参考文献16

附录17

附录一硬件原理图17

附录二源程序清单18

附录三实物图21

附录四元器件清单22

 

序言

本设计是一个基于单片机的温度采集仪,该采集仪能够实现温度的采集、显示、上下限报警温度值设定、报警和与PC机的串行通信等功能。

本设计中主要分硬件与软件的设计,硬件包括:

主控模块、温度传感模块、显示模块、按键模块、报警模块、通信模块等,软件包括:

温度采集、按键与报警、显示、PC机上的温度界面等。

系统采用AT89C52单片机进行控制,利用DS18B20温度传感器进行温度检测,并通过串口通信将采集的温度传送至PC机;采用VB6.0软件设计了上位机的实时监测界面,系统设计电路简单,成本低廉,能较好地显示出实际环境温度,且反应迅速,可以应用于很多温度检测领域。

第一章系统方案

1.1课题的意义和目的

温度是一种最基本的环境参数,人民的生活与环境的温度息息相关,不管是在工业生产过程中还是在农业生产过程中都离不开温度的控制,随着人们生活水平的不断提高,人们对于温度的要求也就越来越高,因此研究温度的检测方法和装置具有重要的意义。

温度现场如果比较恶劣,远程测温就变得比较重要。

利用RS-232进行串口接收数据来模拟现实生活中对温度的实时观测与控制。

1.2主要设计内容

本设计是以单片机AT89C52为主控,结合RS-232总线功能,利用DS18B20温度传感器,实现对温度的远程测量。

具体课题设计研究内容如下:

1.提出基于单片机的远程测温的设计方案。

选用“单片机+RS232+DS18B20”的设计方案制作出一个远程测温系统;

2.完成单片机最小系统电路、RS-232接口电路、LCD显示电路等硬件设计;

3.完成远程测温硬件电路相配套的软件程序编写;

4.最终完成系统板的制作安装,对其软硬件的进行综合调试。

1.3课题的任务要求

根据课题的意义和目的,经分析本次课题需要研究的内容,提出了该课题相应的设计任务的要求,具体如下:

1.温度测量范围-15℃到+100℃;

2.自定义的通信协议可靠,传输误码率低;

3.用LCD显示器直接显示读数、显示清晰直观;

4.稳定性好。

1.4单片机选型

在本次设计中,经过分析与比较,选择了单片机AT89C52,这是因为:

1.单片机AT89C52采用的是CHMOS工艺:

高速度、高密度、低功耗。

也就是说AT89C52单片机是一种低功耗单片机。

2.可靠性高、便于扩展。

3.控制功能强。

4.单片机AT89C52片内存储容量较小,除此之外,单片机AT89C52还具有集成度高、体积小、性价比高、应用广泛、易于产品化等特点。

5.单片机AT89C52的引脚是和80C52一样的,所以,当单片机AT89C52取代8052时,可以进行代换。

综合以上,单片机AT89C52是最佳选择。

1.5远程测温中通讯方式的选择

方案:

使用RS232进行通讯。

RS-232-C是美国电子工业协会EIA(ElectronicIndustryAssociation)制定的一种串行物理接口标准。

RS是英文“推荐标准”的缩写,232为标识号,C表示修改次数。

RS-232-C总线标准设有25条信号线,包括一个主通道和一个辅助通道。

  

在多数情况下主要使用主通道,对于一般双工通信,仅需几条信号线就可实现,如一条发送线、一条接收线及一条地线。

RS-232-C标准规定,驱动器允许有2500pF的电容负载,通信距离将受此电容限制,例如,采用150pF/m的通信电缆时,最大通信距离为15m;若每米电缆的电容量减小,通信距离可以增加。

传输距离短的另一原因是RS-232属单端信号传送,存在共地噪声和不能抑制共模干扰等问题,因此一般用于20m以内的通信。

 

1.6系统框图

本次设计选用基于AT89C52单片机通过RS232总线通信的远程测温系统。

其系统框图如图1-1所示。

图1-1系统结构框图

第2章硬件设计

2.1单片机模块设计

如图2-1所示为单片机基本系统结构框图:

图2-1单片机基本系统结构框图

单片机的基本系统也称为最小系统,这种系统所选择的单片机内部资源已能满足系统的硬件需求,不需外接存储器或I/O接口,含有时钟电路和复位电路,外由电源供电。

2.1.1引脚描述

如图2-2所示为AT89C52的引脚结构图:

AT89C52有40条引脚,分为端口线、电源线和控制线三类。

图2-2AT89C52的引脚结构图

1.端口线(4*8=32条)

AT89C52有四个并行I/O端口,每个端口有8条口线,用于传送数据和地址。

P0.0~P0.7:

这组引脚共有8条,为P0口所专用,其中P0.7为最高位,P0.0为最低位。

这8条引脚口有两种不同的功能,分别使用于两种不同的功能。

第一种情况是AT89C52不带片外存储器,P0口可以作为通用I/O使用,P0.0~P0.7用于传送CPU的输入/输出数据。

这时,输出数据可以得到锁存,不需外接专用锁存器,输入数据可以得到缓冲,增加了数据输入的可靠性;第二种情况是AT89C52带片外存储器,P0.0~P0.7在CPU访问片外存储器时用于传送片外存储器的低8位地址,然后传送CPU对片外存储器的读写数据。

P1.0~P1.7:

这8条引脚和P0口的8条引脚类似,P1.7为最高位,P1.0为最低位,当P1口作为通用I/O使用时,P1.0~P1.7的功能和P0口的第一功能相同,也用于传送用户的输入和输出数据。

P2.0~P2.7:

这组引脚的第一功能和上述两组引脚的第一功能相同,即它可以作为通用I/O口使用。

它的第二功能和P0口的第二功能相配合,用于输出片外存储器的高8位地址,共同选中片外存储器单元,但并不能像P0口那样是可以传送存储器的读写数据。

P3.0~P3.7:

这组引脚的第一功能和其余端口的第一功能相同。

第二功能作控制用,每个引脚并不完全相同,如表2-1所示为P3口第二功能:

表2--1P3口第二功能

端口引脚

第二功能

P3.0

RXD(串行输入口)

P3.1

TXD(串行输出口)

P3.2

(外中断0)

P3.3

(外中断1)

P3.4

T0(定时/计数器0)

P3.5

T1(定时/计数器1)

P3.6

(外部数据存储器写选通)

P3.7

(外部数据存储器读选通)

2.电源线(2条)

VCC为+5V电源线,VSS为接地线。

3.控制线(6条)

外接晶体引脚XTAL1和XTAL2

MCS-51的时钟可以利用它内部的振荡器产生,只要在XTAL1、XTAL2引脚上外接这时反馈电路,内部振荡器便自激振荡,产生时钟输出到内部的定时控制逻辑。

定时反馈电路一般为石英晶振和电容组成的并联回路,这种方式称为内部方式。

如果振荡器已起振,则在XTAL2引脚上输出3V左右的正弦波。

ALE/PROG:

地址锁存允许/编程线,配合P0口引脚的第二功能使用,在访问片外存储器时,AT89C52的CPU在P0.0~P0.7引脚线上输出片外存储器低8位地址的同时还在ALE/PROG线上输出一个高电位脉冲,用于把这个片外存储器低8位地址锁存到外部专用地址锁存器读写数据。

在不访问片外存储器[10]时,AT89C52自动在ALE/PROG线上输出频率为F0SC/6的脉冲。

允许访问片外存储器编程电源线,可以控制AT89C52使用片内ROM还是使用片外ROM。

若EA=1,则允许使用ROM;若EA=0,则允许使用片外ROM。

片外ROM选通线,在执行访问片外ROM的指令MOVC时,AT89C52自动在PSEN线上产生一个负脉冲,用于为片外ROM芯片的选通。

其他情况下,PSEN线均为高电平封锁状态。

RST/VPD:

复位电源线,可以使AT89C52处于复位工作状态。

通常,AT89C52的复位有自动上电复位和按钮复位两种。

2.1.2时钟电路设计

时钟电路是计算机的心脏,它控制着计算机的工作节奏。

单片机AT89C52允许的时钟频率是因型号而异的,典型值为12MHZ,单片机AT89C52内部都有一个反相放大器,XTAL1、XTAL2分别为反相放大器输入和输出端,外接定时反馈元件以后就组成振荡器,产生时钟送至单片机内部的各个部件。

定时反馈电路一般为石英晶振和电容组成的并联回路。

如果振荡器已起振,则在XTAL2引脚上输出3V左右的正弦波。

2.1.3复位电路设计

计算机在启动运行是都需要复位,使中央处理器CPU和系统中的其它部件都处于一个确定的初始状态,并从这个状态开始工作。

单片机AT89C52有一个复位引脚RST,它是施密特触发输入,当振荡器起振后,该引脚上出现2个机器周期(即24个时钟周期)以上的高电平。

使器件复位,只要RST保持高电平,MCS-52保持复位状态。

此时ALE、P0、P1、P2、P3口等都输出高电平。

RST变为低电平后,退出复位,CPU从初始状态开始工作。

复位以后内部寄存器的初始状态为(SP=07),P0、P1、P2、P3为0FFH外,其它寄存器都为0。

如图2-3所示为复位电路图:

图2-3复位电路图

2.1.4中断系统

1.概念

在中断系统中,通常将CPU所发出的请求中断的信号称为中断请求信号,CPU接受中断申请终止现行程序而转去为服务对象服务程中断相应,为服务对象服务的程序称为中断服务程序(也称中断处理程序)。

现行程序中断的地方称为断点,为中断服务对象服务完后返回原来的程序称为中断返回。

整个过程称为中断。

2.中断源

AT89C52单片机本身有5个中断源,它们分别是:

由P3.2和3.3引脚输入的外部中断0和外部中断1;内部中断源分别是定时器/计数器T0和T1溢出中断,串行口中断(TXD和RXD。

3.中断允许控制

单片机中断系统中有两种不同类型的中断:

一类称为非屏蔽中断;另一类称为可屏蔽中断。

可以通过对IE的某位置位或清零,从而允许或禁止某个中断,也可通过软件对IE中的EA位清零,可实现对全部中断源的屏蔽。

中断允许寄存器IE,它的字节地址为A8H,其格式如表2-2所示:

表2—2中断允许寄存器IE格式

D7

D6

D5

D4

D3

D2

D1

D0

EA

X

X

ES

ET1

EX1

ET0

EX0

EA:

总开关。

EA=1,CPU开放中断;EA=0,CPU屏蔽所有的中断申请。

ET1:

定时/计数器T1的溢出中断允许位。

ET1=1,允许T1中断;ET1=0,禁止T1中断。

2.2LCD1602显示电路

2.2.1LCD1602工作原理及引脚功能

字符型液晶显示模块是专门用于显示字母、数字、符号等的点阵式的LCD,目前常用的是16*1、16*2,20*2和40*2行等。

本次设计中采用的1602字符型液晶显示器,一行是用来实测温度,另一行是用来显示报警温度的上下限。

1602采用标准14脚(无背光)或16脚(带背光)接口,各引脚功能如表2-3所示。

表2-31602引脚功能介绍

VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最强。

若对比度过高会产生“鬼影”,使用时可以通过一只10K电阻来调整对比度。

RS为寄存器选择端,RS为高电平时选择数据寄存器,为低电平时选择指令寄存器。

R/W为读写信号线,为高电平时进行读操作,为低电平时为写操作。

当R/W和RS同为低电平时可以写人指令或者显示地址;当RS为低电平、R/W为高电平时,可以读忙信号。

当RS为高电平、R/W为低电平时,可以读写数据。

E为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。

D0~D7为8位双向数据线。

2.2.2LCD1602硬件原理图

本设计中RS,R/W,E/N分别接单片机的P2.5,P2.6,P2.7口,8个数据口接单片机的P0口,如图2-4所示。

图2-4液晶与单片机的连接电路

2.3RS232通信电路设计

在控制电路板上做一个串行通信接口可以用PC机通过串口线直接对电路板上的单片机编程,无需专用编程器,不仅简化了编程操作,也方便了系统的调试工作,有利于缩短系统的开发周期。

电路如图所示。

它由一片MAX232串口电平转换芯片Ul及一个9针的串口插座J1组成。

其连接图如下图2-5所示。

图2-5单片机与PC机连接电路

 

2.4DS18B20电路设计

DS18B20是DALLAS公司生产的单总线式数字温度传感器,它具有微型化、低功耗、高性能、抗干扰能力强、易配处理器等优点,特别适用于构成多点温度测控系统,可直接将温度转化成串行数字信号(提供9位二进制数字)给单片机处理,且在同一总线上可以挂接多个传感器芯片。

它具有3引脚TO-92小体积封装形式,温度测量范围为-55℃~+125℃,可编程为9位~12位A/D转换精度,测温分辨率可达0.0625℃,被测温度用符号扩展的16位数字量方式串行输出,其工作电源既可在远端引入,也可采用寄生电源方式产生,多个DS18B20可以并联到3根或2根线上,CPU只需一根端口线就能与多个DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。

以上特点使DS18B20非常适用于远距离多点温度检测系统。

DS18B20温度传感器用来检测当前外部温度,将检测到的温度送入单片机。

应用图如2-6所示:

1脚为GND为电源地

2脚为DQ为数字信号输入/输出端

3脚为VCC为外接供电电源输入端

图2-6DS18B20外形管脚排列及单片机与温度传感器电路图

DS18B20采用外部电源供电方式,通过AT89C52的P2.5口对其进行读写操作。

在I/O线上接一4.7K上拉电阻,以防止电流不足的问题。

外部电源供电方式是DS18B20的最佳工作方式,工作稳定可靠,抗干扰能力强。

2.5外围报警、按键电路

2.5.1温度上下限值电路设计

本设计中的按键电路

在本设计中主要选用了单片机的P1.0,P1.1,P1.2口进行上限温度、下限温度及温度的确定。

硬件电路如图2-7所示。

图2-7温度上下值按键控制电路

2.5.2蜂鸣器、灯连接报警电路

当P3.2输出高电平时,三极管截止,没有电流流过线圈,蜂鸣器不发声;当P3.2输出低电平时,三极管导通,这样蜂鸣器的电流形成回路,发出声音。

因此,可以通过程序控制P3.2脚的电平来使蜂鸣器发出声音和关闭。

蜂鸣器、灯连接报警电路如下图2-8所示。

图2-8蜂鸣器、灯连接报警电路

 

第三章软件设计

3.1主程序设计

主程序流程图如图3-1所示。

图3-1主程序流程图

3.2LCD液晶显示软件设计

液晶显示主要实现的功能就是对实测温度,报警温度上下限值进行显示。

LCD液晶显示软件流程图如图3-2所示。

 

图3-2LCD液晶显示软件流程图

3.3温度采集软件设计

 

第四章系统的软硬件调试

4.1硬件调试

硬件调试主要分成两大块:

上电前的调试和上电后的调试。

4.1.1上电前的调试

在上电前,必须确保电路中不存在断路或短路[14]情况,这一工作是整个调试工作的第一步,也是非常重要的一个步骤。

在这部分调试中主要使用的工具是万用表,用来完成检测电路中是否存在断路或者短路情况等。

通过万用表的检测,没有发现短路和断路的地方,电路基本正常。

4.1.2上电后的调试

在确保硬件电路正常,无异常情况(断路或短路)方可上电调试,上电调试的目的是检验电路是否接错,同时还要检验原理是否正确。

4.1.3各模块调试

①串口通信电路

编写一个串口测试程序,不断的通过串口发送数据,并且在上位机上通过串口调试助手观察数据,以此判定通信线路是否完好。

并且通过示波器观察数据线,看信号的毛刺等状况是否满足通信可靠性要求。

只有串口通信电路调试完成后才可以保证对MAX485芯片的控制准确无误。

②1602液晶电路

编写一个液晶测试程序,让其显示中文字符,来液晶调试[15]程序是否正确。

4.2软硬件联调

接通电源线。

检查无误后给板子上电。

上电后,从机上的LCD1602液晶显示温度值正常,按键也可以进行温度上下限的调整,LED灯可以正常工作。

用手握住DS18B20,对应节点的温度数据就会发生变化,所以可以证明从机采集温度和主从机的232通信都是成功。

综上所述,本设计完成了预期功能目标。

附录

附录一硬件原理图

附录二源程序清单

typedefunsignedcharuchar;

typedefunsignedintuint;

#include

#include"ds18b20.h"

#include"lcd_1602.h"

#include"key.h"

#include"delay.h"

sbithh=P3^2;

sbitll=P3^3;

sbitalarm=P3^4;

ucharcodedis_buf1[]={"teH:

35"};

ucharcodedis_buf2[]={"teL:

20"};

ucharcodedis_buf3[]={"temp:

"};

uchars1num=0,s2num=0;

ucharteH=35,teL=20,flag=0;

voidinit_timer1()

{

TMOD=0x20;//设置定时器1工作模式2

TH1=0xfd;

TL1=0xfd;

TR1=1;

SCON=0x40;

}

voiddisplay()

{

lcd_pos(1,0);

str_dis(dis_buf1);

lcd_pos(1,8);

str_dis(dis_buf2);

lcd_pos(0,0);

str_dis(dis_buf3);

}

s1num++;

if(s1num==1)

{

lcd_pos(1,14);

write_cmd(0x0f);

}

elseif(s1num==2)

lcd_pos(1,6);

else

{

s1num=0;

flag=0;

write_cmd(0x0c);

}

}

voidadd(void)//加

{

if(s1num==1)

{

teL++;

if(teL==36)

teL=0;

lcd_pos(1,13);

int_dis(teL);

lcd_pos(1,14);

}

if(s1num==2)

{

teH++;

if(teH==51)

teH=10;

lcd_pos(1,5);

int_dis(teH);

lcd_pos(1,6);

}

}

voidminus(void)//减

{

if(s1num==1)

{

teL--;

if(teL==-1)

voidsettings(void)//设置

{

teL=35;

lcd_pos(1,13);

int_dis(teL);

lcd_pos(1,14);

}

if(s1num==2)

{

teH--;

if(teH==9)

teH=50;

lcd_pos(1,5);

int_dis(teH);

lcd_pos(1,6);

}

}

voidbaojing(uchara)//报警

{

if(a>=teH)

{

hh=1;

alarm=0;

ll=0;

}

elseif(a

{

ll=1;

alarm=0;

hh=0;

}

else

{

hh=0;

ll=0;

alarm=1;

}

}

voidmain(void)

{

floata;

ucharb,key_value;

lcd_init();

init_timer1();

display();

hh=0;

ll=0;

while

(1)

{

if(flag==0)

{

a=read_temp();

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

当前位置:首页 > 法律文书 > 调解书

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

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