基于51单片机与PC机的远程温度监控系统.docx

上传人:b****6 文档编号:5741873 上传时间:2022-12-31 格式:DOCX 页数:12 大小:132.29KB
下载 相关 举报
基于51单片机与PC机的远程温度监控系统.docx_第1页
第1页 / 共12页
基于51单片机与PC机的远程温度监控系统.docx_第2页
第2页 / 共12页
基于51单片机与PC机的远程温度监控系统.docx_第3页
第3页 / 共12页
基于51单片机与PC机的远程温度监控系统.docx_第4页
第4页 / 共12页
基于51单片机与PC机的远程温度监控系统.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

基于51单片机与PC机的远程温度监控系统.docx

《基于51单片机与PC机的远程温度监控系统.docx》由会员分享,可在线阅读,更多相关《基于51单片机与PC机的远程温度监控系统.docx(12页珍藏版)》请在冰豆网上搜索。

基于51单片机与PC机的远程温度监控系统.docx

基于51单片机与PC机的远程温度监控系统

1.本文设计的一种温度控制系统,用STC89C52单片机作为温控器,选用DS18B20数字温度传感器,可任意设置上下限报警温度,采用数码管实时显示温度,通过串口利用单片机与上位机的通信,对库房温度采集并进行控制。

.具体内容及要求

1.内容及要求:

研究基于单片机的远程温度监控系统,可以在PC机端实时监控系统温度,并根据当前的温度值对单片机系统进行控制。

利用VB/VC/DELPHI编制PC示例程序。

2.主要技术指标:

(1)、温度测量范围0-70℃;

(2)、可以设置温度报警的上、下限;

(3)、提供PC机通讯接口;

(4)、PC机软件实现对温度数据分析、统计和处理;

(5)远程传输距离为1KM

 

、系统总体方案设计

、设计方案论证

方案一

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

而且在对采集的信号进行放大时容易受温度的影响出现较大的偏差。

方案二

进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,电路简单,精度高,软硬件都以实现,而且使用单片机的接口便于系统的再扩展,满足设计要求。

从以上两种方案,很容易看出,采用方案二,电路比较简单,费用较低,可靠性高,软件设计也比较简单,故采用了方案二。

、系统总体构成图如下:

、硬件设计:

控制部分的选择较多,但是作为温度计,在成本上最合适的是单片机,对于题目要求的控制能力也能胜任,利用STC89S52自身强大的功能和优异的可扩展性,配上电路实验箱、四位一体数码管和按键等少量外围电路,就能搭建合适本次实验的小系统。

从而大大缩短设计流程,把设计的重点放在温度探测单元,串行通信协议两个部分。

现在PC机提供的COM1、Com2是采用RS-232接口标准的。

而RS-232是用正负电压来表示逻辑状态,与TTL以高低电平来表示逻辑状态的规定不同。

因此,为了能够同计算机借口或终端的TTL器件(如单片机)连接,必须在RS-232与TTL电路之间进行电平和逻辑关系的变换,变换电路选用有德州仪器公司(TL)推出的一款兼容RS-232标准的芯片MAX232.该器件包含2个驱动器、2个接收器和一个电压发生器电路提供TIA/EIA-232-F电平转换成5VTTL/CMOS电平。

每一个发送器将TTL/CMOS电平转换成TIA/EIA-232-F电平。

、软件设计

①单片机软件设计

单片机程序由主程序和中断子程序组成的。

主程序负责对来自上位机的命令进行解析并执行读温度值、存储温度值、输出控制等等,中断服务程序只负责单片机和上位机之间的数据发送与接收。

②上位机程序设计

由单片机采集的各个库房实时温度,通过MAX232传输到上位机PC,利用在VisualBasic的通信控件Mscomm属性设置和事件响应的基础上,实现与单片机串行通信,在上位机中,完成报警温度设置、温度传感器64位激光ROM读取并显示、实时温度数据显示、数据存储、曲线绘制、历史数据查询等。

 

、系统各个模块设计:

单片机最小系统

1、STC89C52单片机管脚图如下:

 

2、各引脚功能:

(1)XTAL1(19脚);XTAL2(18脚)----外接时钟引脚。

XTAL1为片内振荡电路的输入电源和时钟引脚.VCC(40脚)GND(20脚)常压为+5V,低压为+。

(2)端。

XTAL2为片内振荡电路的输出端,8051的时钟有两种方式,一种是片内振荡方式,需要在这两个引脚接石英晶体和振荡电容,振荡电容的值一般选择为10P~~30P。

另一种外部时钟方式即XTAL1接地,外部时钟信号从XTAL2脚输入。

(3)RST(9脚)---单片机的复位引脚。

P0口(39脚~~32脚)—双向8位I/O口,每个口可以独立控制。

51单片机PO口内部没有上拉电阻,为高阻状态,所以不能正常的输出高低电平,因此该组I/O口在使用的时候务必要接上拉电阻,一般我们采用接入10K的上拉电阻。

P1口(1脚~8脚)---准双向8位I/O口。

每个口可以独立操作控制,内带上拉电阻,这种接口输出没有高阻状态,输入也不能锁存,固然不是真正的双向I/O口,之所以称它为”准双向”是因为该口在作为输入使用前要先向该口进行写一操作,然后单片机内部才可以正确读出外部信号,也就是要使其先要有个准备过程,所以才称准双向口。

对52单片机的引脚的第二功能为T2定时器的外部输入,引脚的第二功能为T2EX捕捉,重装触发,即T2的外部控制器。

P2口(21脚~~28脚)---准双向8位I/O口,每个口都可以独立操作控制,内带上拉电阻,与P1口相似。

P3口(10脚~~17脚)----准双向8位I/O口,每个口可以独立操作控制,内带上拉电阻,作为第一功能使用时就当作普通I/O口,与P1口相似。

作为第二功能使用时,各引脚的定义如表:

值得强调的是,P3口的每一个引脚均可以独立定义为第一功能的输入/输出或第二功能

P3口引脚第二功能定义

标号

引脚

第二功能

说明

10

RXD

串行输入口

11

TXD

串行输出口

12

/INTO

外部中断0

13

/INT1

外部中断1

14

T0

定时器/计数器0外部输入口

15

T1

定时器/计数器1外部输入口

16

/WE

外部数据存储器写脉冲

17

/RD

外部数据存储器读脉冲

 

3、单片机最小系统

其中:

a、复位电路

单片机上电时,当振荡器正在运行时,只要持续给出RST引脚连个机器周期的高电平,便可完成系统复位。

外部复位电路是为内部复位电路提供两个机器周期以上的电平而设计的。

系统采用上电自动复位,上电瞬间电容器上的电压不能突变,RST上的电压是Vcc上的电压与电容器上的电压之差,因而RST上的电压与Vcc上的电压相同。

随着充电的进行,电容器上的电压不断上升,RST上的电压就随着下降,RST脚上只要保持10ms以上高电平,系统就会有效复位。

电容C可取10~33uF,电阻R可取~10kΩ。

在本系统设计中,C取10uf,R取10kΩ。

b、振荡电路

XTAL1脚和XTAL2脚分别构成片内振荡器的反相放大器的输入和输出端,外接石英晶振或陶瓷晶振以及补偿电容C1、C2选47uF构成并联谐振电路。

当外接石英晶振时,电容C1、C2选30Pf±10pF;当外接陶瓷振荡器时,电容C1、C2选47uF±10uF。

系统中,外接电C1、C2的大小会影响振荡器频率的稳定度、起振时间及温度稳定性。

在设计电路板时,晶振和电容应靠近单片机芯片,以便减少寄生电容,保证振荡器稳定可靠工作。

在本硬件系统设计中,为保证串行通行波特率的误差,选择了的标准石英晶振,电容C1、C2为30pF。

c、接高电平,选用片内程序存储器。

、显示部分:

本系统采用三极管驱动四位一体共阳数码管显示温度,数码管有两种显示方式,即静态显示和动态显示。

静态显示的特点是每个数码管的段选必须接一个8位数据线来保持显示的字形码。

当送入一次字形码后,显示字形可一直保持,直到送入新字形码为止。

这种方法的优点是占用CPU时间少,显示便于监测和控制。

缺点是硬件电路比较复杂,成本较高;

动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。

选亮数码管采用动态扫描显示。

所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。

动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的。

本设计数码管采用动态显示。

如下图:

 

4.4.3、键盘输入

 如图:

本设计采用三个键,可任意调整上下限报警温度,简单实用。

其中,K1键为设置键,按第1下,上限温度调整;按第2下,下限温度调整;按第3下,显示实际温度。

   K+键为每按一次设置温度加1。

   K-键为每按一次设置温度减1。

 

4.4.4、报警电路

本设计中采用三极管驱动蜂鸣器报警,其中,LED1和LED2分别模拟制热器和制冷器。

当温度高于上限温度时,蜂鸣器报警,LED2灯亮,模拟启动制冷器;

当温度低于下限温度时,蜂鸣器报警,LED1灯亮,模拟启动制热器。

其中,与蜂鸣器相连的轻触开关断开时,蜂鸣器停止报警,实现手动解除报警。

如图:

 

4.4.5、测温电路

本设计采用DS18B20温度传感器测量温度。

DS18B20简介

其两种封装如图:

温度传感器的种类众多,在应用与高精度、高可靠性的场合时DALLAS(达拉斯)公司生产的DS18B20温度传感器当仁不让。

超小的体积,超低的硬件开消,抗干扰能力强,精度高,附加功能强,使得DS18B20更受欢迎。

对于我们普通的电子爱好者来说,DS18B20的优势更是我们学习单片机技术和开发温度相关的小产品的不二选择。

了解其工作原理和应用可以拓宽您对单片机开发的思路。

DS18B20的主要特征:

1.全数字温度转换及输出。

2.先进的单总线数据通信。

3.最高12位分辨率,精度可达土摄氏度。

4.12位分辨率时的最大工作周期为750毫秒。

5.可选择寄生工作方式。

6.检测温度范围为–55°C~+125°C(–67°F~+257°F)

7.内置EEPROM,限温报警功能。

8.64位光刻ROM,内置产品序列号,方便多机挂接。

9.多样封装形式,适应不同硬件系统。

DS18B20引脚功能:

·GND电压地·DQ单数据总线·VDD电源电压·NC空引脚

DS18B20工作原理及应用:

DS18B20的温度检测与数字数据输出全集成于一个芯片之上,从而抗干扰力更强。

其一个工作周期可分为两个部分,即温度检测和数据处理。

在讲解其工作流程之前我们有必要了解18B20的内部存储器资源。

18B20共有三种形态的存储器资源,它们分别是:

ROM只读存储器,用于存放DS18B20ID编码,其前8位是单线系列编码(DS18B20的编码是19H),后面48位是芯片唯一的序列号,最后8位是以上56的位的CRC码(冗余校验)。

数据在出产时设置不由用户更改。

DS18B20共64位ROM。

RAM数据暂存器,用于内部计算和数据存取,数据在掉电后丢失,DS18B20共9个字节RAM,每个字节为8位。

第1、2个字节是温度转换后的数据值信息,第3、4个字节是用户EEPROM(常用于温度报警值储存)的镜像。

在上电复位时其值将被刷新。

第5个字节则是用户第3个EEPROM的镜像。

第6、7、8个字节为计数寄存器,是为了让用户得到更高的温度分辨率而设计的,同样也是内部温度转换、计算的暂存单元。

第9个字节为前8个字节的CRC码。

EEPROM非易失性记忆体,用于存放长期需要保存的数据,上下限温度报警值和校验数据,DS18B20共3位EEPROM,并在RAM都存在镜像,以方便用户操作。

电路图如下:

4.4.6、单片机与上位机串口电路

在现代业控制中,串口通信的应用越来越广泛。

单片机和PC机之间的串口通信在进行数据交换时经常被使用。

在串行通信时,要求通信双方都采用一个标准接口,RS.232C接口是单片机利PC机进行通信最常用的一种接口。

单片机与PC机进行串口通信最简单的二线制法,即接收数据针脚(RxD)与发送数据针脚(TxD)相连,彼此交叉,信号地(GND)对应相接。

但是,串口还不能直接和单片机相连,可以选用MAX232和MAX485进行电平转换。

MAX232用于RS.232C标准;MAX485用于RS485标准。

RS.232C标准规定在码元畸变小于4%的情况下,传输电缆长度最大约为l5米,最高传输速率为20kbit/s。

RS485标准最人传输距离约为1219米,最大传输速率约为l0Mbit/s。

MAX232芯片简介

  MAX232芯片是美信公司专门为电脑的RS-232标准串口设计的单电源电平转换芯片,使用+5v单电源供电。

  

  

  

引脚介绍:

  第一部分是电荷泵电路。

由1、2、3、4、5、6脚和4只电容构成。

功能是产生+12v和-12v两个电源,提供给RS-232串口电平的需要。

  第二部分是数据转换通道。

由7、8、9、10、11、12、13、14脚构成两个数据通道。

  其中13脚(R1IN)、12脚(R1OUT)、11脚(T1IN)、14脚(T1OUT)为第一数据通道。

  8脚(R2IN)、9脚(R2OUT)、10脚(T2IN)、7脚(T2OUT)为第二数据通道。

  TTL/CMOS数据从T1IN、T2IN输入转换成RS-232数据从T1OUT、T2OUT送到电脑DB9插头;DB9插头的RS-232数据从R1IN、R2IN输入转换成TTL/CMOS数据后从R1OUT、R2OUT输出。

 第三部分是供电。

15脚GND、16脚VCC(+5v)。

由于串口用的是TTL电平,和RS232电平不同,因此,单片机和PC通信时需要进行电平转换,常用的IC是MAX232,连接图如下图所示,其中MAX232供电脚为+5V。

采用了三线制连接串口,也就是说和计算机的9针串口只连接其中的3根线:

第5脚的GND、第2脚的RXD、第3脚的TXD。

这是最简单的连接方法,但是对我们来说已经足够使用了。

RS232引脚图

串口电路连接图如下:

收、发端的数据信号是相对于信号地,如从DTE设备发出的数据在使用DB25连接器时是2脚相对7脚(信号地)的电平,DB25各引脚定义参见图2-9。

典型的RS-232信号在正负电平之间摆动,在发送数据时,发送端驱动器输出正电平在+5~+15V,负电平在-5~-15V电平。

当无数据传输时,线上为TTL,从开始传送数据到结束,线上电平从TTL电平到RS-232电平再返回TTL电平。

接收器典型的工作电平在+3~+12V与-3~-12V。

由于发送电平与接收电平的差仅为2V至3V左右,所以其共模抑制能力差,再加上双绞线上的分布电容,其传送距离最大为约15米,最高速率为20kb/s。

RS-232是为点对点(即只用一对收、发设备)通讯而设计的,其驱动器负载为3~7kÙ。

所以RS-232适合本地设备之间的通信。

上位机和下位机的接线方法如图

上位机和下位机的接线方法

MCS-52内部含有一个可编程全双工串行通信接口,具有UART的全部功能。

该接口电路不仅能同时进行数据的发送和接收,也可作为一个同步移位寄存器使用。

在进行异步通信时,数据的发送和接收分别在各自的时钟(TCLK和RCLK)控制下进行的,但都必须与字符位数的波特率保持一致。

MCS-52串行口的发送和接收时钟可由两种方式产生,一种是由主机频率fosc经分频后产生,另一种方式是由内部定时器T1或T2的溢出率经16分频后提供。

发送和接收的过程如下:

串行口的发送过程由指令MOV SBUF,A启动,即CPU由一条写发送缓冲器的指令把数据(字符)写入串行口的发送缓冲器SBUF(发)中,再由硬件电路自动在字符的始、末加上起始位(低电平)、停止位(高电平)及其它控制位(如奇偶位等),然后在移位脉冲SHIFT的控制下,低位在前,高位在后,从TXD端(方式0除外)一位位地向外发送。

串行口的接收与否受制于允许接收位REN的状态,当REN被软件置“1”后,允许接收器接收。

接收端RXD一位位地接收数据,直到收到一个完整的字符数据后,控制电路进行最后一次移位,自动去掉启始位,使接收中断标志RI置“1”,并向CPU申请中断。

CPU响应中断,用一条指令(MOV A,SBUF)把接收缓冲器SBUF(收)的内容读入累加器。

TI和RI是由硬件置位的,但需要用软件复位。

 

4.5、系统软件设计

4.5.1、单片机软件设计:

(1)主程序:

主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量的当前温度值,温度测量每1s进行一次。

这样可以在一秒之内测量一次被测温度,其程序流程如下所示:

主程序流程图

 

(2)读温度子程序:

先让DS18B20复位,然后发跳过ROM匹配命令,再发出温度转换命令,让DS18B20进行温度转换,延时等待转换完毕后,再将已转换的温度值一一地从各个DS18B20取出,转换成ascall码后再发送到PC机上,如此循环。

程序框图如下:

读温度程序框图

 

(3)温度比较报警子程序

此程序是将实际温度与设置的报警上下限比较,决定是否发出报警信号。

由于T为实际温度的绝对值,TH、TL也是温度的绝对值,因此判断大小关系时要通过其正负符号来确定。

温度比较报警子程序

 

上位机软件设计

PC机程序中包括串口通信模块,绘图模块,命令按妞模块,温度显示模块等。

一、串口通信模块

在本设计中,采用MSComm控件进行串口的通讯,MSComm控件串口具有完善的串口数据的发送和接收功能。

通过此控件,PC机可以利用串行口与其它设备实现轻松连接,简单高效地实现设备之间的通讯。

此控件的事件响应有两种处理方式,事件驱动方式:

由MSComm控件的OnComm事件捕获并处理通讯错误及事件;查询方式:

通过检查CommEvent属性的值来判断事件和错误。

二、绘图模块

在VB中,绘图可以利用Line和Circle方法绘制几何图形[11],还可以利用MSChart控件绘制各种图表。

而本设计就采用MSChart控件进形绘制温度变化曲线图。

MSChart控件在绘制直方图(条形图)、折线图、饼图、标记图、填充区域图等各种常用的数据分析图形方面有很大的优势,我们只要将需按图形表示的数据装入数组中,然后将数组数据赋值给MSChart控件,再进行一些简单的图形标题、背景、图例、注脚方面的定义,就可以得到所期望的数据分析图形。

MSChart控件的系统默认名是:

MSChart1、MSChart2等。

由于MSChart控件不是VB内建的基本控件,因此在使用前必须用工程菜单中的“部件”,添加MSChart控件。

添加MSChart控件的选项是“MicrosoftChartControl(OLEDB)”。

三、命令按钮[11]模块

大多数应用程序中都有命令按钮CommandButton控件,用户可以单击按钮执行某项操作。

在本设计统中要让下位机执行相应操作,就是通过命令按钮给下位机下发命令实现该功能。

命令按钮是VB应用程序中经常使用的对象,程序运行中要执行一条或一组命令,通常通过用鼠标单击命令按钮来实现,当然具体产生何种动作要通过执行相应的事件过程中的程序代码来决定。

四、温度显示模块

在本设计中显示由文本框和标签控件完成。

 

完成后的VB界面如下:

 

5.结论

本温控系统通过STC89C52单片机采集从DS18B20温度传感器所测得的温度数据,并通过串口实时传送到上位机。

单片机系统完成对温度信号的采集、设定上下限报警等功能,并通过串口通信与PC机进行通信,在PC机上进行显示及一些操作,实现单片机与PC机的通信功能,实现远距离的进行监控.

当然本设讲也存在着一些不足:

本设计通信采用RS232,如果采用RS485通信距离将会大大增加

 

附录1.总体电路图

本设计中设定报警上限温度30℃,报警下限温度20℃。

图中分别是温度超过30℃和低于20℃时LED灯模拟制冷和制热系统开启,并且蜂鸣器报警。

 

 

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

当前位置:首页 > 经管营销

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

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