西南科技大学本科生毕业论文
控制的流程如图4-2所示:
图4-2 灯控流程图
4.4 VB串口通信与测控通信设计
利用Visual Basic开发串口通信程序主要有两种方法:一是使用MSComm串口控件,二是调用Windows API函数。使用Visual Basic串口控件实现通信的方法比调用API动态链接库的方法更方便、快捷,且使用较少的代码实现相同的功能,也能减少因编程不当而引起的系统不稳定,本设计中也是使用MSComm控件来完成程序设计的,本程序所要实现的主要功能为:记录教室的人数和开灯情况。 4.4.1 MSComm控件概述
MSComm控件全称为Microsoft Communication Control是Microsoft公司提供的ActiveX控件,目的是为了简化Windows下串口通信编程,它既可以用来提供简单的串行通信功能,也可以用来创建功能完备的、事件驱动的高级通信工具。
25
西南科技大学本科生毕业论文
MSComm控件处理通信的方式有两种,一是事件驱动方式,事件驱动通信是处理串行端口交互作用非常好的方法。二是查询方式在程序的每个关键功能完成之后,可以通过检查CommEvent属性的直来查询事件和错误[5]。本设计中使用的方法是事件驱动方式。
MSComm控件的属性很多,下面主要介绍本设计所用到的一些属性[9]: (1)CommPort属性:语法为MSComm1.CommPort=[Value],作用为设置或者返回通信端口号,Value值可在1—16之间取值,如果用PortOpen属性打开一个并不存在的端口,MSComm控件会产生错误68(设备无效)。
(2)Input属性:语法为MSComm1.Input,其作用为返回并删除缓冲区中的数据流,InputLen属性确定被Input属性读取的字节数。若InputLen设置为0,则Input属性读取缓冲区中全部内容。
(3) InputLen属性:语法为MSComm1.InputLen=Value,其功能为设置并返回Input属性从接收缓冲区读取的字符数。
(4)InputMode属性:语法为MSComm1.InputMode=Value,其功能为设置或返回接收的数据类型。
(5)Output属性:语法为MSComm1.Output=Value,其功能为向传输缓冲区写数据流。
(6)PortOpen属性:语法为MSComm1.PortOpen=Value,其功能为设置或返回通信端口的状态。
(7)Settings属性:语法为MSComm1.Settings=Value,其功能为设置并返回通信参数,如本设计中MSComm1.Settings=“4800,N,8,1”。
(8)Rthreshold属性:语法为MSComm1. Rthreshold=Value,其功能为OnComm事件发生之前,设置并返回接收缓冲区可接收的字符数。
(9)InBufferSize属性:语法为MSComm1.InBufferSize=Value,其功能为设置或返回接收缓冲区大小。缓冲区不能设置得太小,如果缓冲区太小会出现缓冲区溢出的风险,可采用握手信号来克服。 4.4.2 串口通信设置
本程序设计所使用MSComm控件的基本配置如下: MSComm1.InputLen =5 '从缓冲区读取5字符
26
西南科技大学本科生毕业论文
MSComm1.OutBufferSize = 5 '设置发送缓冲区大小为 5字节 MSComm1.InBufferSize = 5 '设置接受缓冲区大小为 5字节 MSComm1.Settings = \数据格式设置
MSComm1.InputMode = comInputModeBinary '字符串接受模式 MSComm1.RThreshold = 5 '1个字符引发事件
下位机上传到PC的数据格式为:00 01 02 01 01,在本设计中上位机只取第5位数据来分析。
27
西南科技大学本科生毕业论文
第5章 系统调试
系统调试是任何一个课题设计必不可少的步骤,系统调试必须从最底层开始,逐步通过后再进行下一步工作,对于本设计而言最基本的就是硬件平台的搭建,只有保证硬件平台完全搭建正确后,才能够进行下一步的软件综合编程设计,当然其中有些硬件的检测必须使用软件的方法来检测。在保证基本硬件无错误后,系统各模块的调试可以是非常灵活的,只要在系统总体调试处理好各模块之间的连接顺序即可。
5.1 下位机硬件调试分析
下位机的硬件调试是整个系统的基础,只有下位机的硬件调试通过了才能在此基础上进行后续的软件设计,下位机硬件测试不仅仅是指整个下位的总体功能测试,而是从每个元件何芯片的测试开始,只有在测试芯片都能正常后,才能进一步的硬件调试。下位机的测试主要包含以下几个方面。
根据PCB原理图焊接电路板,最基本的模块是电源部分电路的焊接,首先必须保证AMS1117是正常的,焊接完成后必须用万用表检查稳压管输出电压是否为3.3V,否则会有烧坏STC12C5A60S2和液晶屏的危险。在焊接STC12C5A60S2时一定不能够在焊盘引脚上加焊锡,因为在生成PCB板时已经在STC12C5A60S2的焊盘引脚上加了足够的焊锡,一般情况下能够保证焊接成功,如果焊锡实在太少,只能够在焊盘上单独加焊锡,而不能一边加焊锡一边焊接。由于本人有一定的焊接实践经验且仔细检查了电路图,焊接出来后检测完全正常。
对于其他的模块的焊接来说就十分简单了,一般直接焊接上去后不会出现问题,焊接完成后检测成功没有问题。如果出现问题的话就需要检查接口线路是否又焊短路的情况了,或者检查模块本身是否存在问题。
5.2 下位机软件调试分析
下位机软件部分调试可以说是整个系统最核心的部分,只有在下位机正常工作前提下,上位机的记录数据才有意义。下位机程序的最好办法是将每个功能模块分开调试,最后综合起来。
28

