单片机温度采集系统

更新时间:2024-06-02 11:48:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

1 绪论

1.1 课题背景

随着计算机技术的发展,工业计算机控制系统的应用已非常普及。而智能仪表和现场总线等技术的引入则代表着一个网络时代的到来,成为工业控制的主流。在以单片机为基础的数据采集和实时控制系统中,通过计算机中的RS-232接口进行计算机与单片机之间的命令和数据传送,就可以利用计算机对生产现场进行监测和控制。但是由于计算机上的RS-232所传送的距离不超过30m,所以,在远距离的数据传送和控制时,可以用MAX485的接口转换芯片将RS-232转换成RS-485协议进行远距离传送。

目前国际上已经出现多种现场总线通讯规范及相应的通讯接口软件,但其系统造价对国内大量中小企业来说仍显过高。而RS-485总线技术以其构造简单、维护容易、造价低廉和硬件资源丰富等特点,仍在低成本的中小型计算机控制系统中占据重要一席。故本设计选用基于RS-485的通讯接口规范,实现对远距离工业现场的温度信号的采集控制。

1.2 课题的目的及意义

温度是工业生产过程中重要的被控参数之一,在冶金、机械、食品、化工等各类工业生产过程中广泛使用的各种加热炉、热处理炉、反应炉,对工件的处理温度等均需要对温度严格控制。随着现代信息技术的飞速发展和传统工业的逐步实现,由微机构成的温度测控系统已在众多领域被采用。该课题就是解决对工业现场温度信号的采集控制和传输问题。

伴随着计算机技术和网络技术的发展,工业参数的数字采集促进了现场总线(Fieldbus)技术的发展,目前现场总线已经从当初的4~20mA电流信号加载数字信号,发展成为全数字通讯,解决了现场信号远距离高速传送问题,而且提高了抗干扰性能,增加了系统配置的灵活性,节省了硬件投资,是未来生产自动化和过程控制的发展方向。较有影响的总线有:CAN.LONWORKS.PROFIBUS.FF等。虽然这些总线无主从方式工作,速度较快、网络支持较完善,但系统造价高,应用受到限制。而RS-485总线主机调度网以其制造容易、造价低、软硬件丰富、配置灵活等特点,得到了广泛的应用。它不仅具有良好的抗噪声干扰性,较远的传输距离,而且它可以实现多点互联,还可以实现全双工通信,因此对远程温度

- 1 -

采集控制系统的研究具有现实的意义和实际的价值。

1.3 主要研究内容

本设计是针对MCS—51型AT89C51系列单片机在采样、比较和控制方面的应用。本课题研究的主要内容是:

(1)温度检测过程

该环节使用铂电阻Pt100为测温元件,Pt100具有性能稳定、抗氧化性能强和测量精度高等优点,可以实现较为准确的测温。

(2)数据的采集和转换过程

数据采集系统是计算机对整个系统进行控制和数据处理,采用ADC0804实现由模拟量到数字量的转换。

(3)温度控制过程

采用中断的方式,当A/D转换结束,发出中断请求,单片机响应请求,驱动继电器动作,进行加热或冷却的处理。

(4)显示过程

采用两位的LED数码管实现对现场温度的显示。 (5)串行通信过程

基于RS-485串口通信协议,实现远距离通信。

- 2 -

2 温度采集控制系统硬件设计

温度采集及串口通讯是一个综合性系统。在本设计中以AT89C51单片机为CPU控制单元的核心,同时还包括了数据采集、数据存储、数据通信、LED显示等多个功能单元。

2.1 温度传感器选择

传感器是测控系统前向通道的关键部件,它也称换能器和变换器,一般是指非电物理量与电量的转换,即传感器是将被测的非电量(如压力、温度等)转换成与之对应的电量或电参量(如电流、电压、电阻等)输出的一种装置。

2.1.1 热电阻

热电阻是利用导体的电阻率随温度变化这一物理现象来测量温度的。几乎所有的物质都具有这一特性,但作为测温用的热电阻应该具有以下特性:

(1)电阻值与温度变化有良好的线性关系;

(2)电阻温度系数大,便于精确测量; (3)电阻率高,热容量小,反应速度快;

(4)在测温范围内具有稳定的物理性质和化学性质; (5)材料质量要纯,容易加工复制,价格便宜。

根据以上特性,常用的材料是铂和铜。

铂易于提纯,物理化学性质稳定,电阻率较大,能耐较高的温度,因此用铂电阻作为实现温标的基准器。

2.1.2 铂电阻Pt100

电阻式温度传感器 (RTD,Resistance Temperature Detector)是一种物质材料做成的电阻,它会随温度的上升而改变电阻值,如果它随温度的上升而电阻值也跟着上升就称为正电阻系数,如果它随温度的上升而电阻值反而下降就称为负电阻系数。大部分电阻式温度传感器是以金属做成的,其中以白金(Pt)做成的电阻式温度传感器,最为稳定,耐酸碱、不会变质、相当线性...,被工业界采用。 Pt100温度传感器是一种以白金(Pt)做成的电阻式温度传感器,属于正电阻系数, 在0~630.750℃温度范围内,Pt100的温度-电阻特性:

Rt = R0(1+at+bt)

式中:a=3.96847 X 10-3 /℃; b=-5.847 X 10-7 /℃;

- 3 -

2 Rt为在温度T下的电阻值;R0为在0℃时的电阻值。

基于以上的分析,故该设计采用性能稳定、抗氧化性能强和测量精度高的Pt100铂电阻,来实现对工业现场测点较为准确的测温。

2.2 信号调理电路

所谓信号调理就是将传感器(或变速器)所输出的电信号进行放大、隔离、滤波等,以便数据采集模块实现对数据的采集。其中传感器是将被测量(通常为非电量)转换成电信号的信号转换元件,然而由于传感器的电气特性,其产生的电信号一般不可能直接接入至PC,必须进行调理才能被数据采集设备精确、可靠的采集。一般而言,信号调理是基于PC机的通用数据采集系统不可或缺的组成部分。

2.2.1 隔离电路

隔离是指使用光电耦合器或变压器等方法,在测试系统和被测试系统之间传递信号,以避免直接的电或物理连接。因为被测量常有瞬变或冲击现象,甚至足以损坏计算机和数据采集板,将传感器信号同计算机隔离起来,使系统安全得到了保证。另外,通过隔离可以确保ADC卡的读数不致受到“地”电位或共态电压差异的影响。ADC卡每次采集输入信号时,都是以“地”为基准的,如果两“地”之间存在电位差,就可能导致“地”环路的产生,从而造成所采集的信号再现不准确。如果这一电位差太大,则可能危机到数据采集系统的安全,利用隔离技术就可以消除“地”环路并保证准确的采集信号。

2.2.2 放大电路

最常用的信号调理形式是放大,即将输入微弱的电信号放大至与多功能ADC卡的量程相当的程度,以获得尽可能高的分辨率。信号调理电路首先应将输入的微弱电流信号通过一个精密电阻,使之转换为电压信号,在对该电压信号进行调理和数字化。另外,信号调理模块应尽可能靠近信号源、传感器或变送器,这样信号在受到环境噪声影响之前即被放大,使信噪比得到改善。

- 4 -

图2-1 信号调理电路

本设计的信号调理电路如图2-1所示,它采用Pt100铂电阻作为工业现场温度测试点的传感器,将温度的变化转换为自身电阻值的变化,但该信号很小,为毫伏级,这里采用了一个电压跟随器,它的作用就是对信号进行隔离,改变输入输出电阻值,使阻抗匹配。它有效的提高了输入电阻值,降低了对输入的微小信号量的要求;同时它使输出电阻值减小,提高了电路的带负载能力。输出的采样信号的电压值为毫伏级,而ADC0804的电压值为伏特级,为了在量化时能准确的将采样值量化,需要加放大电路,这里采用了两级运算放大电路,LM741为比例运放,靠调节滑动变阻器来改变运放的放大倍数,以确保输入信号经量化后得到准确的采样值,来进行后续的处理工作。

2.3 数据采集接口

数据采集系统是计算机对整个系统进行控制和数据处理。它所处理的是数字信号,因此输入的模拟信号必须进行模数(A/D)转换,将连续的模拟信号量化。无论A/D 转换器的速度多快,A/D转换总需要时间。由此产生两个问题,第一,在 A/D转换期间,输入的模拟信号发生变化,将会使A/D转换产生误差,而且信号变化的快慢将影响误差的大小。为减小误差,需要保持信号不变。第二,A/D转换器输出的数字量只能表明采样时刻的信号值,通过采样使输入的连续信号变成离散信号。

2.3.1数据的采样与保持

- 5 -

在访问外部程序和数据存储器时,它是分时多路转换的地址(低8位)/数据总线,在访问期间激活了内部的上拉电阻。

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

② P1端口(P1.0~P1.7):P1是一个带有内部上拉电阻的8位双向I/O端口。P2的输出缓冲器可驱动(吸收或输出电流方式)4个输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流(IIL)。

在对Flash编程和程序校验时,P1接收低8位地址。

③ P2端口(P2.0~P2.7):P2是一个带有内部上拉电阻的8位双向I/O端口。P2的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。P2作输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流(IIL)。

在访问外部程序存储器和16位地址的外部数据存储器(如执行MOVX @DPTR指令)时,P2送出高8位地址。在访问8位地址的外部数据存储器(如执行MOVX@RI指令)时,P2口引脚上的内容(就是专用寄存器(SFR)区中P2寄存器的内容),在整个访问期间不会改变。

在对Flash编程和程序校验期间,P2也接收高位地址和一些控制信号。 ④ P3端口(P3.0~P3.7):P3是一个带内部上拉电阻的8位双向I/O端口。P3的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。P3作输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流(IIL)。

在AT89C51中,P3端口还用于一些复用功能。 复用功能如表2-1所列。

表2-1 P3各端口引脚与复用功能表 端口引脚 - 11 -

复用功能 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 RXD(串行输入口) TXD(串行输出口) INTO(外部中断0) INT1(外部中断1) T0(定时器0的外部输入) T1(定时器1的外部输入) WR(外部数据存储器写选通) RD(外部数据存储器读选通) 2.4.2 单片机的时钟电路

MCS-51单片机内部的振荡电路是一个高增益反相放大器,引线XTAL1和XTAL2分别是放大器的输入端和输出端。单片机内部虽然有振荡电路,但要形成时钟,外部还需附加电路。MCS-51单片机的时钟产生方式有两种。

(1) 内部时钟方式

利用其内部的振荡电路在XTAL1和XTAL2引线上外接定时元件,内部振荡电路便产生自激振荡,用示波器可以观察到XTAL2输出的时钟信号。最常用的是在XTAL1和XTAL2之间连接晶体振荡器与电容构成稳定的自激振荡器,如图2-5所示。

晶振可在1.2~12MHz之间选择。MCS-51单片机在通常应用情况下,使用振荡频率为6MHz的石英晶体振荡器,而12Hz频率的晶体主要是在高速串行通信情况下才使用。对电容值无严格要求,但它的取值对振荡频率输出的稳定性、大小及振荡电路起振速度有少许影响。C1和C2可在20~100pF之间取值,一般取30pF左右。

(2) 外部时钟方式

在由单片机组成的系统中,为了各单片机之间时钟信号的同步,应当引入惟一的使用外部振荡脉冲作为各单片机的时钟。外部时钟方式中是把外部振荡信号源直接引入XTAL1或XTAL2。由于HMOS和CHMOS单片机外部时钟进入的引线不同,其外部振荡信号源接入的方式也不同。HMOS型单片机由XTAL2进 入,外部振荡信号接至XTAL2,而内部反相放大器的输入端XTAL1应接地,如图2-6所示。由于XTAL2端的逻辑电平不是TTL的,故还要接一上拉电阻。CHMOS型单片机由XTAL1进入,外部振荡信号接至XTAL1,而XTAL2可不接地,如图2-7

- 12 -

所示。

图2-5使用片内振荡电路的时钟电路

图2-6 HMOS型单片机的外部时钟方式

图2-7CHMOS型单片机的外部时钟方式

2.4.3 复位电路和复位状态

MCS-51单片机的复位是靠外部电路实现的。MCS-51单片机工作后,只要在它的RST引线上加载10ms以上的高电平,单片机就能够有效地复位。

(1) 复位电路

MCS-51单片机通常采用上电自动复位和按键复位键两种方式。最简单的复位电路如图2-8所示。

图2-8 简单的复位电路

上电瞬间,RC电路充电,RST引线端出现正脉冲,只要RST端保持10ms以上的高电平,就能使单片机有效的复位。在应用系统中,有些外围芯片也需要复位。如果这些芯片复位端的复位电平的要求一致,则可以将复位信号与之相连。

- 13 -

(2) 复位状态

复位电路的作用是使单片机执行复位操作。复位操作主要是把PC初始化为0000H,使单片机从程序存储器的0000H单元开始执行程序。程序存储器的0003H单元即MCS-51单片机的外部中断0的中断处理程序的入口地址。留出的0000H~0002H 3个单元地址,仅能够放置一条转移指令,因此,MCS-51单片机的主程序的第一条指令通常情况下是一条转移指令。

P0、P1、P2、P3共有4个8位并行I/O口,它们引线为:P0.0~P0.7、P1.0~P1.7、P2.0~P2.7、P3.0~P3.7,共32条引线。这32条引线可以全部用做I/O线,也可将其中部分用做单片机的片外总线。

① 控制线

A、ALE地址锁存允许

当单片机访问外部存储器时,输出信号ALE用于锁存P0口输出的低8位地址A7~A0。ALE的输出频率为时钟振荡频率的1/6。

B、EA程序存储器选择

EA=0,单片机只访问外部程序存储器。对内部无程序存储器的单片机8031,EA必须接地。EA=1,单片机访问内部程序存储器,若地址超过内部程序存储

器的范围,单片机将自动访问外部程序存储器。对内部有程序存储器的单片机,

EA应接高电平。

C、PSEN片外程序存储器的选通信号。 此信号为读外部程序存储器的选通信号。 D、RST复位信号输入 ② 电源及时钟

VSS端接地,VCC端接+5V,XTAL1和XTAL2接晶振或外部振荡信号源。 如图 2-9 所示,本设计采用内部时钟方式,在XTAL1和XTAL2之间连接了一个11.0592MHZ的晶体振荡器,与两个20PF的电容共同构成一个稳定的自激振荡器,来提供所需时钟信号。复位电路采用上电加按键复位方式,只有手动按下复位按钮电路闭合,RC回路充电,RESET引线端出现正脉冲,实现复位。

- 14 -

图2-9 单片机时钟电路和复位电路

2.4.4 总线结构

单片机的引线除了电源、复位、时钟输入、用户I/O口外,其余引线都是为实现系统扩展而设置的,这些引线构成了单片机外部的3总线形式: ① 地址总线

地址总线宽度为16位,由P0口经地址锁存器提供低8位地址(A7~A0),P2口直接提供高8位地址(A15~A8)。由口的位结构可知,MCS-51单片机在进行外部寻址时,P0口的8根引线为低8位地址和8位数据的复用线。P0口首先将低8位的地址发送出去,然后再传送数据,因此要用锁存器将先送出的低8位地址锁存。 ② 数据总线

数据总线宽度为8位,由P0口提供。 ③ 控制总线

MCS-51用于外部扩展的控制总线除了它自身引出的控制线RES、EA、ALE、

PSEN外,还有由P3口的第二功能引线:外部中断0和外部中断1输入线INT0和INT1,以及外部RAM或I/O端口的读选通和写选通信号RD和WR。

2.5 LED数码管显示接口

- 15 -

在单片机应用系统中,如果需要显示的内容只有数码和某些字母,使用LED数码管是一种较好的选择。LED数码管显示清晰、成本低廉、配置灵活,与单片机接口简单易行。

2.5.1 LED数码管介绍

LED数码管是由发光二极管作为显示字段的数码型显示器件。图2-10(a)为LED数码管的外形和引脚图,其中七只发光二极管分别对应a~g七段构成“”字形另一只发光二极管Dp作为小数点的显示。因此这种LED显示器称为七段数码管或八段数数码。

图2-10 LED数码管

LED数码管按电路中的连接方式可以分为共阴型和共阳型两大类,如图2-10 (b)、(c)所示。共阳型是将各段发光二极管的正极连在一起,作为公共端COM,公共端COM接高电平,a~g、Dp各笔段通过限流电阻接控制端。某笔段控制端为低电平时,该笔段发光,高电平时不发光。控制几段笔段发光,就能显示出某个数码或字符。共阴型是将各数码发光二极管的负极连在一起,作为公共端COM接地,某笔段通过限流电阻接高电平时发光。

2.5.2 LED数码管编码方式

当LED数码管与单片机相连时,一般将LED数码管的各笔段引脚a、b、?、g、Dp按某一顺序接到MCS-51型单片机某一个并行I/O口D0、D1、?、D7,当该I/O口输出某一特定数据时,就能使LED数码管显示出某个字符。例如要使共阳极LED数码管显示“0”,则a、b、c、d、e、f各笔段引脚为低电平,g和Dp为高电平,如表2-2所示。

- 16 -

表2-2 共阳极LED数码管显示数字“0”时各管段编码

D7 Dp 1 D6 g 1 D5 f 0 D4 e 0 D3 d 0 D2 c 0 D1 b 0 D0 a 0 字段码 C0H 显示数 0 C0H称为共阳LED数码管显示“0”的字段码,不计小数点的字段码称为七段码,包括小数点的字段称为八段码。

LED数码管编码方式有多种,按小数点计否可分为七段码和八段码;按共阴共阳可分为共阴字段码和共阳字段码,不计小数点的共阴字段码与共阳字段码互为反码;按a、b、?、g、Dp编码顺序是高低位的前后位置的不同,又可分为顺序字段码和逆序字段码。表2-3为共阴极常用字符段码表。

表2-3 共阴极常用字符段码表

字符 0 1 2 3 4 5 6 7 8 9 Dp g f e d c b a 0 0 1 1 1 1 1 1 0 0 0 0 0 1 1 0 0 1 0 1 1 0 1 1 0 1 0 0 1 1 1 1 0 1 1 0 0 1 1 0 0 1 1 0 1 1 0 1 0 1 1 1 1 1 0 1 0 0 0 0 0 1 1 1 0 1 1 1 1 1 1 1 0 1 1 0 1 1 1 1 段码(共阴) 3FH 06H 5BH 4FH 66H 6DH 7DH 07H 7FH 6FH 段码(共阳) C0H F9H A4H B0H 99H 92H 82H F8H 80H 90H

2.5.3 LED数码管显示方式和电路设计

- 17 -

LED数码管显示电路在单片机应用系统中可分为静态显示方式和动态显示方式。

① 静态显示方式

在静态显示方式下,每一位显示器的字段需要一个8位I/O口控制,而且该I/O口须有锁存功能,N位显示器就需要N个8位I/O口,公共端可直接接+5V(共阳)或接地(共阴)。显示时,每一位字段码分别从I/O控制口输出,保持不变直至CPU刷新显示为止。也就是各字段的亮灭状态不变。静态显示方式编程较简单,但占用I/O口线多,即软件简单、硬件成本高,一般适用显示位数较少的场合。

② 动态扫描显示方式

当要求显示位数较多时,为了简化电路、降低硬件成本,通常采用动态扫描显示电路。所谓动态扫描显示电路是将显示各位的所有相同字段线连在一起,每一位的a段连在一起,b段连在一起?g段连在一起,共8段,由一个8位I/O口控制,而每一位的公共端(共阳或共阴COM)由另一个I/O口控制。这种连接方式由于将多位字段线连在一起,当输出字段码时,由于多片同时选通,每一片将显示相同的内容。因此,要想显示不同的内容。必须采取轮流显示的方式。即在某一瞬间时,只让某一片的字位线处于选通状态(共阴极LED数码管为低电平,共阳极为高电平),其他各片的字位线处于开断状态,同时字段线上输出这一位相应要显示字符的字段码。在这一瞬时,只有这一位在显示,其他几位暗。同样在下一瞬时,单独显示下一片,这样依次轮流显示,循环扫描。由于人的视觉滞留效应,人们看到的是多位同时稳定显示。

本设计LED采用共阴极接法,如图2-11所示,显示器的8段码通过8个1K?的限流电阻和7406型反相驱动器接到AT89C51的P1口, 1K?的电阻起到了限流作用,使LED在额定电流内正常工作,7406型反相驱动器作为字位锁存器,来增加数码管的显示驱动能力,以提高显示亮度。这里采用动态扫描方式,将显示各位的所有相同字段线连在一起,由74LS138来实现位选,位选端分别接到Y2和Y3引脚上,由单片机的P2.4、P2.5、P2.6控制Y2、Y3的选通。在某一瞬间,只让一片字位线处于被选通状态,循环扫描,轮流显示。

- 18 -

图2-11 LED显示电路 2.6输出驱动电路

2.6.1 光电耦合器

集成隔离放大器的输入“地”、输出“地”、电源“地”之间有极好的隔离性能。一般具有极高的抗共模电压能力和极高的共模抑制比。所谓隔离,就是切断前面所讲的三个“地”之间一切电流或电阻的联系。

集成隔离放大器按隔离手段分成两种类型,一种是变压器隔离放大器,另一种是光电隔离放大器。

- 19 -

集成隔离放大器应用于信号采集系统可以起到非常好的抗干扰作用。可以实现从高共模电压中采集到微弱的低电平信号。另外也可以实现将传感器检测的信号与计算机或数字系统隔离保护以保证系统安全工作。

光电耦合器在电路中的主要作用是把高压电路和控制电路进行电气隔离。典型的光电耦合器内部等效电路如图2-12(a)所示,图2-11(b)为光电耦合器的基本电路,由内部等效电路可知,光电耦合器主要由光源(即发光二极管)和光敏器件(即光电池、光敏晶体管、光敏晶闸管等)组成。最通用的光电耦合器是把一个发光二极管LED和一个光敏晶体管VT封装在一个完全与外界光线隔离的外壳中。光电耦合器的工作过程简述如下:当有电流流过LED时,便产生一个光源,光的强度取决于激励电流的大小,此光照射到封装在一起的光敏晶体管VT上后,控制VT产生一个与LED正向电流成正比的集电极电流。

图2-12光电耦合电路

光电耦合器的基本特性如下: 1) 共模抑制比

在光电耦合器内部,由于发光管和光敏管之间的耦合电容很小(2pF以内),所以共模输入电压通过级间耦合电容对输出电流的影响很小,因而,共模抑制比很高。 2) 输出特性

光电耦合器的输出特性是指在一定的发光电流IF下,光敏管所置偏压VC与输出电流IC之间的关系。当IF>0时,发光二极管开始发光,在一定的IF作用下,所对应的IC基本上与VC无关,IF和IC之间的变化成线性关系。当在集电极或发射极串接一个负载电阻RL后,即可获得输出电压。

- 20 -

答方式进行数据通信,可使用请求发送(RTS)、清除发送(CTS)或数据终端准备(DTR)、数据装置准备(DSR)进行硬件握手。在AT89C51单片机系统中,分别从P3.0和P3.1引出串口线RXD和TXD通过专用的电平转换芯片转换成RS-232接口标准的电平,这样,二者之间就可以通过RS-232接口进行数字信号的传送。单片机也可以以直接传送或应答握手的方式进行数据通信,但由于握手方式占用其他的端口,而单片机的端口数量有限,所以,计算机与单片机的通信常采用直接传送的方式。

2.7.3 RS485的可靠性注意问题

实践证明,在构成RS-485总线网时,要使系统有高可靠性,通常需要考虑下列几个问题。

1) 传输线的选择和阻抗匹配

在差分平衡系统中,一般选择双绞线作为信号传输线。双绞线价格低廉,使用方便,两条线基本对称,外界干扰噪声主要以共模方式出现,对接收器的差动输入影响不大。

信号在传输线上传送时,如果遇到阻抗不连续的情况,会出现反射现象。传送的数字信号包含丰富的谐波分量,如果传输线阻抗不匹配,高次谐波可以通过传输线向外辐射形成电磁干扰(EMT)。双绞线的特性阻抗一般在110~130Ω之间,通常在传输线末端接一个120Ω电阻进行阻抗匹配。 2) 隔离

RS-485总线在多站连网时,相距较远的不同站之间的地电位差可能很大,各站若不加隔离地直接连网很可能导致接口芯片的损坏,尤其是接收器芯片。解决这一问题的一种简单有效的办法是将各站点的串行通信接口电路与其他站进行电气隔离,如图2-15所示。实践证明,这是一种有效的办法。图示电路可以用分离的高速光耦合器件、带隔离的DC/DC电源变换器与RS-485收发器组合而成,也可以采用专门的带隔离的收发器芯片。MAXIM生产的MAX1480B是具有光耦合的RS-485接口芯片,片内包括收发器、光电耦合器及隔离电源,单一的+5V电源供电,使用十分方便。

- 26 -

图2-15 光电隔离的 RS-485 总线 3) 抗静电放电冲击

RS-485接收器差分输入端对地的共模输入电压范围-7~+12V,超过此范围时器件可能损坏。接口芯片在安装使用过程中,可能受到静电放电冲击,例如人体接触芯片脚引起的静电放电,其电压可以高达+35KV。静电放电会影响电路的正常工作或导致电器件损坏。解决的办法是选用带静电放电保护的RS-485接口器件,例如MAX1487E、MAX483E~491E、SN75LBC184等。这些器件对于抗其他类型的高共模电压干扰也有效,例如雷电干扰。解决这一问题的另一个办法是在传输信号线上加钳位电路。 4)传输线的铺设及屏蔽

在系统安装时,应尽量做到传输线单独铺设,不与交流功率线一起铺设在同一条电缆沟中。强信号线与弱信号线避免平行走向,尽量使二者正交。如果这些要求很难实现,也要尽量使信号线离干扰线远一些,一般认为两者的距离应该为干扰导线内径的40倍以上。

如果采用带有屏蔽线的双绞线,将屏蔽层良好的接大地,也会得到良好的效果。

3 温度采集控制系统软件设计

- 27 -

在本设计中软件要解决的主要问题,就是传感器输出信号转换成温度值控制输

出的过程。程序开始执行时最先进入的是初始化子程序,这部分实现的功能包括各种I/O口输入输出状态的设定,串口工作状态的设定,有关中断使能的设定,各存储器地址的定义等的设置等。

3.1 主程序

3.1.1 程序说明

这是一个综合硬件设计控制系统。利用显示电路、A/D转换电路、单片机实现温度过程控制的系统。加热电机用加热电阻代替,制冷采用自然冷却。

本设计可以实现将模拟温度信号,转换成数字信号,并经过计算处理后通过LED动态显示电路以十进制形式显示出来,同时显示电路还将显示设定的恒温值。设恒温值为在50℃,该系统可以对温度进行实时过程的监控。当实际温度低于设定的恒定温度2℃时,单片机发出指令信号,继电器吸合,加热电阻开始加热。当温度超过设定的恒温值2℃时,单片机发出指令信号,继电器断开,加热电阻停止加热;制冷过程采用自然冷却。

3.1.2 流程图

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

系统初始化 开始

开CPU中断

显示程序 图 3-1 主程序流程图 3.2 模数转换程序

标度变换说明:

- 28 -

本设计是模拟温度的显示,温度经过热敏电阻转换为电压信号,经放大器放大后进入单片机进行A/D转换成数字量后输出到动态显示部分,显示其温度值。

其中温度范围的计算原理:首先选取两个温度状态T1T2,分别测量出其模拟输出电压V1V2,根据ADC0804的输入范围在0到5伏,即可计算出温度极限。

0伏时对应的温度TL:T1-(V1-0)(T2-T1)/(V2-V1) 5伏时对应的温度TH:T1-(V1-5)(T2-T1)/(V2-V1) 本设计中近似计算TH为100℃,TL为0℃。

程序中温度的计算原理:首先用温度范围除以0到256(即每个十六进制数的温度增长率),然后乘以模拟转换的数字量,即得到升高的温度,再和最低温度相加,就可以得到实际的温度值。

其公式为:TL+AX(TH-TL)/256 TL:显示的最低温度 TH:显示的最高温度 AX:模拟电压所转换的数字量 标度变换图示,见图3-2

读A/D转换 关中断 A/D转换中断 保存到缓冲区 开中断 图3-2 标度变换图示

A/D转换过程的流程图如3-3所示

ADC0804的INTR与AT89C51 的P3.2 脚及INT1相连,当A/D转换结束时,发 出中断申请,单片机响应中断读取A/D转 换结果。

结束 图3-3 A/D转换流程

3.3 LED显示程序

本设计采用2位LED数码静态显示,显示温度范围从0℃到99℃,字段码放在

- 29 -

LEDLAB中,采用查表方式,偏移量加首址查得对应的字形代码。

当定时器T0定时时间到,采样电路进行采样,采样结果经信号调理电路处理后,送入A/D转换,经标度变换后显示。 整个过程见图3-4所示:

启动A/D转换 赋定时器初值 关中断 定时器T0中断

标度变换

控制输出 送显示缓冲区

返 回 开中断 图3-4 LED显示

3.4 输出驱动程序

本设计是对工业现场温度的采集和控制,设现场恒温值为在50℃,当实际

- 30 -

温度低于该设定的恒定温度2℃时,单片机发出控制命令信号,继电器动作吸合,外部加热电阻开始加热。当温度超过设定的恒温值2℃时,单片机发出命令信号,继电器断开,加热电阻停止加热;制冷过程采用自然冷却。

3.5 串口通信程序

串行通信的信息传输在一个方向上只占用1根线。在1根通信线上既传输数

据又传输联络控制信息是串行通信的特点。因此,串行通信有着一系列通信协议和规程。

3.5.1 串行通信协议

通信协议是对数据传输方式的规定,通信双方必须遵从统一的通信协议。 AT89C51串口与各智能模块的通讯按各自定义的通讯协议进行通讯,其过程如下: 1) 首先使所有从机的SM2位置,以使其处于只接收地址帧的状态。

2) 控制卡先发一地址信息,其中8位为地址,第9位为地址/数据信息的标志

位,该位置1表示该帧位地址信息。

3) 从机接收到地址帧后,各自将接收到的地址与从本机的地址比较。对于地址

相符的从机,使SM2=0,以接收主机随后发来的所有信息;对于地址不相符的从机,使SM2=1,继续执行采集和其他任务。

4) 当从机发送数据结束后,发送一帧校验和,并置第9位(TB8)为1,作为从

机数据传送的结束标志。

5) 控制卡接收数据时先判断数据结束标志(RB8),若RB8=1,且校验和正确,则

回送正确信号00H,此信号可令该从机复位,重新采集数据,等待地址帧。若校验和出错,则送0FFH,令该机重发数据,如果重发5次还不行,则认为失败,转其它地址。若接收帧RB8=0,则将原数据送到缓冲区,并准备接收下帧信息。

6) 从接收到的复位命令后回到监听地址状态(SM2=1)。

3.5.2 串行通信格式

异步串行通信遵守以下格式:如图3-5所示 ←——传输方向 - 31 -

1 0 1/0 1/0 1/0 1/0 数据位 1/0 1/0 1/0 1/0 1/0 1 起始位︱ 空号︱ ︱校验位︱停止位 图3-5 异步串行通信格式

逻辑0为串行异步通信的起始位,当接收设备监测到这个逻辑低电平时,就开始准备数据位接收信号。起始位的作用就是同步设备。

当接收设备接收到起始位后,接着就会接收到数据位。数据位的个数可以是5位、6位、7位或8位,由通信双方约定。数据发送时,低位在前,高位在后。

数据发送完以后,可以发送奇偶校验位。奇偶校验用于有限差错检测,通信双方约定一致的奇偶校验方式。如果选择偶效验逻辑1的数据位个数与逻辑1的奇偶位个数之和必须是偶数;如果选择奇校验,逻辑1的数据位个数与逻辑1的奇偶为个数之和必须是奇数。

在奇偶校验位或数据位(无奇偶校验位时)之后发送的是停止位。停止位是一个数据的结束标志,可以是1位、1.5位或2位的低电平。接收设备接收到停止位后,通信线便恢复到逻辑1的空闲状态。

字符帧格式是在数据位前面加1位用“0”作为标志的起始位,在数据位后

面加上1位奇/偶校验位和用“1”作为标志的停止位(1位或1.5位或2位)。 “0”和“1”这两种标志也分别称为传号和空号。发送器在发送1个字符之前,先发送起始位,而在字符发送完之后,再发送奇/偶校验位、停止位。当接收器检测到起始位时,便确定1个字符的传输到来,于是开始接收字符,并进行规定的奇/偶校验位和停止位检测,1个字符接收完成。

在字符帧格式的起始位和奇/偶校验位、停止位之间,是相应的字符信息,称为数据位。数据位通常由7位ASCII码组成,数据位传输是由低位向高位依次进行的。因此,传输1个字符,必须以完整的字符帧格式(10位或10.5位或11位)格式依序传输。

传输开始后,接收设备不断地检测传输线,在一系列的“1”(称为空闲位)之后检测到一个“0”信息位,就确认1个字符开始传输了,于是以位时间为间隔移位接收所规定的数据位和奇/偶校验位,最后是规定长度的停止位“1”。接收方把数据位拼装成1位字符,并进行奇/偶校验和停止位检测,只有既无校验

- 32 -

位错,亦无停止位错的接收才算正确的。1个字符接收完毕后,接收设备又继续检测传输线,监视“0”信号的到来和下一个字符传输的开始,如此反复。

3.5.3流程图

串口通信过程采用中断方式,SBUF是串行口数据缓冲器,是一个可以直接寻址的专用寄存器。在物理上,一个作为发送缓冲器,一个作为接收缓冲器。两个缓冲器共用一个口地址99H,由读写信号区分,CPU写SBUF时为发送缓冲器,读SBUF时为接收缓冲器。单片机响应串口中断申请,根据控制字执行相应的读写操作。串口中断过程如图3-6所示:

串口中断 关中断

控制字转移 读SBUF

调读函数 调写函数 控制“读” 控制“写”

结 束 开中断 图3-6 串口中断流程图

3.6 系统源程序

=======================各存储器地址定义=================================

ADPORT EQU 0FEFBH;AD转换口地址

- 33 -

LEDBUF EQU 30H; 将送显示的八段码存储器 TEMP EQU 40H; 置缓冲区首地址 LOWLIMIT EQU 30; 最低设定温度 HIGHLIMIT EQU 70; 最高设定温度 LOWTEMP EQU 0; 温度下限 HIGHTEMP EQU 100;温度上限

SETTEMP EQU 50H;设定温度值存储器 CURTEMP EQU 51H;当前实际温度存储器 ADRAM EQU 60H;AD转换后数字量存储器 DIN BIT 0B0H;串行通信口 CLK BIT 0BIH;触发源

=======================程序开始部分====================================

ORG 0000H;程序首地址 LJMP START ;跳到主程序

LEDLAB: DB 3FH,06H,5BH,4FH,66H,6DH;要显示温度值对应的八段码表 DB 7DH,07H,7FH,6FH

===========================显示子程序================================== DISPLAYLED:

PUSH ACC;保护现场 PUSH DPH PUSH DPL

MOV R0,#LEDBUF;

MOV R1,#TEMP;送缓冲区首址

MOV R2,#2;显示位数计数

DL0:

MOV DPTR,#LEDLAB;指向字形段码表首址 MOV A, @R0;取要显示的数据 MOVC A,@A+DPTR;查表取字形段码 MOV @R1,A

MOV P1,A;由P1口送LED显示 DP1:

JNB TI,DL1;等待发送完一帧 CLR TI;清发送中断标志

DEC R0;指向下一个显示单元 DJNZ R2,DL0;2位未显示重复 POP DPL;恢复现场 POP DPH POP ACC

======================延时子程序======================================= DELAY: MOV R6,#100 DELAYLOOP:

MOV R5,#248

- 34 -

DJNZ R5,$

DJNZ R6,DELAYLOOP RET

===================温度计算与处理子程序================================= READTEMP:

ACALL READAD

MOV ADRAM,A;存由READAD子程序得来的A/D转换数字量 MOV B,#(HIGHTEMP-LOWTEMP);执行相关计算 MUL AB

MOV A,B;取高八位相当于除以256 ADD A,#LOWTEMP

MOV CURTEMP,A;保存求得的温度 RET DISPLAYRESULT:

CALL READTEMP

MOV A,ADRAM;A/D转换的数字量送A PDC:

MOV A,CURTEMP;取当前温度 LJMP GOON GOON:

MOV B,#10;转换为相应的十进制的八段码的偏移量 DIV AB

MOV LEDBUF+1,A MOV A,B

MOV LEDBUF+2,A RET

=====================读A/D口子程序==================================== READAD:

MOV DPTR,#ADPORT CLR A

MOVX @DPTR,A; 使P0为高阻抗,并使ADC0804开始转换,

WR=0

WAIT: JB P3.2,WAIT; 检测ADC0804的INTR=0?,是则转换完

MOVX A,@DPTR; 将转换好的数据载入累加器 CPL A ; 将累加器的值反相 MOV P1,A ; 输出至P1显示 CALL DELAY ; 延时50毫秒 RET

==========================主程序======================================

- 35 -

START:

MOV SETTEMP,#50;设定恒温值为50℃ MLOOP1: ACALL DISPLAYRESULT ACALL DISPLAYLED ACALL READTEMP

MOV A,CURTEMP;以下是加热程序 JB ACC.7,LEO CLR C

MOV B,SETTEMP DEC B DEC B SUBB A,B JNC GN2 LEO:

SETB P3.4 SJMP GN4 GN2:

MOV A,CURTEMP SETB C

MOV B,SETTEMP INC B INC B SUBB A,B JC GN4 CLR P3.4 SJMP GN4 GN4:

ACALL DELAY1 LJMP MLOOP END

结论

本设计中,是以温度采集和过程控制,配合远距离串口通讯为总目标,采用AT89C51单片机最小应用系统为总控制中心,辅助设计有温度采样电路、A/D转

- 36 -

换接口、继电器输出、2LED数码管动态显示、串口通讯等。

温度采集及串口通讯是一个综合性系统。在本设计中将工业现场的温度信号通过模拟温度传感器(Pt100铂电阻)采样并转换为电压信号,该信号经过调理电路隔离、放大后,通过ADC0804模数转换器进行A/D转换成数字量,进入以AT89C51单片机为核心的CPU控制单元,实现输出驱动和LED数码管的显示。串口通讯部分,采用RS-485通信协议,通过MAX485芯片转换,上传给PC机。

因为设计时间有限,加之缺少对工业现场整体把握的经验,导致本设计在功能上还不十分完善。例如:温度控制过程只能大致实现温度的升高和降低,不能更准确的实现增加或减少具体的多少度;现有的系统只是点对点的进行通信没有连接网络实现点对多的通信等等。这些性能有待在将来进一步的研究中去补充和完善。

温度采集和过程控制是工业生产中的一个重要参数,对它的正确检测和远距离传输一直受到人们的重视,因此对温度采集控制的研究具有特别重要的意义。它从原始的人工采集控制到计算机智能采集控制系统,已使温度采集控制系统达到自动化、智能化,比过去控制效果要好许多。由于采用RS-485这种较为先进的串口通信协议标准,使工业现场采集信号的远距离传输成为了可能,它还便于组网,形成温度测控系统,实现点对多的通讯,因此具有实际意义和利用价值。

致谢

本设计是在王红旗老师的悉心指导下完成的,在课题的进展过程中,王老师倾注了大量心血,他兢兢业业的工作作风、科学严谨的治学态度和宽以待人、认

- 37 -

真负责的优秀品质,给我留下了非常深刻的印象。

同时,设计进行当中还受到天煌教仪公司二车间徐永刚主任、崔丽丽组长及其它同事的关心和指导,在此向他们表示深深的谢意。

在此系统的设计和论文的撰写过程中,还得到我们同一小组的同窗们的关心和帮助,在此一并向他们表示诚挚感谢。

[1] 李朝青[2] 余发山参考文献

编著 《单片机原理及接口技术》 北京航天航空大学出版社,1998 主编 《单片机原理及应用技术》 中国矿业大学出版社出版,2003

- 38 -

[3] 吴金戌 沈庆阳 郭庭吉 编著《 8051单片机实践与应用》 清华大学出版社出版,2001 [4] 赵新民 主编 王祁 副主编 《智能仪器设计基础》 哈尔滨工业大学出版社出版,1999 [5] 谢瑞和 主编 《串行技术大全》 清华大学出版社,2003

[6] 郁有文 常健 编著 《传感器原理及工程应用》 西安电子科技大学出版社,2002 [7] 何希才 毛德柱 编著 《新型半导体器件及其应用实例》 电子工业出版社,2003 [8] 王琦 秦娟英 编著 《计算机自动测量与控制》 西安电子科技大学出版社,2000 [9] 武锋 编著 《PIC系列单片机的开发应用技术》 北京航空航天大学出版社,1998 [10] Li.Dongsheng.A design of a low cost high precision data acquisition system.

Intelligent Control and Automation.2002.vol.4:2996~2999

[11]H.Fujita.Environmental sensor.Instrumentation and Measurement Technology

Conference,Advanced Technologies in I & M.IEEE,1994:1513~1514

[12] Qian Dong,Jianying Xie.Field network implementation based on RS-485.

Intelligent Control and Automation.2002.vol.4:2790~2793

[13] C.Svelto,G..Galzerano and E.Bava.Compact and accurate digital thermomenter

Based on Anderson’s loop and Pt-100 sensor.Measurement Journal of the

International Measurement Confederation IMEKO.2001,No.2:56~58

[14] V.Ajay Kumar.Overcoming data corruption in RS-485 communication.

Electromagnetic Interference and Compatibility,1995,vol.3:9~12

[15] B.Peter,J.Meehan,D.Miller.Sensor link protocol:linking sensor systems to

the digital battlefield.Military Communications Conference,MILCOM 98. Proceedings IEEE,1998:919~923

附录 整体电路图

- 39 -

comcomcomcom3838LED1LED2

2345678+12V+12VJ2CON2D1DIODED2DIODEQ2RELAY-DPSTQ4RELAY-DPST910421675+5V+5VR1810K9031NPNR201KQ1R91KQ3OPTOISO1R2322KR24100KOPTOISO1R22100KJ1CON2R10R11R12R13R14R15R161K1K1K1K1K1K1KR19100KR2110K903187C51aDPYbacbdfgecfedgdpdp910421675aDPYbacbdfgecfedgdpdpR171KP3.4R2522KR26100KP3.5U1A27406U1B4740631EA/VPX1X15X2X29RESET9RESET111OELE74ALS3731819U1C67406U1D87406U1E107406U1F127406U2A27406U2B4740689C5131171629301110123U7ABC12345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RDWRPSENALE/PTXDRXD45613P3.4P3.5INT0INT1T0T111INTR3U3U41U6ADC0804CLK-INCLK-RP3.25INTRVref/24WRRDCS19R2710K9C1321150PA-GND86Vin(+)Vin(-)1DDR11KR21KR31KR41KR5IKR61KR71KR81KCCP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7D0D1D2D3D4D5D6D7Q0Q1Q2Q3Q4Q5Q6Q7A0A1A2A3A4A5A6A7A8A9A10212018WGE2087654321232219D0D1D2U5D3D4D56116D6D7msbDB7DB6DB5DB4DB3DB2DB1lsbDB0VccREFTXDRXDAR174ALS1383LM7412U86OPAMP37+5VE1E2E3Y0Y1Y2Y3Y4Y5Y6Y7151413LED112LED2111097741J3R331KQ510UF21CON2U1020PF541+5VC3S10.1UR3120KR3610KR3710KRXDP2.4R32120TXDR30RES21234ROREDEDIVCCBAGND8765Q611.0592MHZX1AMAX485RS485S2SW-PBU1120PFX2VCC5- 40 -

393837363534333234781314171825691215161912131415P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.72122232425262728+12VGNDR351K+5VR348.2KRESETC4100nC5100nC6100n23459101113141516171112131415161718R284707R295KD32.7+5V+5VBB+12V+12V+12VC210uFU9LM7412R381K6AC7100nC8100nC9100nTitleRS-485远程温度采集卡SizeA3Date:File:630-May-2005G:\\hhbs\\终稿\\han.ddb7Sheet of Drawn By:NumberRevision韩华81

本文来源:https://www.bwwdw.com/article/myq6.html

Top