当前位置:文档之家› 基于LabVIEW的PC机与单片机串口通信

基于LabVIEW的PC机与单片机串口通信

课程设计任务书学生姓名:李晓宁郁金华彭亚斌吴冰专业班级 0882022 0882021指导教师:杨谊华工作单位:南昌航空大学题目:基于LabVIEW的PC机与单片机串口通信初始条件:要求对单片机课程知识有所了解,同时熟悉labview软件的运用,同时了解基本的串口通信原理。

指导教师签名:________________年月日系主任(或责任教师)签名:______________ 年月日摘要介绍一种基于LabVIEW 7.0语言的A VR AT90系列单片机与PC 机的串口通信技术,在体温检测中得到应用,并取得良好效果。

关键词: LabVIEW 7.0语言;A VR AT90系列中一片机;PC机;串口通信技术Abstract:We introduce the application of serial port communication technology based on PC machine with LabVIEW 7.0 language and A VR AT90 series SCM in body temperature examination.And it has good effect.Key words:LabVIEw 7.0 language;A VR AT90 series SCM;PC machine;Serial port communication technology目录第一章绪论 (1)第二章软件实现 (2)2.1 LabVIEW应用软件概述 (2)2.2 LabVIEW串口通信模块 (2)2.3 LabVIEW通信模块的属性 (3)2.4 串口通信程序结构 (3)第三章程序设计 (4)3.1 单片机通信的设计 (4)3.2 PC机通信的设计 (4)3.3 输入显示程序设计 (4)3.3.1 LED 显示流程图 (6)3.4 单片机收发程序 (7)3.5 PC机收发程序 (8)3.6 硬件连接 (9)第四章利用LabVIEW实现PC与单片机串口通信任务 (12)4.1 建立新VI程序 (12)4.2.程序前面板设计 (12)4.3.框图程序设计——添加函数与连线 (12)4.4.运行程序 (15)致谢 (16)参考文献 (17)第一章绪论在计算机分布式测控系统中,经常要利用串行通信方式进行数据通信。

它包括单片机和上位机之间、客户端和服务器之间以及客户端和客户端之间的通信,而单片机和上位机之间数据通信则是整个系统的基础。

串行通信是一种常用的数据传输方法,虽然它的传输速度慢,但由于它占用的通信线路少、成本低、容易实现等优点,在数据通信方式上仍占有重要地位。

目前,串口通信程序的开发,在Windows操作系统下一般用VB、VC、VF Delphi 等等许多高级语言编写。

当用VB、VC、VF,开发串行通信程序时,开发人员不得不面对非常烦琐的API函数编程;而Delphi没有自带的串口通信控件,在它的帮助文档里也没有提及串口通信,这也给编程人员带来许多不便,其他高级语言也是如此。

可见,用文本语言编串口通信程序较为复杂,花费的时间较长。

利用LabVIEW7.0开发PC机与单片机的串口通信程序是一种更为简捷的方法。

第二章软件实现2.1 LabVIEW应用软件概述LabVIEW是一个工业标准的图形化开发环境,它结合了图形化编程方式的高性能与灵活性以及专为测试测量与自动化控制应用设计的高端性能与配置功能,能为数据采集、仪器控制、测量分析与数据显示等各种应用提供必要的开发工具。

因此,LabVIEW通过降低应用系统开发时间与项目筹建成本帮助科学家与工程师们提高工作效率。

LabVIEW被广泛应用于各种行业中,包括汽车、半导体、航空航天、交通运输、高校实验室、电信、生物医药与电子等无论在哪个行业中,工程师与科学家们都可以使用LabVIEW创建功能强大的测试测量与自动化控制系统,在产品开发中进行快速原型创建与仿真工作。

在产品生产过程中,工程师们也可以利用LabVIEW进行生产测试,监控各个产品生产过程。

总之,LabVIEW可用于各行各业产品开发的阶段。

由于LabVIEW能够为用户提供简明、直观、易用的图形编程方式,能够将繁琐复杂的语言编程简化成为以菜中提示方式选择功能,并且用线条将各种功能连接起来,十分省时简便。

与传统的编程语言比较,LabVIEW图形编程方式能够节省85%以上的程序开发时间,其运行速度却几乎不受影响,体现出了极高的效率。

使用虚拟仪器产品,用户可以根据实际生产需要重新构筑新的仪器系统。

例如,用户可以将原有的带有RS232接口的仪器、VXI总线仪器以及GPIB仪器通过计算机,联接在一起,组成各种各样新的仪器系统,由计算机进行统一管理和操作[1,2]。

2.2 LabVIEW串口通信模块在LabVIEW 7.0中,对串行口进行控制的方式通常有两种:一是利用LabVIEW功能模块的lnstrument 1/0-﹥VISA子模块;二是直接利用LabVIEW功能模块lnstrument 1/0一>Serial子模块,该程序库中包含进行串行通信操作的一些功能模块这正符合本软件开发的需要2.3 LabVIEW通信模块的属性表(1)给出了本系统用到的几个通信模块的基本属性的描述2.4 串口通信程序结构本程序主要采用顺序结构实现,具体流程描述如下:(1)初始化串口。

据实际需要选择并打开com口,打开串口时根据双方协议设置波特率、数据位、奇偶校验位、停止位、缓冲区大小等。

如果打开串口无误,指小灯亮;否则提小串口出错,并关闭串口。

初始化成功后,退出第一桢,进入第二桢。

(2)输入命令字到串口。

因双方约定单片机输入的命令字为}一六进制的55 (ASC Ⅱ码字符表示为U),故在程序框图中输入的字串若用ASC Ⅱ码字符表示为U,用HI;X进制表示为55。

若写入的命令字有误,或写入串口模块打不开,出现出错提小,重新要求打开串口。

(3)延时因涉及在操作系统的几层间传递信息,加之从主机发送命令到单片机,单片机判断为正确命令后返回数据给主机是需要一定的时间的,故这一步进行延时等待。

延时时间可视情祝而定,只要大于单片机回送给主机的时间就行。

具体执行时间可由LabVIEW工具菜中栏下的advanced下的profile来确定程序运行时间。

若不加以延时程序会有出错提示。

(4)显示部分,主要程序代码如图二所示根据需要进行图形及表格显示。

为能准确计算被测信号的频率值,使前面板横轴表示的时间尽可能准确,在显示图形Graph IJU用bundle 进行处理。

实践表明:通过这种处理方式,可使被测信号的频率值误差在百分之三以内。

在数组显示用一个重构数组函数将单片机送来的数据构建成一个10行8列的数组,后利用两层for循环实现数组的行列显示。

第三章程序设计设计思路:本设计分单片机和PC机两部分进行编程。

在单片机方面,使用汇编语言,用中断方式接收和发送数据。

单片机有五个终端源,本设计使用串行口中断请求标志RI或TI,当串行口接收完一帧串行数据时置位RI或当发送完一帧串行数据时置位TI,向CPU申请中断;在PC机方面,PC机数据的接收和发送采用VisualBasic中的通讯控件MSC0MM。

设计中使用LED数码管显示发送或接收到数据;使用4⨯6的矩阵式键盘发送数据。

3.1单片机通信的设计单片机完成通信数据的收发功能主要分为2个步骤。

错误!未找到引用源。

串口波特率的设定通常使用单片机的串口时,选用的晶振比较固定,常用于何微机通信的波特率也相对固定。

本设计设定通讯波特率为9600。

错误!未找到引用源。

串口初始化串口初始化主要是设置产生波特率的定时器1、串行口控制和串口的中断控制。

具体步骤如下。

●确定定时器1的工作方式——写TMOD寄存器。

●计算定时器1的初值——装载TH1、TL1。

●启动定时器1——写TCON中的TR1位。

●确定串口的控制——写SCON。

●使用串口中断方式时,开CPU和中断源——写IE寄存器。

本设计设定定时器T1工作在模式2,串行口工作于方式3。

3.2 PC机通信的设计MSC0MM控件不需要用户对通讯底层进行操作。

它有事件驱动通讯和查询通讯两种方式。

本设计中采用事件驱动方式,即接收缓冲区每接受规定字符数产生一次MSCOMM—OnC0Mm事件,发送时设置不产生该事件。

3.3 输入显示程序设计设计中使用7段LED数码管显示发送或接收到数据;使用4⨯6的矩阵式键盘发送数据。

程序可分为三个模块。

错误!未找到引用源。

键输入模块:扫描键盘、读取一次键盘并将键值存入键值缓冲单元。

错误!未找到引用源。

显示模块:将显示单元的内容在显示器上动态显示。

错误!未找到引用源。

主程序:调用键输入模块和显示模块。

键盘扫描中,向列扫描码地址逐列输出低电平,然后从行码地址读回。

如果有键按下,则相应行的地址应为低,如果无键按下,由于上拉的作用,行码为高。

这样就可以通过输出的列码和读取的行码来判断按下的是什么键了,由于在建的闭合和断开过程中有一个抖动期,抖动时间长短和开关的机械特性有关,一般为5~10ms,为了保证CPU 对键的闭合做一次且仅一次的处理,在编程时要有一定的延时,本设计设定了30ms 的延时来防止按键抖动。

程序框图如下:主程序框图 读键输入子程序框图NYY N N Y开始键值转换为显示数据读取键值 显示缓冲区初始化 LED 显示有键输入? 开始 输出列扫描信号 读入行信号 初始化地址参数列扫描信号复位 返回 查表得键码 等待按键释放按照行列计算键值 返回该列有键输入? 6列扫描完?LED显示流程图开始初始化显示参数关所有位显示取显示数据输出段码数据输出位选通信号否延时位选通信号移位指向下一个显示数据是8位完成?返回3.4 单片机收发程序单片机发送数据流程图 单片机接收数据流程图否是3.5 PC 机收发程序主程序开始在PC 机屏幕上显示按下的字符读接收寄存器内容串行口初始化向PC 机发送字符单片机小键盘按下设定波特率LED 初始化LCD 显示按下的字符 返回主程序开始串行口初始化LED 初始化开中断清接收中断标志R1接收PC 机发来数据开中断,恢复现场返回保护现场接受正确PC 机发送数据流程图 PC 机接收数据流程图否 否是是3.6 硬件连接 串口初始化在文本框中显示数据 等待控制命令 串口初始化 打开串口接收数据 接收数据的事件触发 数据在LED 数码管上显示打开串口发送数据等待控制命令发送数据的事件触发 显示正确显示正确图一:图二:图三:第四章 利用LabVIEW 实现PC 与单片机串口通信任务4.1.建立新VI 程序启动NI LabVIEW 程序,选择新建(New )选项中的VI 项,建立一个新VI 程序。

相关主题