基于单片机的温度测控系统的设计Word文件下载.docx

上传人:b****5 文档编号:18581179 上传时间:2022-12-28 格式:DOCX 页数:30 大小:934.98KB
下载 相关 举报
基于单片机的温度测控系统的设计Word文件下载.docx_第1页
第1页 / 共30页
基于单片机的温度测控系统的设计Word文件下载.docx_第2页
第2页 / 共30页
基于单片机的温度测控系统的设计Word文件下载.docx_第3页
第3页 / 共30页
基于单片机的温度测控系统的设计Word文件下载.docx_第4页
第4页 / 共30页
基于单片机的温度测控系统的设计Word文件下载.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

基于单片机的温度测控系统的设计Word文件下载.docx

《基于单片机的温度测控系统的设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于单片机的温度测控系统的设计Word文件下载.docx(30页珍藏版)》请在冰豆网上搜索。

基于单片机的温度测控系统的设计Word文件下载.docx

下位机的单片机定时采集温度传感器所感应到的被测对象的表面温度,并将采集的数据显示在数码管上,温度过高或过低进行报警,同时通过串口把数据传送到上位机。

上位机收到下位机传送的温度数据,在显示屏上显示温度。

根据以上分析现将系统用图1.1.1表示。

图1.1.1温度测控系统示意图

2硬件系统设计

2.1总体硬件设计

2.1.1控制系统的总体设计思路

本系统采用AT89S52单片机作为下位机,完成水温检测与控制。

PC机为上位机,与单片机实时通信,实现参数显示、报警等功能。

主要硬件有单片机、温度传感器、LED数码管、串口驱动芯片等。

可分为六大部分电路:

电源电路、单片机电路、温度传感器电路、数码管显示电路、串口驱动电路、蜂鸣器电路。

2.1.2硬件选择

(1)单片机

AT89S52是一种低功耗、高性能微控制器,具有系统可编程Flash存储器,使用Atmel公司高密度非易失性存储器技术制造。

片上Flash允许程序存储器在系统可编程,亦适于常规编程器。

在单芯片上,拥有灵巧的CPU和系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

AT89S52具有以下标准功能:

8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。

【1】另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。

空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。

掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。

下图为AT89S52引脚图

图2.1.1AT89S52引脚图

  P0口:

P0口是一个8位漏极开路的双向I/O口。

作为输出口,每位能驱动8个TTL逻辑电平。

对P0端口写“1”时,引脚用作高阻抗输入。

当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。

在这种模式下,P0不具有内部上拉电阻。

在flash编程时,P0口也用来接收指令字节;

在程序校验时,输出指令字节。

程序校验时,需要外部上拉电阻。

  P1口:

P1口是一个具有内部上拉电阻的8位双向I/O口,p1输出缓冲器能驱动4个TTL逻辑电平。

对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。

作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。

  此外,P1.0和P1.1分别作定时器/计数器2的外部计数输入(P1.0/T2)和定时器/计数器2的触发输入(P1.1/T2EX)。

在flash编程和校验时,P1口接收低8位地址字节。

  引脚号第二功能:

  P1.0T2(定时器/计数器T2的外部计数输入),时钟输出

  P1.1T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)

  P1.5MOSI(在系统编程用)

  P1.6MISO(在系统编程用)

  P1.7SCK(在系统编程用)

  P2口:

P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。

对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。

在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX@DPTR)时,P2口送出高八位地址。

在这种应用中,P2口使用很强的内部上拉发送1。

在使用8位地址(如MOVX@RI)访问外部数据存储器时,P2口输出P2锁存器的内容。

在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。

  P3口:

P3口是一个具有内部上拉电阻的8位双向I/O口,p3输出缓冲器能驱动4个TTL逻辑电平。

对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。

P3口亦作为AT89S52特殊功能(第二功能)使用,如下表所示。

在flash编程和校验时,P3口也接收一些控制信号。

  端口引脚第二功能:

  P3.0RXD(串行输入口)

  P3.1TXD(串行输出口)

  P3.2INTO(外中断0)

  P3.3INT1(外中断1)

  P3.4TO(定时/计数器0)

  P3.5T1(定时/计数器1)

  P3.6WR(外部数据存储器写选通)

P3.7RD(外部数据存储器读选通)

(2)传感器

单片机的接口信号是数字电信号,要想用单片机获取温度这类非典信号的信息,必须使用温度传感器。

温度传感器的作用是将温度信息转换为电流或电压输出,如果转换后的电流或电压输出是模拟信号,还须进行A/D转换,以满足单片机借口的需要。

为了设计简单,此实验选用输出为数字信号的温度传感器。

选用的数字温度传感器是有DALLAS公司生产的DS18B20,它可把温度信号直接转换成川航数字信号供危机处理。

该传感器的特点是:

独特的单线借口仅需1根数据线与MCU连接,无需外部器件;

可通过数据线提供电源;

测温范围-55~+125℃,进度达0.1℃;

内置A/D变换,温度数字量转换时间200ms(典型值),9位温度读数。

同时它可靠性高,价格低。

(3)LED数码管

LED发光器件一般常用的有数码管和点阵两种。

点阵价格相对要高一些,常用的数码管一般为8字型数码管,分为a、b、c、d、e、f、g、dp八段,其中dp为小数点。

数码管常用的10根管脚,每一段有一根管脚,另外两根管脚为数码管的公共端,两根之间相互连通。

从尺寸上分,LED数码管的种类很多,常用的有0.3、0.5、0.8、1.0、1.2、1.5、1.8、2.3、3.0、4.0、等。

一般小于1.0的为单管芯,1.2~1.5的为双管芯,1.8以上的为3个以上管芯,因而供电电压要求不同,一般每个管芯的电压为2.1V左右。

通常,0.8一下采用5V供电,1.0~2.3采用12V供电,3.0以上的选择更高的电压供电。

因下位机为单一5V供电,同时考虑到价格因素,因此选用0.5的数码管。

(4)串口驱动芯片

单片机AT89S52支持串口通信,它提供的是CMOS点评的串口数据,但PC机进行通信时其COM口出来的信号时RS-232协议的串口数据电平,同时由于串口数据传输的距离较远,需要加驱动电路,因此需要在两者之间加转换新片。

我们的电路板采用5V供电,需要一路的串口转换,因此我们选用MAX232芯片,它采用5V供电,可提供2路串口转换,虽然浪费一路,但该芯片比较常用,易于购买。

2.2硬件系统各功能模块设计

2.2.1电源电路

因为选型的单片机、温度传感器、和数码管均支持5V电源工作,因此电源只需要单一5V供电即可,并且功率很小,不到1A。

直接用电脑USB接口提供的5V左右提供电源,再连接电容经过滤波,使得电压基本5V稳定。

电源电路如图2.2.1所示。

图2.2.1电源电路

2.2.2单片机电路

选用单片机AT89S52的引脚如图所示,要使单片机工作起来,主要是要给单片机增加上电复位电路和外接一个晶振。

给AT89S52加电时,需要对AT89S52的引脚进行一次复位操作。

复位操作将AT89C2051的工作环境置成初始状态,并从程序的开始进行运行。

根据AT89S52的管脚定义,上电复位是通过给AT89S52的1脚发一个瞬时高电平来完成的,电路如图2.2.2所示。

图2.2.2上位机复位电路

上电的瞬间,电流有一个突发的向上的尖峰脉冲,因此电流能通过C1电容达到AT89S52的复位端口RESET对AT89S52进行复位。

尖峰过后,电流平稳,电容C1阻止电流通过,这样可以防止对AT89S52反复进行复位。

电阻R1是用于给C1放点的,并将1号管脚拉低,防止RESET端口上持续高电平。

给AT89S52提供一定的时钟频率以后,AT89S52才能开始工作,图2.2.3所示电路提供时钟频率。

图2.2.3晶振电路

这个震荡电路与AT89S52内部的时钟震荡器一起组成完整的时钟频率发生电路,XTAL1为AT89C2051内部时钟振荡器的输入端,XTAL2为AT89S52内部时钟震荡器的输出端,XTAL为晶振,起到选择震荡频率的作用。

这里使用的时钟频率为11.092MHz。

C1、C2为震荡补偿电容起到放宽起振频率,让时钟容易起振的作用。

2.2.3温度传感器电路

DS1820数字传感器是一个3引脚的芯片,1脚位接地、2脚为数据输入输出、3脚为可选的VCC电源。

通过一个单线接口发送或接受数据,因此单片机与DS1820之间仅需一条连接线(加上地线)。

给该传感器供电可用两种方式进行,一种通过2脚的数据输入输出脚供电,即采用寄生电源,好处是进行远距离测温时无需本地电源,可以在没有常规电源的条件下从传感器中读数;

另一种是从VCC引脚介入一个外部电源,好处是I/O线上不需要加强上拉,而且总线控制器不用再温度转换期间总保持高电平,这样在转换期间可以允许在单线总线上进行其他数据往来。

此外在单线总想上可以挂任意多个DS1820,而且如果他们都使用外部电源的话,就可以先发一个SkipROM命令,再接一个ConverT命令,让他们同时进行温度转换。

注意当加外部电源时,GND引脚不能悬空。

当温度高于100℃时,不推荐使用寄生电源,因为DS1820在这种温度下表现出来的漏电流比较大,通信可能无法进行,在类似这种温度的情况下,推荐使用DS1820的VCC引脚。

本实验采用后一种方式,电路连接如图2.2.4所示。

图2.2.4温度传感器连接电路

2.2.4数码管显示电路

单片机驱动LED数码管有很多方法,按显示方法分为静态显示和动态显示。

静态显示是指显示驱动电路具有输出锁存功能,单片机将要显示的数据送出后不再控制LED,知道下次显示时再传送一次新的显示数据。

静态显示的数据稳定,占用的CPU时间少。

动态显示要CPU时刻对显示器进行数据刷新,显示数据有闪烁感,占用CPU时间多。

这两种显示方法各有利弊:

静态显示虽然数据稳定,占用很少的CPU时间,但每个显示单元都需要单独的锁存驱动电路,使用的电路硬件较多;

动态显示虽然有闪烁感,占用的CPU时间多,但是用的硬件少,能节省线路板空间。

动态扫描显示接口是单片机中应用最广泛的一种显示方式,其接口电路把所有LED数码管的8个笔画段a~g、dp的同名端连在一起,而且每一个数码管的公共端COM各自独立的接受I/O控制。

CPU向字段输出口送字形码时,所有数码管接收到相同的字型码,但究竟是哪个数码管亮,则取决于COM端,而这一端有I/O控制的,我们可以字形决定显示哪一位。

所谓动态扫描,就是指我们采用分时的方法,轮流控制各个数码管的COM端,使各个数码管轮流点亮,在轮流点亮的扫描过程中,每位数码管的电铃时间是极为短暂的,约为1ms左右,但由于认得诗句暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感。

从上述论述中可以看出动态显示方案具备较强的使用性,也是目前单片机应用中数码管显示较为常用的一种方式,所以在本设计中采用动态显示方案。

从电路上,数码管有可分为共阴和共阳两种,8个发光二极管的阳极都连接在一起的称之为共阳极LED数码管。

对于共阴极LED数码管,当公共阴极接地(为零电平),而阳极各段为高电平时,点亮数码管。

例如阳极hgfedcba各段为01110011时,数码管显示“P”字符,即对于共阴极LED数码管,“P”字符的字型码是73H。

如果是共阳极LED数码管,公共阳极接高电平,阴极各段为低电平时,点亮数码管,所以对共阳极LED数码管显示“P”字符的字形代码应为10001100(8CH)。

本设计使用的是模拟译码,即用三极管的导通与截止来实现译码。

所有发光二极管都是共阳极接法,P3口作为数码管的选通线,当给P3口相应位置低电平时,连接着P3口相应位的三极管道通,即相应的数码管选通。

P1口作为数码管的数据线,从P1口输出相应的字形码即可显示数字。

数码管选通电路起到只让某个数码管发光的作用,电路如图2.2.5所示。

图2.2.5数码管显示电路

在本设计中,将P1口作为字形码输出控制口,P1.0~P1.6分别于个数码管的笔画段a~g连接。

电阻R20~R26作为P0口输出的上路电阻,阻止定位10kΩ,作用是使数码管的默认转台为不点亮。

电阻R10~R16器限流作用,对数码管进行保护。

如果没有加这个电阻,数码管有可能因电流较大而烧坏。

需要注意的是,显示小数点的位置是固定的,因此让显示个位数的数码管的小数点为恒亮,其它数码管的小数点均灭。

2.2.5串口驱动电路

单片机AT89S52支持串口通信,它提供的是COMS电平的串口数据,但单片机进行串口通信时其COM口出来的信号时RS-232协议的串口数据电平,同时由于串口数据传输距离较远,需要加驱动电路,因此需要在两者之间加转换芯片。

电路如图2.2.6所示。

2.2.6RS-232协议转换电路

为了方便与上位PC通信,本实验添加了一个DB9的串口座。

2.2.6蜂鸣器电路驱动电路

上位机把下位机送来的测量温度值与预选设置的告警阈值进行比较,若大于,则通过串口向单片机发送告警指令,单片机接收到指令后,是P1.7脚为高电平,驱动蜂鸣器发音,进行温度告警。

蜂鸣器驱动电路如图2.2.7所示。

图2.2.7蜂鸣器驱动电路

图中,下位电阻R27的作用是让蜂鸣器的起始状态为不响。

3单片机与pc串口通信

3.1控制方案的选择

水温控制对实时控制要求比较高,需要时刻关注各个参数的变化,以及随时可以调节运行过程中设备的运行状态。

作为目前自动化工业中应用较为普遍的一种控制系统,单片机具有优秀的实时控制功能、灵活的编程能力小、价格适宜等特点。

因此我们决定在我们的这个课题里使用AT89S52单片机来实现对整个过程的控制。

但是,由于要求能通过计算机来实现运行中对参数的观察以及控制,这就需要一个可以在PC上显示出来的人机界面。

故决定采用PC+单片机这一系统来完成对整个处理过程的控制。

采用这一控制系统可以将计算机、单片机及操作人员的人—机接口结合在一起,使单片机能利用计算机丰富的软件资源,而计算机能和单片机的模块交互存取数据。

以PC机为基的控制容易编程和维护用户的利益,开放的体系结构提供灵活性,最终降低成本和提高生产率。

而且使用PC+单片机控制时,即使PC出现了故障,无法正常工作的时候,单片机仍然能独立的完成控制任务而不会打断。

3.2串行通信原理及通信线路连接

3.2.1串行通信基本原理

串行通信端口(SerialCommunicationPort)在系统控制的范畴中一直占据着极其重要的地位,它不仅没有因为时代的进步而遭淘汰,反而在规格上越来越完善,应用也越来越广泛。

现在,串行通信端口(RS-232)是计算机上的标准配置,通常有COM1和COM2两个端口。

在工业应用领域中,RS-232串行通信端口的使用相当普遍。

串行通信是把数据的每个字节分解为单个的二进制位并依次地传送,因此在串行通信中只需要一根数据线,比较适合远距离传输。

串行通信可分为异步通信和同步通信,异步通信比同步通信简单,技术上易于实现,适用于数据的随机发送/接收。

RS-232串行通信端口采用的是全双工连接的异步串行通信传输方式。

3.2.2通信线路连接

串口传输数据只要有接收数据针脚和发送针脚就能实现:

同一个串口的接收脚和发送脚直接用线相连,两个串口相连或一个串口和多个串口相连。

通信线路连接口如图3.1.1。

图3.1.1通信线路连接

PC机的某个串行口通过电缆线与RS232收发器MAX232的电平端口三线交叉连接,如图1所示MAX232的逻辑电平端口与单片机的串行口相连。

PC机RS232的9针连接器的4、6、7、8脚不用连接。

3.2.3计算机串口通信的实现

PC与单片机通信是采用MSComm控件通过串行端口传输和接收数据,为应用程序提供串行通讯功能。

MicrosoftCommunicationsControl(简称MSComm)是Microsoft公司提供的简化Windows下串行通信编程的ActiveX控件,它为应用程序提供了通过串行接口收发数据的简便方法。

具体的来说,它提供了两种处理通信问题的方法:

一是事件驱动(Event-driven)方法,一是查询法。

【2】

串行通信控件MSComm32.OCX提供了使用RS-232进行数据通信的所有协议,我们可以使用不同的工作方式来处理和解决各类通信软件的开发设计问题。

VisualC++为该控件提供了标准的事件处理函数和过程,并通过属性和方法提供了串行通信的设置,我们可以通过设置不同的属性来完成所要求的通信功能。

具体的来说,MSComm控件提供下列两种处理通讯的方式:

事件驱动方式和查询方式。

事件驱动方式:

事件驱动是处理连接端口通信的一种有效方法,可以利用OnComm事件捕获并处理通信中发生的事件和错误,通过分别对每个CommEvent属性值编程即可完成对各个事件或错误的处理,实时性较强。

查询方式:

可以在每个重要的程序之后查询MSComm控件某些属性(如Comnfl~vent属性和InBufferCount属性)的值来检测事件和通信错误。

这对小的自含程序可能比较常用。

MSComm控件的通信功能实现,实际上是调用了API函数,而API函数是由Comm.drv解释并传给设备驱动程序执行的,对于VC程序开发者只需知道MSComm控件的属性和事件的用法即可以实现串口的操作。

以下是MSComm控件的主要属性和方法:

1)CommPort:

设置或返回串行端口号,其取值范围为1~99,缺省为1。

2)Setting:

设置或返回串行端口的波特率、奇偶校验位、数据位数、停止位。

如:

Mscomm.Setting="

9600,N,8,1"

3)PortOpen:

打开或关闭串行端口,格式为:

MSComm.PortOpen={TRUE|FALSE}。

4)InBufferSize:

设置或返回接收缓冲区的大小,缺省为1024字节。

5)InBufferCount:

返回接收缓冲区内的等待读取的字节个数,可通过设置该属性为0来清除接收缓冲区。

6)Rthreshold:

该属性为一阀值,它确定当接收缓冲区内字节个数达到或超过该值后就产生代码为MSCOMM_EV_RECEIVE的OnComm事件。

7)InputLen:

设置或返回接收缓冲区内用Input读入的个数。

若取0,则INPUT读取整个缓冲区的内容。

8)Input:

该属性表示从接收缓冲区移走一串字符。

类型:

VARIANT。

9)OutBufferSize:

设置或返回发送缓冲区,缺省为512字节。

10)OutBufferCount:

返回发送缓冲区内等待发送的字符数,可用来清空缓冲区。

11)Output:

向发送缓冲区传送一字符串。

类型:

如果在通信过程中发生错误或事件,就会引发OnComm事件并且改变属性值,由CommEvent属性代码反映错误类型,在通信程序的设计中可根据该属性值来执行不同的操作,以下是部分属性常数值及其含义:

1)ComEvSend:

其值为1,发送缓冲区的内容少于SThreshold指定的值。

2)ComEvReceive:

其值为2,接收缓冲区内字符数达到RThreshold值,该事件在缓冲区中数据被移走前将持续产生。

3)ComEventFrame:

其值为1004,硬件检测到帧错误。

4)ComEventRxOver:

其值为1008,接收缓冲区溢出。

5)ComEventTxFull:

其值为1010,发送缓冲区溢出。

6)ComEventRxParity:

其值为1009,奇偶校验。

7)ComEvEOF:

其值为7,接收数据中出现文件结束(ASCII码为26)字符。

4软件设计

在自动化领域,自动化监控系统的发展愈来愈受到人们的重视。

随着微机与单片机技术的不断发展,采用微机与单片机构成的主从式监控系统越来越多。

它既利用了单片机价格低、功能强、抗干扰性能好等优点;

又利用了Windows操作系统的高级用户界面,操作方便灵活。

在工业控制中,这种主从式监控系统通常由上位机PC机和下位机为单片机的二级系

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

当前位置:首页 > 农林牧渔

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

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