多路温度检测系统Word格式.docx

上传人:b****5 文档编号:21700043 上传时间:2023-01-31 格式:DOCX 页数:28 大小:283.01KB
下载 相关 举报
多路温度检测系统Word格式.docx_第1页
第1页 / 共28页
多路温度检测系统Word格式.docx_第2页
第2页 / 共28页
多路温度检测系统Word格式.docx_第3页
第3页 / 共28页
多路温度检测系统Word格式.docx_第4页
第4页 / 共28页
多路温度检测系统Word格式.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

多路温度检测系统Word格式.docx

《多路温度检测系统Word格式.docx》由会员分享,可在线阅读,更多相关《多路温度检测系统Word格式.docx(28页珍藏版)》请在冰豆网上搜索。

多路温度检测系统Word格式.docx

通过按键解除报警。

3.硬件设计根据设计的任务选定合适的单片机,根据控制对象设计接口电路。

设计的单元电路必须有工作原理,器件的作用,分析和计算过程;

4.软件设计根据电路工作过程,画出软件流程图,根据流程图编写相应的程序,进行调试并打印程序清单;

5.原理图设计根据所确定的设计电路,利用Protel、Proteus或EWB等有关工具软件绘制电路原理图;

第二章方案论证

此次设计的多路温度检测系统是以AT89S51单片机为控制核心,温度传感器DS18B20可以直接将被测温度转化为串行数字信号,最后送给单片机并通过8位共阳极LED数码管显示出来。

控制系统可以通过控制电路对超出温度范围的通过LED闪烁报警,通过按键解除报警。

2.1单片机的选择

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

AT89S51具有如下特点:

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

此外,AT89S51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。

空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。

同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。

由于系统控制方案简单,数据量也不大,考虑到电路的简单和成本等因素,因此在本设计中选用ATMEL公司的AT89S51单片机作为主控芯片。

主控模块采用单片机最小系统是由于AT89S51芯片内含有4kB的E2PROM,无需外扩存储器,电路简单可靠,其时钟频率为0~24MHz,并且价格低廉,批量价在10元以内。

其主要功能特性:

兼容MCS-51指令系统4k可反复擦写(>

1000次)ISPFlashROM

32个双向I/O口4.5-5.5V工作电压

2个16位可编程定时/计数器时钟频率0-33MHz

全双工UART串行中断口线128x8bit内部RAM

2个外部中断源低功耗空闲和省电模式

中断唤醒省电模式3级加密位

看门狗(WDT)电路软件设置空闲和省电功能

灵活的ISP字节和分页编程双数据寄存器指针

可以看出AT89S51提供以下标准功能:

4K字节Flash闪速存储器,128字节内部RAM,32个I/O口线,看门狗(WDT),两个数据指针,两个16位定时器/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟。

同时,AT89S51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。

空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。

掉电方式何在RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直接到一个硬件复位。

AT89S51引角功能说明

Vcc:

电源电压

GND:

P0口:

P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口,作为输出口用时,每位能驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端口。

在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。

在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。

P1口:

P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。

对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。

作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号校验期间,P1接收低8位地址。

表4-1为P1口第二功能。

表4-1P1口第二功能

端口引脚

第二功能

P1.5

MOSI(用于ISP编程)

P1.6

MISO(用于ISP编程)

P1.7

SCK(用于ISP编程)

P2口:

P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动4个TTL逻辑门电路。

对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流I。

在访问8位地址的外部数据存储器(如执行:

MOVX@Ri指令)时,P2口线上的内(也即特殊功能寄存器,在整个访问期间不改变。

Flash编程或校验时,P2也接收高位地址和其它控制信号。

P3口:

P3口是一组带有内部上拉电阻的8位双向I/O口。

P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。

对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。

作输入端口时,被外部拉低的P3口将用上拉电阻输出电流I。

P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,P3口的第二功能如下表4-2。

表4-2P3口的第二功能

端口功能

RXD(P3.0)

串行输入口

T0(P3.4)

定时/计数器0外部输入

TXD(P3.1)

串行输出口

T1(P3.5)

定时/计数器1外部输入

INT0(P3.2)

外中断0

WR(P3.6)

外部数据存储器写选通

INT1(P3.3)

外中断1

RD(P3.7)

外部数据存储器读选通

RST:

复位输入。

当振荡工作时,RST引脚出现两个机器周期上高电平将使单片机复位。

WDT益出将使该引脚输出高电平,设置SFRAUXR的DISRTO位(地址8EH)可打开或关闭该功能。

DISRTO位缺省为RESET输出高电平打开状态。

ALE/PROG:

当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。

即使不访问外部存储器,ALE仍以时钟振荡频率的1/6输出的正脉冲信号,因此它可对外输出时钟或用于定时目地,要注意的是:

第当访问外部数据存储器时将跳过一个ALE脉冲。

如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。

该位禁位后,只有一条MOVX和MOVC指令ALE才会被激活。

此外,该引脚伎被微弱拉高,单片机执行外部程序时,应设置ALE无效。

PSEN:

程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89S51由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。

当访问外部数据存储器,高有两次有效的PSEN信号。

EA/VPP:

外部访问允许。

欲使CPU公访问外部程序存储器(地址0000H-FFFFH),EA端必须保持低电平(接地)。

需注意的是:

如果加密位LB1被编程,复位时内部会锁存EA端状态。

如EA端为高电平(接Vcc端),CPU则执行内部程序存储器中的指令。

Flash存储器编程时,该引脚加上+12V的编程电压Vpp。

XTAL1:

振荡器反相放大器及内部时钟发生器的输入端。

XTAL2:

振荡器反相放大器的输出端。

AT89S51单片机内部构造及功能:

特殊功能寄存器:

特殊功能寄存器的片内空间分存如下图3-2所示。

这些地址并没有全部占用,没有占用的地址不可使用,读这些地址将得到一个随意的数值。

而写这些地址单元将不能得到预期的结果。

中断寄存器:

各中断允许控制位于IE寄存器,5个中断源的中断优先级控制位于IP寄存器。

图4-2为AUXR辅助寄存器。

图4-2AUXR辅助寄存器

双时钟指针寄存器:

为方便地访问内部和外部数据存储器,提供了两个16位数据指针寄存储器:

PD0位于SFR区块中的地址82H、83H和DP1位于地址84H、85H,当SFR中的位DPS=0时选择DP0,而DPS=1时选择DP1。

在使用前初始化DPS。

图4-3双时钟指针寄存器

电源空闲标志:

电源空闲标志(POF)在特殊功能寄存储器SFR中PCON的第4位(PCON.4),电源打开时POF置“1”,它可由软件设置睡眠状态并不为复位所影响。

存储器结构:

MCS-51单片机内核采用程序存储器和数据存储器空间分开的结构,均具有64KB外部程序和数据的寻址空间。

程序存储器:

如果EA引脚接地(GND),全部程序均执行外部存储器。

在AT89S51,假如接至Vcc(电源+),程序首先执行从地址0000H-0FFFH(4KB)内部程序存储器,再执行地址为1000H-FFFFH(60KB)的外部程序存储器。

数据存储器:

在AT89S51的具有128字节的内部RAM,这128字节可利用直接或间接寻址方式访问,堆栈操作可利用间接寻址方式进行,128字节均可设置为堆栈区空间。

看门狗定时器(WDT):

WDT是为了解决CPU程序运行时可能进入混乱或死循环而设置,它由一个14bit计数器和看狗复位SFR(WDTRST)构成。

外部复位时,WDT默认为关闭状态,要打开WDT,必按顺序将01H和0E1H写到WDTRST寄存器,当启动了WDT,它会随晶体振荡器在每个机器周期计数,除硬件复位或WDT溢出复位外没有其它方法关闭WDT,当WDT溢出,将使RST引脚输出高电平的复位脉冲。

引脚图详见图4-4

图4-4AT89S51单片机引脚图

2.2温度传感器的选择

DS18B20是DALLAS公司生产的一线式数字温度传感器,它具有微型化、低功耗、高性能抗干扰能力、强易配处理器等优点,特别适合用于构成多点温度测控系统,可直接将温度转化成串行数字信号(按9位二进制数字)给单片机处理,且在同一总线上可以挂接多个传感器芯片,它具有三引脚TO-92小体积封装形式,温度测量范围-55~+125℃,可编程为9~12位A/D转换精度,测温分辨率可达0.0625℃,被测温度用符号扩展的16位数字量方式串行输出,其工作电源既可在远端引入,业可采用寄生电源方式产生,多个DS18B20可以并联到三根或者两根线上,CPU只需一根端口线就能与多个DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。

从而可以看出DS18B20可以非常方便的被用于远距离多点温度检测系统。

综上,在本系统中我采用温度芯片DS18B20测量温度。

该芯片的物理化学性很稳定,它能用做工业测温元件,且此元件线形较好。

在0—100摄氏度时,最大线形偏差小于1摄氏度。

该芯片直接向单片机传输数字信号,便于单片机处理及控制。

温度低位

温度高位

TH

TL

配置

保留

8位CRC

高速暂存器8字节分配图

高速暂存器除了配置寄存器外,其他还有8字节,其分配如上图所示。

其中温度信息第1,2字节;

TH和TL值第3,4字节;

第6字节~~8字节未用,表现为全逻辑1;

第9字节读出的是前面所有的8字节的CRC码,可以来保证通信正确。

S18B20完成温度转换后,就把测得的温度值与RAM中的TH、TL字节内容作比较,若T>

TH或T<

TL,则将该器件内的报警标志位置位,并对主机发出的报警搜索命令作出响应。

因此,可用多只DS18B20同时测量温度并进行报警搜索。

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

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

图中还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的脉冲进行计数,进而完成温度测量.技术们的开启时间由高温度系数振荡器来决定,每次测量前,首先将10℃所对应的一个基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄存器被预置在10℃所对应的一个基数值.

减法计数器1对低温度系数振荡器产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时,温度寄存器的值将加1,减法计数器1的预置值将重新被装入,并重新开始对低温度系数振荡器产生的脉冲信号进行计数.如此循环,知道减法计数器2计数到0时,停止温度寄存器的累加,此时温度寄存器中的数值就是所测温度值.图中的斜率累加器用于补偿和修正测温度过程中的非线性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直到温度寄存器值达到被测温度值.

表1—1温度—数据的对应关系

温度/℃

数字输出(二进制)

数字输出(十六进制)

+125

0000011111010000

07D0H

+85

0000010101010000

0550H

+25.0625

0000000110010001

0191H

+10.125

0000000010100010

00A2H

+0.5

0000000000001000

0008H

0000000000000000

0000H

-0.5

1111111111111000

FFF8H

-10.125

1111111101011110

FF5EH

-25.0625

1111111001011111

FE6FH

-55

1111110010010000

FC90H

温度与数据的对应关系见表1—1。

欲测量华氏温度(0F),需进行下述换算:

t(0F)=9/5(0C)+32

DS18B20中温度字节中的位定义

低八位

23

22

21

20

2-1

2-2

2-3

2-4

高八位

S

26

25

24

DSl8B20型单线智能温度传感器典型的测温误差在0~70℃范围内,DSl8B20的上、下限测温误差分别为+0.5℃、-0.5℃,而典型产品的误差仅为±

0.25℃。

(4)高速暂存器(简称暂存器)

它由便笺式RAM、非易失性电擦写E2RAM所组成,后者用来存储tH和tL值。

图1-4暂存器的操作命令流程图

数据先写入RAM,经校验后再传给E2RAM。

便笺式RAM占9个字节,第0、1字节是测量出的温度信息,第2、3字节分别是tH、tL值,第4、5字节不用。

第6、7字节为计数寄存器,可用于提高温度分辨力。

第8字节用来存储上述8字节的循环冗余校验码。

详见表3—2。

暂存器的命令集见表3—3。

6条命令分别为温度转换、读暂存器、写暂存器、复制暂存器、重新调出E2RAM、读电源供电方式。

表1—2暂存器的内容

便笺式RAM

字节

E2RAM

温度低字节

温度高字节

1

报警上限/用户定义字节1

2

报警下限/用户定义字节2

3

4

5

计数余数值

6

每度计数值

7

CRC

8

表1—3暂存器命令集

指令

说明

约定代码

发生约定代码后单线总线

温度转换

启动DSl8B20进行温度转换

44H

主CPU读DSl8B20的“忙状态”

读暂存器

读暂存器9个字节的内容

BEH

主CPU读9个字节的数据

写暂存器

将数据写入暂存器的TH和TL字节

4EH

主CPU给DSl8B20发出两个字节的数据

复制暂存器

把暂存器的TH、TL字节写入E2RAM中

48H

重新调E2RAM

把E2RAM中的TH、'

FL字节分别调入暂存器TH、TL字节

B8H

读电源供电方式

启动DSl8B20发送电源供电方式的信号给主CPU

B4H

主CPU读DSl8B20的“电源状态”

(5)初始化

对DSl8B20的操作是首先进行初始化,然后执行ROM操作命令,再执行暂存器操作命令,最后完成数据处理。

(6)报警信号

在完成温度转换之后,DSl8B20就把测得的温度值,同tH、tL作比较。

若t>

tH或t<

tL,则将该器件的报警标志置位,并对主CPU发出的报警搜索命令做出响应。

因此可用多片DSl8B20同时测量温度并进行报警搜索。

一旦某个测温点越限,主CPU用报警搜索命令即可识别正在报警的DSl8B20,并且读出其序号,而不必考虑其他未报警的DSl8B20。

左侧图为主程序:

主要负责温度的实时显示、读出并处理DS18B20的测量温度值。

温度测量每1S进行一次。

右侧图为读出温度子程序:

主要功能是读出RAM中的9字节。

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

图为温度转换命令子程序:

主要是温度转换开始命令。

当采用12位分辨率时,转换时间约为750MS。

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

计算温度子程序:

计算温度子程序将RAM中读取值进行BCD码得转换运算,并进行温度值正负的判断。

此图为显示数据刷新子程序:

主要是对显示缓冲器中的显示数据进行刷新操作,当最高数据显示位为0时,将符号显示位移入下一位。

三章硬件设计

3.1工作原理

1.主控制器:

AT89S51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。

2.显示电路:

显示电采用8位共阳极LED数码管,从P1口输出段码,列扫描用P3.0~P3.7口来实现,列驱动用9012三极管。

3.温度传感器的工作原理:

具有独特的单总线接口方式,支持多节点,使分布式温度传感器设计大为简单化。

测温度时无需任何外围元件,可以通过数据线直接供电,具有超低功耗工作方式。

测温范围为-55℃~~125℃,精度为0.5℃,可以直接将温度转换值以16位二进制数码管的方式串行输出,因此特别适合单线多点温度测量系统。

由于传送的是串行数据,可以不需要放大器和A/D转换器,因此这种测温度方式大大提高了各种温度测控系统的可靠性,降低了成本、缩小了体积。

3.2单元电路

1.键盘单元

单片机应用系统中除了复位按键有专门的复位电路,以及专一的复位功能外,其它的按键或键盘都是以开关状态来设置控制功能或输入数据。

键开关状态的可靠输入:

为了去抖动我采用软件方法,它是在检测到有键按下时,执行一个10ms的延时程序后,再确认该键电平是否仍保持闭合状态电平,如保持闭合状态电平则确认为真正键按下状态,从而消除了抖动影响

在这种行列式矩阵键盘非编码键盘的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下的程序段。

当确认有按键按下后,下一步就要识别哪一个按键按下。

对键的识别通常有两种方法:

一种是常用的逐行扫描查询法;

另一种是速度较快的线反转法。

对照图示的4*4键盘,说明线反转法工作原理。

首先辨别键盘中有无键按下,有单片机I/O口向键盘送全扫描字,然后读入行线状态来判断。

方法是:

向行线输出全扫描字00H,把全部列线置为低电平,然后将列线的电平状态读入累加器A中。

如果有按键按下,总会有一根行线电平被拉至低电平从而使行线不全为1。

判断键盘中哪一个键被按下是通过将列线逐列置低电平后,检查行输入状态来实现的。

依次给列线送低电平,然后查所有行线状态,如果全为1,则所按下的键不在此列;

如果不全为1,则所按下的键必在此列,而且是在与零电平行线相交的交点上的那个键。

键盘共有16个按键,用于方便设定温度。

…,数字按键,输入数字0----9;

,设置的确认,修改设置温度时进行确认;

设置的清除,修改设置温度时进行删除;

开启电源

关闭电源

显示及设置转换到温度点1,按此按键后,显示预设置温度的数码管

闪烁;

显示及设置转换到温度点2,按此按键后,显示预设置温度的数码管

表5-1键盘的按键分布

P2.0

P2.1

P2.2

9

F1

F2

P2.3

清除

开启

关闭

确定

P2.4

P2.5

P2.6

P2.7

2.温度控制及超温和超温警报单元

当采集的温度经处理后超过规定温度上限时,单片机通过P1.4输出控制信号驱动三极管D1,温度传感器感应到超出温度范围将会传送到单片机,单片机通过三极管驱动LED灯闪烁报警。

3.温度测试单元

采用温度芯片DS18B20。

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

当前位置:首页 > 外语学习 > 英语学习

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

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