温度测量计设计说明书Word文档下载推荐.docx

上传人:b****6 文档编号:18936646 上传时间:2023-01-02 格式:DOCX 页数:23 大小:194.87KB
下载 相关 举报
温度测量计设计说明书Word文档下载推荐.docx_第1页
第1页 / 共23页
温度测量计设计说明书Word文档下载推荐.docx_第2页
第2页 / 共23页
温度测量计设计说明书Word文档下载推荐.docx_第3页
第3页 / 共23页
温度测量计设计说明书Word文档下载推荐.docx_第4页
第4页 / 共23页
温度测量计设计说明书Word文档下载推荐.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

温度测量计设计说明书Word文档下载推荐.docx

《温度测量计设计说明书Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《温度测量计设计说明书Word文档下载推荐.docx(23页珍藏版)》请在冰豆网上搜索。

温度测量计设计说明书Word文档下载推荐.docx

方案一:

由于本设计是测温电路,可以使用热敏电阻之类的器件,利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦,而且这类传感器可靠性比较差,测量温度准确度低。

因此,此类传感器不适合用于工作,生活,科研方面的设施建设。

方案二:

测温电路中,也可以使用传感器,所以可以采用一只温度传感器DS18B20,此类传感器,可以很容易直接读取被测温度值,进行转换满足设计要求,这种温度传感器利用单总线技术,线路简单,硬件开销少,成本低廉,软件设计简单。

因此,适合用于工作,生活,科研方面的设施建设。

比较以上两种方案,方案二有明显的优点,因此选择方案二。

2温度测量计硬件设计

2.1硬件原理图

2.2最小系统

2.2.1AT89S51单片机及其引脚说明

引脚说明:

VCC:

供电电源GND:

接地

P0口:

一个8位双向I/O口,既能用作通用I/O口,又能用作地址/数据总线。

用作通用I/O口时,CPU令控制信号为低电平,其作用有两个:

一个使多路开关MUX接通B端,二是令与门输出低电平,V1截止,致使输出级开漏输出电路。

P0口地址总线低8位和数据总线,供系统扩展时使用。

这时控制信号为高电平,多路开关MUX接通A端。

P1口:

与P0口相比,P1口的位结构图中少了地址/数据的传送电路和多路开关,上面一只MOS管改为上拉电阻。

P1口作为一般I/O口的功能和使用方法与P0口相似。

当用作输入口时,应先向端口写入“1”。

它也有读引脚和读锁存器两种方式。

所不同的是当输出数据时,由于内部有了上拉电阻,所以不需要上拉电阻。

P2口:

能用作通用I/O口或地址总线高8位。

作为通用I/O口使用,当信号为低电平时,多路开关MUX接到B端,P2口作为通用I/O口使用,其功能和使用方法与P0、P1口相同。

用作输入时,必须先写入“1”。

作为地址总线,当控制端输出高电平时,多路开关MUX接到A端,地址信号经反相器和V管二次反相后从引脚输出。

这时P2口输出地址总线高8位,供系统扩展用。

P3口:

能用作通用I/O口,同时每个引脚还有第二功能。

(1)用作通用I/O口,

此时“第二功能输出”端为高电平,用作输出时,与非门输出取决于锁存器Q端信号,引脚输出信号与内部总线信号相同。

其功能和使用方法与P1、P2口相同。

用作输出时,必须先写入“1”。

(2)用作第二功能

当P3口的某一位作为第二功能输出使用时,应将该位的锁存器置“1”,使与非门和输出状态只受“第二功能输出”端控制,第二功能输出信号经与非门和V管二次反相后输出到该位引脚上。

当P3口的某一位作为第二功能输出使用时,该位的“第二功能输出”端和锁存器自行置“1”,该位引脚上信号经缓冲器送入“第二功能输入”端。

P3口的负载能力为4个LSTTL门电路。

在一般情况下(指扩展存储器),P0口分时作为地址总线低8位和数据总线,P2口作为地址总线高8位,P3口作为第二功能使用(不一定全部),真正能提供给用户使用的I/O口只有P1口和未使用第二功能的部分P3口端线。

在用作输入时,P0~P3口均需先写入“1”。

2.2.2时钟电路的设计

单片机工作的时间基准是由时钟电路提供的。

在单片机的XTAL1和XTAL2两个引脚间,接一只晶振及两只电容就构成了单片机的时钟电路,如图1所示。

图一

电路中的器件选择可以通过计算和实验确定,也可以参考一些典型电路的参数。

电路中,电容器C1和C2对振荡器频率有微调作用,通常的取值范围30±

10pF;

石英晶体选择6MHZ或12MHZ都可以。

其结果只是机器周期时间不同,影响计数器的计数初值。

AT89S51单片机的时钟产生有以下两种方法:

一、内部时钟方式:

利用单片机内部的振荡器,然后在引脚XTAL1(18脚)和XTAL2(19脚)两端接晶振,就构成了稳定的自激振荡器,其发出的脉冲直接送入内部时钟电路,外接晶振时,晶振两端的电容一般选择为30pF左右;

这两个电容对频率有微调的作用,晶振的频率范围可在1.2MHz-12MHz之间选择。

二、外部时钟方式:

此方式是利用外部振荡脉冲接入XTAL1或XTAL2。

HMOS和CHMOS单片机外时钟信号接入方式不同,HMOS型单片机(例如8051)外时钟信号由XTAL2端脚注入后直接送至内部时钟电路,输入端XTAL1应接地。

由于XTAL2端的逻辑电平不是TTL的,故建议外接一个上接电阻。

如下图

外接时钟信号通过一个二分频的触发器而成为内部时钟信号,要求高、低电平的持续时间都大于20ns,一般为频率低于12MHz的方波。

片内时钟发生器就是上述的二分频触发器,它向芯片提供了一个2节拍的时钟信号。

前面已提到,计算机工作时,是在统一的时钟脉冲控制下一拍一拍地进行的。

由于指令的字节数不同,取这些指令所需要的时间也就不同,即使是字节数相同的指令,由于执行操作有较大的差别,不同的指令执行时间也不一定相同,即所需的拍节数不同。

为了便于对CPU时序进行分析,一般按指令的执行过程规定了几种周期,即时钟周期、机器周期和指令周期,也称为时序定时单位,下面分别予以讲解。

时钟周期

时钟周期也称为振荡周期,定义为时钟脉冲的倒数(可以这样来理解,时钟周期就是单片机外接晶振的倒数,例如12M的晶振,它的时间周期就是1/12us),是计算机中最基本的、最小的时间单位。

在一个时钟周期内,CPU仅完成一个最基本的动作。

对于某种单片机,若采用了1MHZ的时钟频率,则时钟周期为1us;

若采用4MHZ的时钟频率,则时钟周期为250us。

由于时钟脉冲是计算机的基本工作脉冲,它控制着计算机的工作节奏(使计算机的每一步都统一到它的步调上来)。

显然,对同一种机型的计算机,时钟频率越高,计算机的工作速度就越快。

但是,由于不同的计算机硬件电路和器件的不完全相同,所以其所需要的时钟周频率范围也不一定相同。

我们学习的8051单片机的时钟范围是1.2MHz-12MHz。

2.2.3复位电路的设计

单片机的RET引脚为主机提供一个外部复位信号输入端口。

复位信号是高电平有效,高电平有效的持续时间应为2个机器周期以上。

复位以后,单片机内各部件恢复到初始状态,单片机从ROM的0000H开始执行程序。

单片机的复位方式有上电自动复位和手工复位两种。

图2是51系列单片机常用的上电复位和手动复位的组合电路,只要VCC上升时间不超过1ms,它们都能很好地工作。

阻容器件的参考值为,R1=200Ω,R2=1KΩ,C3=22uF

图2

2.2.4电源电路的设计

电源部分

8051的工作电压为+5V,±

0.5V,工作电流200mA

其它部分工作电流:

总电流:

≤500mA

功耗:

≤2.5W

图三

电源:

桥式整流、滤波(两个滤波电容)、稳压

三端稳压器件:

7805系列三端稳压器件是最常用的线性降压型DC/DC转换器,目前也有大量先进的DC/DC转换器层出不穷,例如低压差线性稳压器LDO等。

7805简单易用,价格低廉,直到今天还在大多电路中采用。

7805系列在降压电路中应注意以下事项:

(1)输入输出压差不能太大,太大则转换效率急速降低,而且容易击穿损坏;

(2)输出电流不能太大,1.5A是其极限值。

大电流的输出,散热片的尺寸要足够大,否则会导致高温保护或热击穿;

(3)输入输出压差也不能太小,太小效率很差。

2.3DS18B20温度传感器特性及引脚功能介绍

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

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

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

在TO-92和SO-8的封装中引脚有所不同,具体差别请查阅PDF手册,在TO-92封装中引脚分配如下:

1(GND):

地;

2(DQ):

单线运用的数据输入输出引脚;

3(VDD):

可选的电源引脚

半导体公司生产的“一线总线”式接口温度传感器。

测量温度范围为-55~+125℃。

由于采用“一线总线”的数字方式传输,大大提高了系统的抗干扰性。

适用于恶劣环境的现场温度测量,广泛应用于环境控制、设备或过程控制,测温类消费电子产品之中。

本课题由DS18B20和单片机构成,要求通过数码管直接显示实测温度,并在超过设定限值时触发报警。

通过该课题的研究,可以更好地巩固所学的知识,提高动手能力,为进入社会打下良好的基础。

主要性能指标:

一、基本范围:

-55~+125℃;

二、精度误差小于0.5℃;

三、LED数码直接读数显示,四位数码管显示;

四、当实际温度超过数字温度计的极限范围,实现报警功能。

2.4显示及驱动电路的数值计算和电阻取值

LED显示器的显示方式分为静态显示和动态显示。

本设计采用动态显示,所谓动态显示是一位一位轮流点亮每位显示器,在同一时刻只有一位显示器在工作,但由于人眼的视觉暂留效应和发光二极管熄灭时的余辉,将出现多个字符“同时”显示的现象。

为了实现LED显示器的动态显示,通常将所有位的字形控制线并联在一起,由一个8位I/O接口控制,将每一位LED显示器的字位控制线(即每个显示器的阴极公共端或阳极公共端)分别由相应的I/O接口控制,实现各位的分时选通。

它是把显示器的同名字段互相联系在一起,并把它们接到字形口上。

为了防止各个显示器同时显示出相同的字符,每个显示器的公共端还要受另一组信号的控制,即把它们接到字位口上。

显示采用共阳数码管,其目的是为了简化限流电路的设计和实现亮度可调的要求。

每笔画段二极管正常发光时的电流一般为10mA左右(当然,电流的大小取决于选用的数码管是普亮、高亮还是超高亮类型的不同),其两端压降约为2.0v,也就是说,只要数码管的公共端(COM)加+2.0v以上电压,即可满足每笔画段发光二极管的发光要求,而且适当调节此电压值即可改变发光二极管的电流,从而达到调节亮度的目的。

如图所示

图2.4显示及驱动电路

假设LED数码管显示器八段全亮,则集电极电流Ics为80mA,基极与发射极之间的电压为0.7v,则基极电流Ib=U/R即为(5-0.7)/R,又因为集电极电流为共射电流放大系数β与基极电流之积,即IC=βIb,当(5-0.7)/R>R>80mA/β时,PNP工作在饱和区,即R<(5-0.7)×

β/80,因此,在此电路中,我们取电阻阻值为4.7K,使PNP工作在饱和区。

具体计算如下

R11到R14计算公式:

U1=0.7VIcs=80mAIc=βIbIb=U/R=(5-0.7)/R

Ib≥Ic/β(5-0.7)/R≥80mA/ββ=100R=4.7K

R3到R9的计算公式:

(R10、R16近似可取220Ω)

10mA<(5-0.3-2)/R<20mA,R=220Ω

2.5报警电路模块

2.6主要元器件的选择

(1)单片机:

这里采用AT89S51而不是8031是为了最大限度减小误差,因为要实现多功能,而AT89S51具有许多8031所不具备的优点,故选择该芯片。

(2)温度传感器:

这里采用DS18B20而不是一般的热敏电阻作为感温元件,这种通过单片机控制传感器的测温方法具有结构紧凑,体积小,测量方便准确,性价比高,软件设计简单等方面的优点,故选择该传感器。

(3)三极管:

用来进行数码管显示的位选驱动,这里采用PNP管

(4)数码管:

采用四个共阳的数码管

(5)晶振:

采用的是6MHZ的晶振

(6)电源部分:

采用5V电压供电

(7)电阻:

大部分限流电阻,阻值为4.7K或220Ω,1K

3.1主程序流程图

主程序流程图如图所示:

3.2源程序清单

ORG0000H

AJMPMAINQ

ORG000BH

AJMPTT0

MAINQ:

ORG002FH

TEMPHEQU50H

TEMPLEQU51H

TEMPHCEQU52H

TEMPLCEQU53H

ZJ9EQU60H

WDCGQBITP0.0

MOVSP,#2FH

MOVTMOD,#21H

MOVTH0,#3CH;

12MHZ晶振时定时100ms

MOVTL0,#0B0H

MOVR7,#0AH

SETBEA

SETBET0

SETBTR0

CLRF0

CLR00H

;

SETBP2.3

MOVTEMPH,#00H

MOVTEMPL,#00H

MOVTEMPHC,#00H

MOVTEMPLC,#00H

START:

LCALLDIP

JNB00H,START

JNBF0,STA1

LCALLREAD

LCALLDIP

LCALLBCDLC

STA1:

LCALLML

SETBF0

LJMPSTART

TT0:

PUSHPSW

MOVPSW,#10H

MOVTH0,#3CH

DJNZR7,TT0OUT

SETB00H

TT0OUT:

POPPSW

RETI

READ:

LCALLRST1820

MOVA,#0CCH;

发跳过1820的ROM命令

LCALLWRIT1820

MOVR6,#1AH;

延时104us

DJNZR6,$

MOVA,#0BEH;

读1820内部RAM中9个字节的内容

MOVR6,#1AH

MOVR5,#09H

MOVR0,#ZJ9

MOVB,#00H

READ1:

LCALLREAD1820

MOV@R0,A

INCR0

READ2:

LCALLCRC8;

校验读到的八位数

DJNZR5,READ1

MOVA,B

JNZREADOUT

MOVA,ZJ9+0

MOVTEMPL,A

MOVA,ZJ9+1

MOVTEMPH,A

READOUT:

RET

RST1820:

SETBWDCGQ

NOP

CLRWDCGQ

MOVR6,#50H;

延时480us(640us)

MOVR6,#50H

SETBWDCGQ

MOVR6,#12H;

延时70us(75us)

MOVR6,#1EH;

在250us内读复位信号

LOOP:

MOVC,WDCGQ

JCRSTOUT

DJNZR6,LOOP

MOVR6,#032H

SJMPRST1820

RET

RSTOUT:

WRIT1820:

MOVR4,#08H

NOP

LOOP1:

CLRWDCGQ

MOVR6,#03H;

延时15us

RRCA

MOVWDCGQ,C

DJNZR4,LOOP1

READ1820:

LOOP2:

MOVC,WDCGQ

延时120us

DJNZR4,LOOP2

CRC8:

PUSHACC

MOVR4,#08H

LOP1:

XRLA,B

JNCLOP2

XRLA,#18H

LOP2:

RRCA

MOVB,A

POPACC

RRA

PUSHACC

DJNZR4,LOP1

ML:

LCALLRST1820;

给1820复位

给1820发跳过1820的ROM命令

MOVA,#44H;

给1820的RAM发转换指令

BCDLC:

MOVA,TEMPH

ANLA,#80H

JZLP1;

为正数转LP1

CLRC;

为负数时,将补码转换成原码

MOVA,TEMPL

CPLA

ADDA,#01H

MOVA,TEMPH

ADDCA,#00H

MOVTEMPHC,#0BH;

符号位为负的标志为0BH

SJMPLP2

LP1:

MOVTEMPHC,#0AH;

符号位为正的标志为0AH

LP2:

MOVA,TEMPHC

SWAPA

MOVTEMPHC,A

ANLA,#0FH;

乘0.0625

MOVDPTR,#TAB1

MOVCA,@A+DPTR

MOVTEMPLC,A;

小数部分的BCD码

ANLA,#0F0H

ANLA,#0FH

ORLA,TEMPL

LCALLHEXBCD

ORLA,TEMPHC

ORLA,TEMPLC

MOVTEMPLC,A

MOVA,R4

JZTEMPOUT

MOVR4,A

MOVA,TEMPHC

ORLA,R4

TEMPOUT:

TAB1:

DB00H,01H,01H,02H,03H,03H,04H,04H,05H,06H

DB06H,07H,08H,08H,09H,09H

HEXBCD:

MOVB,#64H

DIVAB

MOVA,#0AH

XCHA,B

ORLA,B

DIP:

MOVDPTR,#TAB

MOVP1,A

CLRP2.0

MOVR6,#0FFH

SETBP2.0

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

当前位置:首页 > 初中教育 > 政史地

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

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