基于单片机的智能温度巡检仪设计.docx

上传人:b****1 文档编号:14129233 上传时间:2023-06-20 格式:DOCX 页数:98 大小:439.14KB
下载 相关 举报
基于单片机的智能温度巡检仪设计.docx_第1页
第1页 / 共98页
基于单片机的智能温度巡检仪设计.docx_第2页
第2页 / 共98页
基于单片机的智能温度巡检仪设计.docx_第3页
第3页 / 共98页
基于单片机的智能温度巡检仪设计.docx_第4页
第4页 / 共98页
基于单片机的智能温度巡检仪设计.docx_第5页
第5页 / 共98页
基于单片机的智能温度巡检仪设计.docx_第6页
第6页 / 共98页
基于单片机的智能温度巡检仪设计.docx_第7页
第7页 / 共98页
基于单片机的智能温度巡检仪设计.docx_第8页
第8页 / 共98页
基于单片机的智能温度巡检仪设计.docx_第9页
第9页 / 共98页
基于单片机的智能温度巡检仪设计.docx_第10页
第10页 / 共98页
基于单片机的智能温度巡检仪设计.docx_第11页
第11页 / 共98页
基于单片机的智能温度巡检仪设计.docx_第12页
第12页 / 共98页
基于单片机的智能温度巡检仪设计.docx_第13页
第13页 / 共98页
基于单片机的智能温度巡检仪设计.docx_第14页
第14页 / 共98页
基于单片机的智能温度巡检仪设计.docx_第15页
第15页 / 共98页
基于单片机的智能温度巡检仪设计.docx_第16页
第16页 / 共98页
基于单片机的智能温度巡检仪设计.docx_第17页
第17页 / 共98页
基于单片机的智能温度巡检仪设计.docx_第18页
第18页 / 共98页
基于单片机的智能温度巡检仪设计.docx_第19页
第19页 / 共98页
基于单片机的智能温度巡检仪设计.docx_第20页
第20页 / 共98页
亲,该文档总共98页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于单片机的智能温度巡检仪设计.docx

《基于单片机的智能温度巡检仪设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的智能温度巡检仪设计.docx(98页珍藏版)》请在冰点文库上搜索。

基于单片机的智能温度巡检仪设计.docx

基于单片机的智能温度巡检仪设计

第2章基于单片机的智能温度巡检仪设计

对于工业过程小型测控设备或者专用的智能化仪表,自动化工作者一般是采用以单片微型计算机为核心,配以相应接口电路的模式来实现。

单片机本身只是一个微控制器芯片,只有当它和外围电路有机地组合在一起,并配置适当的工作程序后,才能构成为一个单片机智能应用系统。

本章以工业生产过程中最基本的温度参数测量为例,说明一台智能温度巡检仪的设计思路、硬件配置、软件编程、系统结构及调试考核过程。

2.1设计任务

2.1.1主要功能

为了满足工业生产过程监控的要求,设计的智能温度巡检仪应当具有如下功能:

能与常用温度传感器配合检测多路温度,本例是与温度传感器Pt100型铂热电阻配合,巡回检测8路温度;可选择定点显示方式,也可选择巡回显示方式;在全量程内,可设定超限报警值,当实测温度超过设定值时,发出报警信号且有常开接点输出;将检测的每路温度转变为与之线性对应的4~20mA电流输出;支持RS-485通信方式,方便组成局域监控网络,使实测温度、温度超限设定值等参数在网络中共享。

2.1.2技术指标

•测量范围:

-200℃~850℃。

•测量精度:

优于0.5级。

•温度巡检周期:

1s。

•巡回显示周期:

以秒为单位,可选定。

•工作环境温度:

0℃~50℃。

•相对湿度:

小于85%。

•供电电源:

220VAC,±10%,50Hz。

•结构形式:

盘装式。

•外形尺寸:

160mm(长)×80mm(宽)×160mm(深)。

开孔尺寸:

152mm×76mm。

2.2总体设计

首先要确定实现主要功能与技术指标的硬件、软件的总体设计方案。

必须遵守以下三个设计理念。

①智能温度巡检仪是以单片机为核心的嵌入式系统,有些功能既可以通过软件编程实现,也可以通过硬件配置实现,应当遵守“能软不硬”的理念,即凡是能够用软件方案实现的功能就不用硬件方案实现,其目的是降低制造成本。

软件方案只需在软件开发设计中一次性投入,一旦开发成功,在制造过程中将降低材料成本和安装成本,同时能够提高整机的可靠性。

任何电子元器件都有老化失效的问题,整机的可靠性与采用元器件的数量成反比,减少使用的元器件数量,就相当于提高了整机的可靠性。

②设计过程应当兼顾技术指标与经济指标,技术指标再高的仪表设备,如果制造成本高、售价高,将不会有市场前景。

③在设计过程中,选用的元器件与材料的市场供应渠道必须畅通。

电子元器件、电子材料的发展日新月异,必须选用目前市场敞开供应的元器件与材料,否则将给日后的制造与维护带来很多麻烦。

如果设计中选用了一些早已淘汰的元器件,将无法实现样机的研发。

即便样机开发成功,以后生产制造中的材料采购也十分困难。

1.硬件总体方案

主机电路采用以8位单片机为核心的方案,片内要有足够多的资源,尽量减少扩展外部功能芯片,减小体积,降低造价。

单片机要有如下资源:

1.足够的片内程序存储器,容量不小于20KB

2.足够的片内数据存储器,容量不小于256B

3.定时器/计数器不少于3个。

(通讯和A/D转换要求)。

4.中断源不少于3个

5.有串行通讯接口

6.有通用I/O接口

为保证测量精度,前向通道A/D分辨率不低于12位。

为了降低造价,8路温度通道通过多路开关技术,公用一个放大器、一个A/D转换器。

后向通道的多路模拟量输出,采用一个D/A转换器,8路保持器,利用软件定时刷新的方法实现多路模拟量输出。

人机接口的显示器采用LED数码管,其亮度高,有效观测距离远,成本低。

按键采用薄膜按键,手感好,寿命长。

通讯接口采用RS-485传输技术,方便按照总线式网络拓扑组成局域测量网络,而且RS-485传输技术成熟,成本低。

2.软件总体方案

软件任务比较简单,不需要嵌入操作系统,主要包括监控程序、人机服务程序、数据采集处理程序、通信服务程序几部分。

为了保证实时性要求,提高运行效率,采用ASM51汇编语言编制。

3.外形结构方案

按盘装仪表结构设计,其外形结构尺寸、安装尺寸、安装方式、接线方式与常规测试仪表保持一致,便于替代传统测试仪表。

2.3硬件系统及驱动程序设计

8路温度巡检仪的硬件由主机电路、前向通道、后向通道、人机接口电路、通信接口及供电电源几部分组成,如图所示。

其中,主机电路由CPU、数据存储器、程序存储器、EEPROM存储器、定时器/计数器、通用异步串行收发器、中断控制器、WDT定时器及通用并行接口等部件组成;前向通道电路由Pt100转换电路、滤波电路、多路模拟开关电路、放大电路、A/D转换电路组成;后向通道电路由D/A转换电路、多路模拟开关电路、V/I转换电路、继电器驱动电路组成;人机接口电路由按键和LED数码管组成;通信接口电路由RS-485接口电路组成;供电电源电路分别向系统数字电路提供逻辑5V电源,向模拟电路提供±12V与±5V模拟电源。

2.3.1主机电路设计

主机电路设计的核心是选择一款恰当的嵌入式处理器,其处理速度、内含的存储器容量、内含的功能部件尽可能满足系统要求,同时,市场售价满足整机硬件成本要求。

系统对处理速度的要求:

根据设计任务中关于温度巡检周期为1s,巡检8路的要求,处理器应当在1/8s,即125ms内完成1路温度的数据采集、标度变换、线性化处理、显示等各项任务。

在一般情况下,以上所列任务在8位微处理器中可以通过执行2000条指令实现,以执行每条指令需要2us来计算,共需要4000us,即4ms。

比起系统要求的125ms来说明相差甚远。

所以,对8路温度巡检仪这样一个系统来讲,一般8位微处理器的处理器的处理速度完全可以满足需要。

系统对程序存储器的要求:

就设计任务中规定的功能及技术指标而言,软件任务的复杂程度一般,当采用汇编语言编程实现时,一般5000条指令可以完成全部编程任务。

以MCS51指令代码效率推算,每条指令平均占有2B,共需10000B即10KB的程序存储器容量。

系统对数据存储器的要求:

数据存储器主要作为计算缓冲区、堆栈区、实时数据存储区、中间数据存储区使用,对本设计任务而言,一般200~300B可以满足需要。

系统对EEPROM存储器的要求:

EEPROM存储器的使用性能是指,程序运行时可以向其中写入数据或擦除数据,当系统关机或掉电时,写入的数据能够可靠长久的保留。

它主要用来存储使用者存储的数据,如巡回检测的路数(8路温度巡检仪在使用中可以根据需要设定巡检路数)、超限报警值、巡回显示周期。

也可以存储系统标定数据,如各路温度A/D转换的零点值与满度值、零点迁移值等,这些数据都是以微处理器为核心的智能仪表基本的系统数据。

对本设计任务而言,一般200~300B能够满足要求。

系统对定时器/计数器的要求:

8路温度巡检仪属于实时性很强的嵌入式系统,实现实时性操作的硬件基础是定时器。

对本设计任务来讲,需要1路定时器来产生时钟节拍,实现实时操作;需要1路定时器来作为串行通信的波特率产生器;需要1路定时器来实现A/D转换操作,因此至少需要3路定时器/计数器。

系统对中断控制的要求:

根据设计任务要求,软件任务主要有:

通信服务、每路A/D转换完成时的数据采集与打开下一输入通道、温度计算、人机接口服务共4项任务。

其中,通信服务、A/D转换服务的实时性很强,需要通过2个中断源,2级中断管理实现。

系统时钟需要通过中断提供实时操作。

因此,必须有不少于3个中断源、2级中断的中断控制机制,以便根据各项任务的实时性要求进行抢占式调度。

系统对通用异步串行收发器(UART)的要求:

为了支持RS-485通信,必须有1路UART。

系统对硬件抗干扰的要求:

迄今为止,看门狗定时器(WDT,WatchdogTimer)是微机系统唯一完全有效的硬件抗干扰措施,因此系统必须采用WDT。

系统对通用并行接口(GPIO)的要求:

为了实现主机电路与前向通道、后向通道、人机接口部分的硬件接口,主机电路应当具备20~30个GPIO。

综合上述各项要求,采用以MCS-51为内核的美国ATMEL公司生产的AT89C55WD单片机比较适宜。

1.AT89C55WD单片机的片内资源及性能

与MCS-51系列单片机指令系统兼容,引脚兼容。

内部具有可重复编程的20KB的Flash型程序存储器,重复编程次数达1000次。

工作电压范围:

4~5.5V。

时钟频率:

静态到33MHz,当时钟频率选择33MHz时,以每条指令执行时间平均为2个机器周期进行计算,CPU处理速度达1.375MIPS,即每秒可执行137.5万条指令,处理速度非快。

256B数据存储器。

32根可编程I/O口线。

3个16位定时器/计数器。

6个中断源,2级中断优先级。

1个可编程的UART。

具有闲置方式与掉电方式两种省电工作方式。

1个WDT硬件定时器。

2个数据指针。

2.X5045性能简介

由于选定的单片机AT89C55WD内部没有EEPROM存储器,而单片机上电时必须有自动复位电路,因此主机电路中除了单片机外,必须扩展EEPROM存储器和上电复位电路。

美国XICOR公司生产的X5045集成芯片,集4项功能于一身,除了内部具有EEPROM存储器外,还有上电复位功能、WDT功能、电源电压监控功能。

具体指标如下:

①内部具有WDT电路,可以编程选择WDT超时周期。

②具有低电压监测和强制复位功能。

③具有上电复位控制功能。

图2-2X5045的引脚布置

④内含4Kbit的EEPROM存储器,可以编程选定进行分块保护,保证重要数据存储的可靠性

⑤支持高达33MHz的时钟频率。

⑥功耗低,工作电流小于50mA,便于电池供电。

(1)引脚描述

  X5045的引脚布置图如上图所示,由于X5045采用SPI接口,因此使用有限几条I/O口线,就能实现与单片机的接口。

各引脚功能说明如下。

串行输出(SO):

SO是串行数据输出引脚。

在读周期内,数据在此引脚上移出,数据由串行时钟的下降沿同步输出。

串行输入(SI):

SI是串行数据输入引脚。

所有操作码、字节地址及写入存储器的数据均在此引脚上输入。

数据由串行时钟上升沿锁存。

串行时钟(SCK):

串行时钟用于数据输入和输出的串行总线定时。

操作码、地址或出现在SI引脚上的数据在时钟输入的上升沿锁存,而SO引脚上的数据在时钟输入的下降沿之后发生改变。

片选信号(

):

为高电平时,X5045不被选择,SO输出引脚处于高阻状态。

写保护(

):

为低电平时,向X5045的写操作被禁止,但是器件的其他功能仍正常。

保持高电平时,所有的功能,包括写操作,都正常。

复位(RESET):

X5045的RESET高电平有效。

漏极开路的输出端,只要Vcc下降至低于最小Vcc检测电平,RESET变为高电平。

它将保持高电平直至Vcc上升到最小Vcc检测电平200ms为止。

如果允许看门狗定时器工作且

保持低电平的时间大于看门狗超时周期,那么RESET也变为高电平。

的上升沿将复位看门狗定时器。

Vcc、Vss为x5045的电源引脚和地引脚。

(2)指令集

X5045的各种操作,包括写使能锁存器的置位与复位、读/写状态寄存器、读/写EEPROM,都是通过向X5045发出有关指令进行的。

指令集如表2-1所示。

指令名

指令格式

操作

WREN

00000110

设置写使能锁存器(允许写操作)

WRDI

00000100

复位写使能锁存器(禁止写操作)

RDSR

00000101

读状态寄存器

WRSR

00000001

写状态寄存器(块锁定位)

READ

0000A8011

从开始于所选地址的存储器阵列中读出数据

WRITE

0000A8010

把数据写入开始于所选地址的存储器阵列(1~4B)

表2-1 X5045指令集

(3)写使能锁存器

X5045包含一个写使能锁存器。

在内部完成写操作之前,此锁存器必须被设置(SET)。

WREN指令可设置锁存器而WRDI指令将复位锁存器。

在上电情况下和字节、页或状态寄存器写周期完成之后,该锁存器自动复位。

如果变为低电平,则锁存器也被复位。

(4)状态寄存器

RDSR指令提供对状态寄存器的访问。

在任何时候都可以读状态寄存器,即使在写周期也如此,状态寄存器的格式如表2-2所示。

表2-2状态寄存器的格式

7

6

5

4

3

2

1

0

X

X

WD1

WD0

BL1

BL0

WEL

WIP

WD1

WD0

超时周期

0

0

1.4s

0

1

600ms

1

0

200ms

1

1

禁止

状态寄存器各位的意义说明如下

WIP(Write_In_Process):

该位表示“正在写”状态。

当该位为“l”时,写操作正在进行;当该位为“0”时,没有写操作在进行。

在写期间,所有其他位全置为“l”。

WIP位是只读的。

WEL(Write_Enable_Latch):

该位表示“写使能锁存”状态。

当该位为“1”时,锁存器置位;当该位为“0”时,锁存器复位。

WEL位是只读的,它由WREN指令置位,由WRDI指令复位,或者在成功地完成了写周期后复位。

BL1

BL0

被保护的阵列地址

0

0

0

1

180H~1FFH

1

0

100H~1FFH

1

1

000H~1FFH

BL0、BL1:

块保护位,用于选择EEPROM被保护的范围。

这两位由发出WRSR指令来设置,允许用户选择4种保护方式之一。

被选择保护的部分只允许读,不允许写。

EEPROM的保护范围如表2-3所示。

WD0、WD1:

这两位用于选择看门狗定时器(WatchdogTimer)的超时周期,选择范围如表2-4所示。

通过发出WRSR指令来设置WD0、WD1。

3.主机电路硬件原理

主机电路中主要包括

AT89C55WD单片机和X5045芯片,

就可以满足系统对硬件资源的

需求,硬件电路原理如图2-3所

示。

上电复位:

若图2-3中电阻R1取10

,当系统上电时,将在X5045的引脚7产生一个高电平有效的复位信号,该信号接到单片机的复位引脚RST,实现单片机的上电复位。

电源电压监测:

X5045工作时,监视Vcc跌落到一个确定的数值时,x5045的复位引脚7将发出一个高电平有效的复位信号,使单片机复位。

只要Vcc跌落到一个确定的数值以下,并保持在1V以上时,X5045能够发出单片机需要的5V高电平的复位信号,保证单片机可靠复位。

这就保证在Vcc一旦跌落到单片机允许的工作电压以下时,单片机处于复位状态,否则单片机此时可能执行某些错误的指令,产生不可预料的结果。

选定Vcc跌落到多大数值时,产生复位信号,可以通过对X5045编程决定,一般采用X5045出厂时默认的数值即可。

WDT超时周期选择:

X5045内部的WDT超时周期有3个数值可以编程选定,即200ms、600ms、1.4s。

WDT的超时周期决定了单片机从“死机”状态恢复为重新运行所需的时间。

理论上讲,这个时间越短越好,但对于慢速系统来讲,太短的时间不是很有实际意义。

时间选得越短,单片机正常运行时,访问X5045的时间间隔也越短,会增加CPU的负担。

4.驱动程序

(1)WDT驱动程序

X5045中WDT的驱动程序有两个,一个用于在单片机正常工作时访问WDT,使WDT不产生复位信号,注意,这个程序应当每隔一个确定的时间间隔运行一次,该时间间隔应当小于WDT超时周期;另一个驱动程序设定WDT的超时周期。

访问WDT驱动程序:

根据X5045的使用规则,只要其引脚发生从高电平到低电平的跳变,就实现对内部WDT定时器的复位,因此,根据图2-3所示,只要在连接X5045引脚的P1.4输出一个低电平脉冲即可,即做一次输出低再变高的操作。

程序如下:

CSBITP1.4

RST_WDT:

CLRCS

SETBCS

RET

设定WDT超时周期的驱动程序:

根据X5045的使用要求,通过设定X5045的状态寄存器实现超时周期的设置。

本系统选定WDT的超时周期为600ms,X5045的状态寄存器中WD1、WD0两位分别设置为0、1。

不考虑保护EEPROM时,状态寄存器内容可以设置为10H(参见X5045状态寄存器的格式)。

在设置状态寄存器之前,需要先完成两个操作:

设置写使能寄存器和发送写状态寄存器命令。

设置流程如图2-4所示。

驱动程序:

WREN_INSTEQU06H;状态存储器写使能命令为06H

WRSR_INSTEQU01H;写状态寄存器命令为01H

CSBITP1.4;连接5045之

引脚的I/O口线为P1.4

SCKBITP1.5;连接5045之SCK引脚的I/O口线为P1.5

SIBITP1.6;连接5045之SI引脚的I/O口线为P1.6

SOBITP1.7;连接5045之SO引脚的I/O口线为P1.7

SET_WDT:

LCALLWREN_CMD;设置写使能寄存器

CLRSCK;准备发送写状态寄存器命令

CLRCS

MOVA,#WRSR_INST;发送写状态寄存器命令

LCALLOUTBYT

MOVA,#10H;发送状态寄存器内容

LCALLOUTBYT

CLRSCK;退出设置WDT

SETBCS

RET

以上设置WDT的子程序“SET_WDT”,用到了两个底层的子程序“WREN_CMD”和“OUTBYT”。

“WREN_CMD”是一个设置写使能寄存器的子程序,“OUTBYT”是一个发送1B内容子程序。

这两个子程序是根据X5045“写使能锁存时序”和“写状态寄存器操作时序”编写的。

由于篇幅所限,X5045的相关操作时序不在这里介绍,请读者参阅有关的技术手册。

两个子程序如下:

WREN_CMD:

CLRSCK;准备发送写使能寄存器命令

CLRCS

MOVA,#WREN_INST;将写使能寄存器命令送A

LCALLOUTBYT;将1B命令发送出去

CLRSCK;退出发送

SETBCS

RET

OUTBYT:

MOVR0,#8;1B,需要发送8个BIT位

OUTBYT1:

CLRSCK;在SCK的上升沿,通过SI将内容送入X5045

RLCA

MOVSI,C

SETBSCK

DJNZR0,OUTBYT1;循环发送

CLRSI;退出发送

RET

 

图2-5EEPROM写入流程

2)EEPROM写入程序

根据X5045的使用规则,向EEPROM内写入内容,按图2-5所示的流程进行。

;******************************************************************

;子程序名:

PAGE_WRITE

;功能:

将R1中的内容为首地址的单片机内部RAM的不超过1页的内容写入以DPTR内容为首地址的EEPROM中

;底层子程序调用:

OUTBYT、WREN_CMD

;入口条件:

(R1)=待写入到EEPROM中的内部RAM中内容的首地址

;(DPTR)=待写入的EEPROM的首地址

;(R2)=要写入的字节数,不大于1页(4B)

;使用的寄存器:

A、DPTR、R1、R2

;******************************************************************

WRITE_INSTEQU02H;写数据命令为02H

PAGE_WRITE:

LCALLWREN_CMD;设置写使能寄存器

CLRSCR;准备发送写数据命令

CLRCS

MOVA,DPH;将EEPROM地址的最高位连同写数据命令一起发送

MOVC,ACC.0

MOVA,#WRITE_INST

MOVACC.3,C

LCALLOUTBYT

MOVA,DPL;发送EEPROM的低8位地址

LCALLOUTBYT

PAGE_WRITE1:

MOVA,@R1;发送1B内容

INCR1

LCALLOUTBYT

DJNZR2,PAGE_WRITE1;循环发送

CLRSCK;退出发送

RET

(3)EEPROM读出程序

;******************************************************************

;子程序名:

SEQU_READ

;功能:

将DPTR中内容为首地址的EEPROM中的内容读出到以R1中内容为首地

;址的单片机内部RAM中

;底层子程序调用:

OUTBYT、INBYT

;入口条件:

(R1)=单片机内部RAM的首地址

;(DPTR)=EEPROM的首地址

;(R2)=要读出的字节数

;使用的寄存器:

A、DPTR

;******************************************************************

READ_INSTEQU03H;读数据命令为03H

SEQU_READ:

CLRSCK;准备读数据

CLRCS

MOVA,DPH;将EEPROM地址的最高位连同读数据命令一起发送

MOVC,ACC.0

MOVA,#READ_INST

MOVACC.3,C

LCALLOUTBYT

MOVA,DPL;发送EEPROM的低8位地址

LCALLOUTBYT

SEQU_READ1:

LCALLINBYT;读出1B内容

MOV@R1,A;将读出的1B数据存入单片机RAM中

INCR1

DJNZR2,SEQU_READ1;循环读数据

CLRSCK;推出读数据

SETBCS

RET

“SEQU_READ”子程序用到了一个底层子程序“INBYT”,该子程序用于从EEPROM中读出1B内容,程序如下:

INBYT:

MOVR0,#8;1B,8个BIT位

INBYT1:

SETBSCK;准备读出

CLRSCK

MOVC,SO;读出内容存于C中

RLCA;将C中内容存于A中

DJNZR0,INBYT1;循环读出

RET

2.3.2前向通道电路设计

前向通道的任务是接收温度传感器Pt100铂电阻的信号,将其转变为单片机能够进行处理的数字信号,由信号转换电路、动态稳零电路、多路模拟开关、阻抗匹配电路、放大电路、A/D转换电路等几部分组成。

原理框图如图所示,硬件电路如图2-7所示。

 

1.信号转换电路

信号转换电路由图2-7中的9个惠斯登电桥组成(由于图面所限,图中仅绘出第1个、第2个和第9个),实现将8路Pt100温度传感器输出的电阻信号转换为电压信号。

其中,第1个惠斯登电桥没有外接Pt100传感器,设置它的目的是为动态稳零电路提供零信号(详见5.动态稳零电路)。

余下8个惠斯登电桥的工作原理完全一致,这里以第2个电桥为例,它由R5、R6、R7、C3、C4组成。

来自Pt100温度传感器发出的电阻信号以3线形式接到a1、b1、c1处,a1接Pt100的一端,b1、c1接Pt100的另一端,于是由Pt100、R5、R6、R7构成一个惠斯登电桥,如图2-8所示。

当检测到温度变化时,Pt100的阻值发生变化,在A、B点

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

当前位置:首页 > IT计算机 > 计算机软件及应用

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2