基于PC机空调控制系统数据通信的毕业设计.doc

上传人:知****量 文档编号:43207572 上传时间:2022-09-17 格式:DOC 页数:27 大小:253KB
返回 下载 相关 举报
基于PC机空调控制系统数据通信的毕业设计.doc_第1页
第1页 / 共27页
基于PC机空调控制系统数据通信的毕业设计.doc_第2页
第2页 / 共27页
点击查看更多>>
资源描述

《基于PC机空调控制系统数据通信的毕业设计.doc》由会员分享,可在线阅读,更多相关《基于PC机空调控制系统数据通信的毕业设计.doc(27页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、 基于PC机空调控制系统数据通信的毕业设计绪论22选题背景与目的22国外研究状况22设计和研究方法221 方案比较与论证232 硬件设计242.1 系统框图252.2 PC机串口252.3 电平转换芯片MAX232272.4单片机AT89S51概述与系统复位电路设计282.5 数字温度传感器DS18B20283 软件设计293.1 串口通信控件MSCOMM293.2 MSCOMM控件的常用属性303.2.1 mPort属性303.2.2.Input属性313.2.3.output属性313.2.4.PortOpen属性313.2.5.Settings属性313.2.6.Rthreshold属性

2、313.3 计时器Timer控件323.4 CommandButton控件333.5 TextBox控件343.6 单片机串口通信363.6.1 51单片机串行口控制寄存器363.6.2 串口工作模式363.6.3 串口通信数据传输率373.7 通信协议373.8 DS18B20测温程序383.9 下位机通信程序流程384.系统原理图405. 人机交互界面41结论41参考文献43附录A(上位机VB程序)44附录B(下位机C51程序)47致谢51插图索引图1系统框图25图2九针D型串口26图3MAX232芯片管脚与定义28图4AT89S51复位电路28图5DS18B20管脚图29图6下位机通信流

3、程图39图7系统原理图40图8人机控制界面41绪论选题背景与目的随着社会生活水平的提高和科学技术的发展,大型空调已经广泛应用在各种场合,比如公司,医院,车站等等。然而这些空调都没有一个统一的管理和控制系统,比如在一个公司,员工下班后大部分人都不会主动关闭空调就离开了工作房间,有些人特意将空调温度设置的很低,因此造成大量的电能浪费,本系统旨在使家电趋向高效,节能,智能化方向发展,大大减少个人人为的任意操作,使其具有统一规的控制管理系统。节约能源是全人类永恒的话题与使命,任何项目的研究和开发都必须充分考虑高效与节能,杜绝浪费。自从八十年代后期,PC机市场开始快速发展,越来越多的PC机应用得到开发。

4、PC机的广泛应用不仅改变了我们的计算方式,对自动测试系统领域也带来了革命性的变化。充分利用计算机丰富的软硬件资源,大大突破了传统测试系统在数据信号处理、显示、传送、存储、打印等方面的限制。目前,随着单片机与微机技术的不断发展,单片机组网技术越来越成熟,集散测控系统应用越来越广泛。它既利用了单片机性价比高和面向控制等优点,又结合PC机具有丰富的软硬件资源,特别是非常友好的人机界面等特点。在这种系统中,单片机主要进行实时数据采集与预处理,然后通过串行口将数据传送给PC机,PC机对这些数据进一步处理,基于PC机的测试系统与监控系统正向着高速、高效,智能化、多功能化、多样化发展。国外研究状况如今有的空

5、调控制系统仅仅采用的是以单片机为主,采用键盘或遥控器进行参数设置,外接报警等控制电路,不具备人性化,而且操作不方便,如果对多台空调进行控制更加显得麻烦,增大了工作量。相比于本系统具有很大的缺陷性。随着单片机技术的发展,在各种单片机应用系统的设计中,如智能仪器仪表、各类手持设备、GPS接收器等,常常需要PC机与外部设备进行信息交换,即通信。串行通信已经成为计算机与其他设备进行数据交换的最广泛的途径之一。这也是当今市场比较热门的技术,许多监控系统都是基于PC机与单片机的串行通信来实现上位机对下位机的控制与监控,管理员只需在监控室的电脑上操作一个Windows环境下的人机界面就可以对所有要控制的设备

6、进行管理,这使得管理员的工作量大大减少,也提高了工作效率,更加具有现代化和人性化。设计和研究方法本系统设计方法采用的是PC机与多片单片机实现数据通信,利用PC机和单片机的串口实现数据通信,所谓串口通信是指按照逐位顺序传递数据的通信方式,由于仅需三根传输线传送信息且通信距离相对较远,所以在控制领域的现场监测、分布控制等场合有着重要的应用价值。鉴于PC 机具有强大的监控和管理功能,单片机则具有快速以与容易控制的特点,在数据量不大、传输要求不高的情况下,传输距离要求不远的情况下一般都采用给PC 机配置的RS2232 标准串行接口(如COM1 ,COM2) 来实现应用系统与PC 机之间的数据交换,PC

7、机可以与一片单片机实现点对点通信,也可与对片单片机实现多机通信。由于本系统是实行对多台空调的同时监控与控制,故采用PC机与单片机多机通信,每个房间的空调都安装一个单片机系统,实现对温度的采集和发送,承受PC机发来的控制命令字,驱动控制器工作。上位PC机采用的是Visual Basic 语言和它的MSCOMM控件来实现与单片机的串口通信,能任意发送命令给下位机并且也可以接收下位机发来的数据,实现双工通信。上位机定时对下位机采集的温度数据进行读取,经过判断来决定要发送的控制命令。在PC机Windows环境下实现串行通信一般有4种方法:底层汇编操作;用某些高级语言(如C、PASCAL)提供的库函数;

8、用Windows提供的API函数;用串行通信控件MSCOMM;这几种方法有各自的优缺点,使用局限性也各不相同。有些通信方法可直接对串行口地址位操作,在此方式中,可传送一帧11位的信息:1位起始位,8位数据位,1位可作“地址帧”和“数据帧”的标志位和1位停止位。这可很方便实现多机通信(单片机通信方式2、3),但其复杂化和专业化程度高。串行通信控件MSCOMM只发送一帧10位的信息,取8位数据位,1位起始位,1位停止位,这与单片机的串口工作方式1 刚好相同。利用此特性,在通信协议中,每台下位单片机都规定一个明确的地址,PC机发送出一个数据(地址或命令)给下位机后等待下位机的反应。下位机接收到地址或

9、命令后,比较确认,若为本机地址则继续承受PC机发来的命令。利用这种查询方法可方便实现PC机与多台单片机的多机通信。1 方案比较与论证方案一:采用单片机与单片机多机通信,选定其中任意一片单片机作为主机,其余为从机,分别安装在每个房间控制每个房间的空调并采集每间房的温度。单片机本身带有串口,可与单片机实现多机通信,但由于作为主机那块单片机需要管理与监控多台空调,对参数的设置以与实时监控带来了不便,没有一个很好的人机交互界面,不利于管理员的操作,不具备人性化的特点。故本设计没有采纳。方案二: 采用PC机与单片机多机通信,由于PC机本身自带有9针串口(如COM1,COM2),通过MAX232电平转换芯

10、片实现RS232电平逻辑向TTL电平逻辑的双向转换就可以很方便的实现PC机与下位单片机的串口通信,通过该芯片可以实现长达十多米的通信距离的数据传输,若适当降低传输速率,可增加其通信距离,因此对于一个企业里,完全可以通过一台PC机,仅仅在一个人机交互界面上将所有房间的空调实行统一监控与管理,取代人为对空调的任意控制,大大节约了电能。故本系统采用此方案。2 硬件设计 本系统主要是针对数据采集与通信进行研究,故硬件电路比较少,上位机只需一台普通的PC机,下位机采用常用的AT89S51,中间仅仅只需一片MAX232电平转换芯片,与下位机相连的温度采集模块,采用的是单总线制的DS18B20,它与单片机之

11、间连接只需一根I/O口线,因此大大节省了单片机的I/O口,方便单片机与控制空调的控制器连接。而且其价格比较便宜,性价比高。2.1 系统框图 系统框图如图1所示图1 系统框图模块说明:a. PC机为普通的带有串口的台式机,作用为:在其Windows界面上创建一个人机界面,控制每台空调的工作并且实时监控。b. MAX232为电平转换芯片,由于PC机串口为RS232接口只能识别EIA电平,而单片机机只能识别普通的TTL电平,此芯片的作用就是将两种电平进行转换,达到数据通信的目的。c. 以单片机为核心的下位机系统主要作用是采集房间的温度,供单片机来读取并保存,当上位机通知该下位机发送温度时,单片机调用

12、串口发送函数,将当前温度发送给上位机。d. DS18B20为单线数字温度传感器,负责测量室温度。2.2 PC机串口台式计算机一般至少带有两个串行口COM1和COM2,串行口不同于并行口之处在于它的数据和控制信息是一位接一位串行地传送下午,这样,虽然速度会慢一些,但传送距离较并行口更长,因此对于距离较长的数据通信应该使用串行接口。通常COM1使用的是9针D形连接器,而COM2有些使用的是老式的DB25针连接器,本系统采用的是常用的9针连接器。由于CPU与接口之间按并行方式传输,接口与外设之间按串行方式传输,因此,在串口接口中,要由接收移位寄存器把串口方式转换为并行方式,由发送移位寄存器把并行方式

13、转换成串行方式。完成这样的转换功能的电路,叫做通用异步收发器UART,该接口芯片已经集成在串口接口中,典型的有Intel的8251A,National Semiconductor的8250,Motorola的6850等等。其中九针D形串口如图2所示 。图2九针D型串口目前RS232是PC机与通信工业中应用最广泛的一种串行接口。RS232采用不平衡传输方式,即所谓单端通信。收,发端的数据信号是相对于信号地。其中9针串口引脚定义如表3所示,其中引脚2和引脚3分别为数据接收和发送端,这与单片机的RXD和TXD相类似,数据都是一位接着一位的发送。唯一不同的是两者之间的电平不同。RS232是用正负电压来

14、表示逻辑状态,发送数据时,发送器典型的工作电压是5V15V和-5V-15V,接收数据时,承受器典型工作电压是+3V +12V和-3V -12V。而TTL是用电平高低表示逻辑状态。RS-232C主要用来定义计算机系统的一些数据终端设备(DTE)和数据电路终接设备(DCE)之间的电气性能。例如CRT、打印机与CPU的通信大都采用RS-232C接口,MCS-51单片机与PC机的通信也是采用该种类型的接口。由于MCS-51系列单片机本身有一个全双工的串行接口,因此该系列单片机用RS-232C串行接口总线非常方便。RS-232C串行接口总线适用于:设备之间的通信距离不大于15米,传输速率最大为20kB/

15、s。表1 九针串口管脚定义2.3 电平转换芯片MAX232MAX232是由仪器公司(TI)推出的一款兼容RS232标准的芯片。由于电脑串口RS232电平是-12v +12v,而一般的单片机应用系统的信号电压是TTL电平0 +5v,MAX232就是用来进行电平转换的,该器件包含2驱动器、2接收器和一个电压发生器电路提供TIA/EIA-232-F电平。该器件符合TIA/EIA-232-F标准,每一个接收器将TIA/EIA-232-F电平转换成5-VTTL/CMOS电平。每一个发送器将TTL/CMOS电平转换成TIA/EIA-232-F电平。主要特点 1、单5V电源工作2、LinBiCMOSTM工艺

16、技术3、两个驱动器与两个接收器4、 30V输入电平5、低电源电流:典型值是8mA6、符合甚至优于ANSI标准 EIA/TIA-232-E与ITU推荐标准V.287、ESD保护大于MIL-STD-883(方 法3015)标准的2000VMAX232芯片管脚与各管脚定义如图3所示。 其中标号IN和OUT都是针对MAX232本身而言,即OUT脚接的是PC机或者单片机的RXD脚,同理IN脚接的是PC机或单片机的TXD脚利用此性质可以很容易实现PC机与单片机的连接。由于它有两组收发器,所以7,8脚和9,10脚配合为一组,11,12脚和13,14脚为一组。使用时人选一组即可。图3 MAX232芯片管脚与定

17、义2.4单片机AT89S51概述与系统复位电路设计AT89S51是一个低功耗,高性能CMOS 8位单片机,片含4kB的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统与80C51引脚结构,芯片集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。系统复位电路也就是单片机的复位电路,如图4所示:图4 AT89S51复位电路当按下复位键时,ESET瞬间为高平,然后电源与电容、电阻构成回路,并对C1电容进行充电,R1上的电压逐渐下降,

18、直至为低电平,系统处于正常工作状态。2.5 数字温度传感器DS18B20 DS18B20是美国DALLAS半导体公司继DS1820之后最新推出的一种改进型单总线智能温度传感器,信息经过单线接口送入DS18B20或从DS18B20送出,因此从处理器到DS18B20仅需一根线,读,写和完成温度转换所需电源可以由数据线本身提供,而不需要外部电源。DS18B20部主要由4部分组成:64位光刻ROM,温度传感器,非挥发的温度报警触发器TH和TL,配置寄存器。DS18B20管脚图如图5所示 DS18B20 的特点如下:1. 独特的单线接口方式。DS18B20与处理器连接时仅需一根口线即可实现处理器与DS1

19、8B20的双向通信。2. 在使用中不需要任何外围元件。3. 可用数据线供电,电压围为+3.0+5.5V。4. 测温围为-55+125摄氏度,固有测温分辨率为0.5度5. 通过编程可实现9-12位的数字读数方式。最高测温精度可达0.0675度。最大转换时间为200MS6. 用户可自设定非易失性的报警上下限值7. 支持多点组网功能。多个DS18B20可用并联在唯一的3线上,实现多点测温。8. 负压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。图 5 DS18B20管脚图3 软件设计 本系统主要研究的是PC机与单片机的串口通信,所以大部分是通过软件来实现,上位机(PC)采用的是VB编

20、程,利用MSCOMM控件实现PC机数据的接收与发送,下位机(单片机)采用的是C51编程,C51具有可读性强,移植性强的特点,因此被广泛采用。为了达到上位机与下位机的通信的协调与匹配,因此双方需要一套相同的通信协议,该协议是人为自己规定的。有了这套协议就可以顺利实现双工通信。3.1 串口通信控件MSCOMM MSCOMM控件全称为Microsoft Communication Control,是Microsoft公司提供的简化Windows下串行通信编程的ActiveX控件,它为应用程序提供了通过串行接口收发数据的简便方法,MSCOMM控件提供两种处理通信的方式:事件驱动方式和查询方式。事件驱动

21、通信是处理串行端口交互作用的一种非常有效的方法。在许多情况下,在事件发生时需要得到通知,例如,在串口承受缓冲区中有字符,可以利用MSCOMM控件的OnComm事件捕捉并处理这些通信事件。OnComm事件还可以检查和处理通信错误。查询方式实质上还是事件驱动,但在有些情况下,这种方式显得更为便捷。在程序的每个关键功能之后,可以通过检查CommEvent属性的值来查询事件。事件驱动方式类似于单片机的中断方式,当事件发生了即中断发生了,CPU进入中断处理程序,处理完就退出做其他工作并等待下一次中断来临,大大提高了CPU的工作效率。而查询方式也是类似与单片机的中断查询方式,此方式关闭了中断响应,CPU一

22、直在查询事件发生标志,例如定时器溢出标志,外部中断标志等等,事件发生了就开始进入处理程序。此方法大大降低了CPU利用率。本系统设计采用的是事件驱动方式,当下位机发送数据给PC机时,MSCOMM控件的OnComm事件将被触发,通过比较OnComm事件的CommEvReceive属性将接收缓冲区里的数据读回来并存储,以供PC机判断分析。其中PC机数据接收的代码如下: Dim temperaturePrivate Sub MSComm1_OnComm()Select Case MSComm1 mEventCase comEvReceivetemperature = MSComm1.InputCase

23、 comEvSendCase comEvCTSCase comEvDSRCase comEvCDCase comEvEOFEnd SelectEnd Sub3.2 MSCOMM控件的常用属性3.2.1 mPort属性 设置并返回通信端口。 CommPort属性语法:Object mport=valueValue 为整数,说明端口。在设计时,value可以设置成从1到16的任何数(默认值为1)。具体值根据PC机的有效端口而定。如果用PortOpen属性打开一个并不存在的端口,MSCOMM控件会产生错误68(设备无效)。所以必须在打开端口之前设置CommPort属性。3.2.2.Input属性返回

24、并删除承受缓冲区中的数据流。该属性在设计时无效,在运行时为只读。Input属性语法:Object.input3.2.3.output属性往发送缓冲区写数据流。该属性在设计时无效,在运行时为只读。Output属性语法:Object.output=valueOutput属性可以传输文本数据和二进制数据。用output属性传输文本数据,必须定义一个包含一个字符串的variant。发送二进制数据,必须传送一个包含字节数组的variant到output属性。本系统发送的的是命令字,所以采用的是文本数据发送。3.2.4.PortOpen属性 设置并返回通信端口状态(开或关)。在设计时无效。 PortOpe

25、n属性语法:Object.PortOpen=valueValue为布尔表达式TURE和FALSE,说明端口的状态,分别为打开和关闭。当应用程序终止时,MSCOMM控件自动关闭串行端口。3.2.5.Settings属性 设置并返回波特率,奇偶较检,数据位,停止位参数。 Settings属性语法: Object.Setting=valueValue 为字符串表达式,说明通信端口的设置值。Value 由四个设置值组成,格式如下:“BBBB,P,D,S” BBBB为波特率,P为奇偶校检,D为数据位数,S为停止位数。Value默认值为“9600,N,8,1”。 通常与下位机通信采用默认值即可,因为单片机

26、有效处理的数据位也是8位,波特率也可以设置为9600。3.2.6.Rthreshold属性在MSComm控件设置CommEvent属性为comEvReceive并产生OnComm之前,RThreshold属性设置并返回的要接收的字符数,即只有当接收到了等于Rthreshold属性值个数的字符才能产生OnComm事件。Rthreshold属性值为0时,不产生OnComm事件。因此需将Rthreshold属性值设置为有效的整数值。本系统仅仅只承受单片机发送的两位数据温度值,所以Rthreshold属性值设置为2。3.3 计时器Timer控件计时器控件可以每隔一个时间间隔自动触发一个计时器事件,计时

27、器控件在设计时显示为一时钟图标,大小可变,运行时不可见。由于本系统实现对空调的控制需发送一连串控制命令,故通过Timer控件定时发送,可以有效的提高数据发送的正确性,有利于和下位机接收速度相匹配。Timer控件有两个重要属性,分别为Enable属性和interval属性前者决定计时器是否开始计时,后者设置两次计时器事件之间的时间间隔,以毫秒为单位,值的围是065536,当internal属性值为0时,计时器无效,若把internal属性值设置为1000,则表示每秒钟触发一次计时器事件。由此可得,若想在一秒钟执行n此计时器事件,则必须将internal属性值设置为1000/n才可实现。本系统用到

28、了两个Timer控件,一个作为发送命令字符串所用,当命令发送完后由软件关闭计时器。另一个作为对所有空调定时监控,设置计时间隔为1S, 每隔一秒换一台空调进行监控,如此循环下去,直到用户关闭监控,即关闭计时器。两个计时器运行代码如下:Private Sub Timer2_Timer()/*发送命令字符串*/MSComm1.Output = Mid$(Text2.Text, i, 1)i = i + 1If i = j + 1 ThenTimer2.Enabled = FalseEnd IfEnd SubPrivate Sub Timer1_Timer()/*对所有空调轮流监控*/MSComm1.

29、Output = CStr(addr)addr = addr + 1If addr 2 Then addr = 1MSComm1.Output = SIf windtype2 = C Then If Val(temperature) = Val(temper) Then MSComm1.Output = K Else MSComm1.Output = R End IfElseIf windtype = C Then If Val(temperature) = Val(temper) Then MSComm1.Output = K Else MSComm1.Output = R End If E

30、lse If Val(temperature) = (Text1.Text) Then MSComm1.Output = K Else MSComm1.Output = R End IfEnd IfEnd Sub3.4 CommandButton控件CommandButton控件在VB设计的人机交互界面中经常用到,对于一些基本操作都必须通过CommandButton来完成。该控件最为重要的的一个事件就是Click事件,当用户按下Command就可以触发该事件,完成相应的操作。本设计用到了多个CommandButton控件,具体代码如下:Private Sub Command1_Click()/

31、*开启计时器1开始对所有空调轮流监控*/addr = 1Timer1.Enabled = TrueEnd SubPrivate Sub Command2_Click()/*关闭计时器1停止对对空调的监控*/Timer1.Enabled = FalseEnd SubPrivate Sub Command3_Click()/*开启计时器2将控制命令字符串发送*/Text2.Text = list1.Text & controlcode & windtype & Text1.Texti = 1j = Len(Text2.Text)Timer2.Enabled = TrueEnd SubPrivate

32、 Sub Command4_Click()/*开启所有空调使其正常工作*/Text2.Text = 1 & D & windtype2 & temperi = 1j = Len(Text2.Text)Timer2.Enabled = TrueEnd SubPrivate Sub Command5_Click()/*关闭所有空调停止工作*/Text2.Text = 1 & Gi = 1j = Len(Text2.Text)Timer2.Enabled = TrueEnd SubPrivate Sub Command6_Click()/*关闭通信串口退出控制界面*/MSComm1.PortOpen

33、 = FalseEndEnd Sub3.5 TextBox控件 TextBox控件用于显示或者输入文本信息,比如要输入一串字符串就必须在TextBox文本框中输入。VB串口通信的数据发送分为两种,分别为文本数据发送和二进制数据发送。若选择文本数据发送,一般就要用到TextBox控件,将所发文本信息统一写到文本框中,通过计时器定时依次发送出去。当打开一个文本文件并需要显示出来时就要用到TextBox控件。本系统用了两个TextBox控件,一个为输入温度值文本框,另一个为存放控制命令字符串。具体代码如下:Text2.Text = list1.Text & controlcode & windtyp

34、e & Text1.TextMSComm1.Output = Mid$(Text2.Text, i, 1)/* Text2.Text存放控制命令字符串*/3.6 单片机串口通信AT89S51芯片部有一个全双工的串行口,与外部数据交换仅需两根口现,分别为RXD和TXD。RXD为读数据口,TXD为写数据口。串行通信一般分为同步和异步两种方式,51单片机通常采用的是异步通信,它通常以字符或者字节为单位,组成字符帧来传送,它不需要信号线来传送数据的时钟,通信双方均使用自己的时钟来控制数据的发送和接收,不是同步进行的。换句话说,甲方开始发送一位,乙方并不是开始承受这一位,而是等甲方发送万一帧数据后,乙方

35、才开始承受。3.6.1 51单片机串行口控制寄存器51单片机的串行口由串行口控制寄存器SCON,PCON。发送接收缓冲器SBUF。其中SUBF的功能是:当发送数据时,先将数据移到累加器ACC,然后在从ACC移到SBUF中,然后通过TXD脚一位位发送出去。当承受数据时,则在接收中断程序中把SBUF的数据取出,若采用查询中断标志法时,则当串口中断标志RI置位时,把SBUF的数据取出。S BUF虽然只有一个入口地址(99H)但实际上对SBUF的读写并不是一个寄存器,这样才可以使单片机能够同时进行收发工作。PCON寄存器在串口通信中只用到了其最高位SMOD,它是数据传输率选择位。在模式1,2,3中,串

36、行通信数据传输率在SMOD为1时提高一倍。SCON寄存器是串口通信中最为重要的寄存器,其各个比特位的的定义如表2所示 表 2SCON寄存器比特位定义3.6.2 串口工作模式 51单片机串口有四种工作模式:模式0(SM0=0,SM1=0),表示为同步移位寄存器的工作方式;模式1(SM0=0,SM1=1)表示10位异步收发模式;模式2(SM0=1,SM1=0)表示11位异步收发模式;模式3(SM0=1,SM1=1)为11位异步收发模式。其中模式1常用于单机通信,即点对点通信。模式3用于多机通信,单片机多机通信或者PC机与单片机多机通信。本系统采用模式3,通过控制SM2来区别PC机发送的是地址还是数

37、据,以此来实现多机通信3.6.3 串口通信数据传输率在模式0下,串口数据传输率是固定的,它的值为单片机晶振频率的1/12。在模式2下,当SMOD=0时,串口数据传输率为经晶振频率的1/64;SMOD=1时,数据传输率为晶振频率的1/32。在模式1和模式3下,通信数据传输率是由定时器T1的溢出频率来决定的,相应的公式为:数据传输率=其中 定时器T1在模式2工作, X为定时器T1的初值。本系统为了和上位机波特率相匹配,选用波特率为9600bit/s 。此时X=250 fosc=11.0592MHZ3.7 通信协议 通信双方实现数据收发,必须有统一规定的通信协议。本系统根据对空调的实际控制,规定的协

38、议如下:1. 波特率上位机与下位机都设置为9600bit/s。2. 一帧有效数据传输位数为8位。3. 下位机地址编号为1,2(假设只对两台空调控制)。4. D 开启电源命令字5. G 关闭电源命令字6. H 热风命令字7. C 冷风命令字8. K 待机命令字9. R 解除待机恢复工作命令字10. addr 当前下位机地址11. S 提示下位机发送当前温度命令字以上控制命令字都是人为规定,只需通信双方识别即可。3.8 DS18B20测温程序DS18B20采用单线制数据传输,其部数据采用两字节存储,其中高字节的低三位和低字节为温度数值大小,高字节的高五位为符号位。其中从DS18B20读出来的温度值

39、处理函数如下:a=ds1820rd();/*低字节*/b=ds1820rd();/*高字节*/tvalue=b;tvalue=8;tvalue=tvalue|a;if(tvalue0x0fff)tvalue=tvalue*(0.625);tempercode0=tvalue%1000/100+0x30;/*得到温度值的十位数字*/tempercode1=tvalue%100/10+0x30; /*得到温度值的个位数字*/3.9 下位机通信程序流程下位机通信流程如图6所示图 6 下位机通信流程图4.系统原理图 本系统主要研究的是数据通信,没有对具体控制空调的控制器进行研究,所以原理图比较简单,系

40、统原理图如下图 7系统原理图附:二极管在电路中起隔离作用,考虑到单片机向PC机传送数据时不受其它的单片机的影响,就在每个单片机的TXD端串入一个二极管。5. 人机交互界面图 8人机控制界面6.结论本次论文都是经过自己亲身体会,每个部分都是自己花时间和心思完成的。首先是确定设计方案,刚开始这个环节遇到了一些麻烦,因为设计一个控制界面要考虑好多可能的情况,而且要符合人为操作习惯,但又不能太过复杂和繁琐。最大的问题就是:因为是上位机和下位机进行通信,两方的通信协议和规定也比较麻烦,考虑的因素也比较多,特别是在软件的编写上,要考虑统一性和规性,换句话说就是写的代码必须能够与在人机界面的所有操作相匹配,

41、通过多次尝试和调试。基本上解决了这些问题。界面上的所有操作基本上符合人为习惯。包括的控制命令主要有:任意房间空调的选择;空调基本的开启与关闭;风类的选择;温度的任意设定;对每台空调实行自动监控与控制从而达到节能的目的;对所有空调一次性开启与关闭。这些都是空调最基本最常用的控制,对比如公司这种公家场所的空调控制还是比较适用的。本设计的主要思想是对每台下位单片机都规定了明确的地址(编程时固定)。PC机发送出一个数据(地址或命令)给下位机后等待下位机确认为本机地址才作出反应并接收其他控制命令。该方法编程简单、通信可靠,是一种有效的多机通信方法,但MSCOMM控件本身不能专门针对多机通信,所以此方法应

42、用还是有一定的围。对上位机的程序编写采用的是VB。为此专门从图书馆借了两边相关类型的书。自己慢慢自学,所以刚开始看不出一点效果,信心大减,但是想到自己的论文必须要用到这个知识,最后还是下决心坚持下去了,通过单片机开发板和电脑来进行实验。一步一步总结和调试,最后还是成功完成了。这也让我看到了一点:只要有信念,只要遇到的问题在你的能力围之,你就一定可以解决。7.参考文献1.毅坤,善久,裘雪红单片机微型计算机原理与应用M. :电子科技大学,1997.2 .夏路易.单片机技术基础教程与实践M. :电子工业.3.迎新.单片机应用设计培训教程M.:航空航天大学,2007.4.冯育长.单片机系统设计与实例分

43、析M.:电子科技大学,2007.5.鸿.单片机原理与应用M.:大学,2004.6.求是科技.8051系列单片机C程序设计完全手册M.:人民邮电,2006.7.周学毛.新编C语言程序设计教程(第二版)M.:电子科技大学,2004.8 .王群.电气信息类专业英语M.:航空航天大学,1993.9.学海.单片机原理与应用系统设计M.:大学,2004.10.周兴华.单片机智能化产品C语言设计实例详解M.:航空航天大学,2006.11.白康生Visual Basic程序设计.:清华大学, 2006.12.长林Visual Basic串口通信技术与典型实例.:清华大学, 2006.13. 王永军、从玉珍.数

44、字逻辑与数字系统M. :电子工业,1999.14. 王松武,于鑫.电子创新设计与实践M.国防工业,2005年1月第1版.15. 王忠民.微型计算机原理M.:电子科技大学,2007年6月第二版.16. 周毛学.新编C语言程序设计教程M.:电子科技大学,2005年7月.17 .朝青.PC机与单片机数据通信技术M.:航空航天大学出版设,2000年9月.18. 楼然苗.51系列单片机设计实例M.:航空航天大学出版设,2003年4月.19. 毅刚.新编MCS-51单片机应用设计M.:工业大学,2003年2月.20. 求是科学.单片机通信技术与工程实践M.:人民邮电,2005年1月.21. 马壮,吴铮,王

45、永强.基于VB的PC 机与单片机串行通信系统研究与实现J.学院学报,2008,24(4):350-355.附录A(上位机VB程序)Option Explicit遇到未经声明的变量名提出警告Dim controlcode, windtype, windtype2定义变量Dim addr As Integer定义下位机地址Dim temperature As String定义字符串变量,存储下位机发来的温度值Dim i, jDim temper As String定义字符串变量,表示PC机发给下位机的温度值Private Sub Command1_Click()开启计时器1对所有空调实行轮流监控a

46、ddr = 1Timer1.Enabled = TrueEnd SubPrivate Sub Command2_Click()关闭计时器停止监控Timer1.Enabled = FalseEnd SubPrivate Sub Command3_Click()开启计时器2将控制选定空调的命令字符串发送Text2.Text = list1.Text & controlcode & windtype & Text1.Texti = 1j = Len(Text2.Text)Timer2.Enabled = TrueEnd SubPrivate Sub Command4_Click()设置好各参数通过计时器2将所有空调开启Text2.Text = 1 & D & windtype2 & temperi = 1j = Len(Text2.Te

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作计划

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁