虚拟仪器课程设计报告

更新时间:2023-07-25 16:48:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

电控学院

课程设计(论文)

课程名称:

题 目: 跑马灯设计

院 (系): 电气与控制工程

专业班级: 测控1001班

姓 名:

学 号:指导教师: 昝宏洋 彭倩

2014年1月9日

目录

一、设计任务: .................................................................................................. 2

二、系统方案选择: ........................................................................................... 2

2.1 整体设计 ............................................................................................... 2

2.2 通信协议 ............................................................................................... 2

2.3 下位机总体设计 ..................................................................................... 4

2.4 上位机总体设计 ..................................................................................... 4

三、下位机设计: ............................................................................................... 4

3.1 硬件 ..................................................................................................... 4

3.2 软件 ..................................................................................................... 5

四、上位机设计: ............................................................................................... 6

五、系统调试: .................................................................................................. 8

六、结论: ........................................................................................................ 9

七、总结: ...................................................................................................... 10

八、参考文献: ................................................................................................ 10

九、附录: ...................................................................................................... 10

基于labview的跑马灯设计

一、设计任务:

前面板上有8个圆形指示灯与单片机模块上的8个LED灯一 一对应。

A.VISA资源名称通过下拉箭头选择LABVIEW需要连接的接口,本设计选择COM2即串口2。

B.当单击前面板工具栏上运行程序按钮后,对程序进行调试,对应的圆形指示灯按我的学号顺序依次变亮,同时单片机模块上对应的LED灯也是按此规律亮。

C.当按下停止按钮,程序退出。

二、系统方案选择:

2.1 整体设计

采用单片机串口实现单片机跑马灯的运行状态对上位机的发送,由上位机接收并且实现状态的显示,使下位机跑马灯的运行状态能够直观的在LabVIEW中显示。

2.2 通信协议

串口是计算机上一种非常通用的设备通信协议,两个串口连接时,接收数据针脚与发送数据针脚相连,彼此交叉,信号地对应相接即可。

串口的电气特性:

1)RS-232串口通信最远距离是50英尺

2)RS-232可做到双向传输,全双工通讯,最高传输速率20kbps

3)RS-232上传送的数字量采用负逻辑,且与地对称

逻辑1:-3 到-15V

逻辑0:+3 到+15V

串口通信参数:

a)波特率:RS-232-C标准规定的数据传输速率为每秒50、75、 100、150、300、600、1200、2400、4800、9600、19200波特。

b)数据位:标准的值是5、7和8位,如何设置取决于你想传送的信息。比如,标准的ASCII码是0~127(7位);扩 展的ASCII码是0~255(8位)。

c)停止位:用于表示单个包的最后一位,典型的值为1,1.5和2位。由于数是在传输线上定时的,并且每一个设备 有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。因此停止位不仅仅是表示传输的结束,并且提 供计算机校正时钟同步的机会。

d)奇偶校验位:在串口通信中一种简单的检错方式。对于偶和奇校验的情况,串口会设置校验位(数据位后面的 一位),用一个值确保传输的数据有偶个或者奇个逻辑高位。

串口通信的传输格式: 串行通信中,线路空闲时,线路的TTL电平总是高,经反向RS232的电平总是低。一个数据的开始RS232线路为高 电平,结束时Rs232为低电平。数据总是从低位向高位一位一位的传输。示波器读数时,左边是数据的高位。

串口通信的接收过程:

(异步通信:接收器和发送器有各自的时钟;同步通信:发送器和接收器由同一个时钟源控制。RS232是异步通信)

(1)开始通信时,信号线为空闲(逻辑1),当检测到由1到0的跳变时,开始对“接收时钟”计数。

(2)当计到8个时钟时,对输入信号进行检测,若仍为低电平,则确认这是“起始位”,而不是干扰信号。

(3)接收端检测到起始位后,隔16个接收时钟,对输入信号检测一次,把对应的值作为D0位数据。若为逻辑1, 作为数据位1;若为逻辑0,作为数据位0。

(4)再隔16个接收时钟,对输入信号检测一次,把对应的值作为D1位数据,直到全部数据位都输入。

(5)检测校验位P(如果有的话)。

(6)接收到规定的数据位个数和校验位后,通信接口电路希望收到停止位S(逻辑1),若此时未收到逻辑1,说明出现 了错误,在状态寄存器中置“帧错误”标志。若没有错误,对全部数据位进行奇偶校验,无校验错时,把数据位从移 位寄存器中送数据输入寄存器。若校验错,在状态寄存器中置奇偶错标志。

(7)本幀信息全部接收完,把线路上出现的高电平作为空闲位。

(8)当信号再次变为低时,开始进入下一幀的检测。

单片机常用11.0592M的的晶振

2.3 下位机总体设计

因为之前我们在电子实训中已经焊过51单片机的最小系统,所以,在此次课设中,我们不需要做硬件电路,只需要将流水灯的程序和与下位机通信的程序结合修改一下,然后将修改后的程序下载到单片机的芯片里,采用串口调试助手软件进行下位机的调试。

2.4 上位机总体设计

前面板界面包括设置区即端口IO的设置,命令控件区即启动按钮、停止按钮、退出按钮,显示控件区即8个LED。

三、下位机设计:

3.1 硬件

本次课程设计下位机使用单片机STC89C52控制流水灯,其硬件原理图如下:

图2.单片机控制流水灯原理图

3.2 软件

下位机软件设计流程图如下:

图3.下位机程序流程图

下位机程序清单如下:

#include<reg51.h>

#define uchar unsigned char

#define uint unsigned int

uchar code LED[]={0xfe,0xff,0xff,0xdf,0xff,0xbf,0xff,0xfe,0xff,0xef}; //义流水灯点亮顺序

void delay(uint x) //延迟函数

{ int i;

while(x--)

for(i=0;i<120;i++);

}

void Port(char c) //定义单片机向串口输出数据子函数

{ SBUF=c;

while(TI==0);

TI=0;

}

void main(void)

{ SCON=0x40; //设置串口工作于方式1

TMOD=0x20; //设置定时器工作于方式2

PCON=0x00; //设置SMOD

TH1=0xfd; //设置波特率9600

TL1=0xfd;

TI=0; //允许向串口发送数据

TR1=1; //启动TI

while(1)

{ int i;

for(i=0;i<10;i++) //正向点亮流水灯并将流水灯状态发送至串口 { P1=LED[i];

Port(LED[i]);

delay(500);

}

}

}

四、上位机设计:

对于labview处理主要包括前后面板的设计,包括三部分:参数设置部分、命令控制部分及显示部分。其中参数设置主要包括通讯口、波特率、数据位、校验位、停止位及接收周期的设置;命令控制主要包括启停数据接收、显示数据清空及退出运行等;显示界面主要包括接收数据显示、接收数据个数显示、当前下位机流水灯状态实时显示等。

前面板的设计:

1)设置区:通信口的设置、波特率的设置 、数据位的设置、校验位的设置、停止位的设置

2)命令控件区:即发送按钮、停止按钮、数据清空按钮

3)显示控件区: 8个LED、数据接收显示

图4.前面板

后面板的设计:

采用字符形式来进行数据通信,在后面板中,先将传递出来的字符转化成十六进制,然后与特定的数据相与,进而判断灯的状态。在程序中用到了延时,单位是毫秒,延时的目的是使本程序更具有可观性。

图5.程序框图

五、系统调试:

将上位机与下位机用RS232连接起来,统一进行调试。运行结果如下图:

图6.前面板

运行控制:

直接点击labview发送按钮进行数据的发送和跑马灯演示。点击清空按钮清空数据接收显示区的数字,点击停止按钮停止数据的发送。可自行设置发送周期、波特率等的设置

六、结论:

上位机正确接收了下位机数据并能实时反映模拟下位机状态,实现了上位机与下位机之间的通信。

七、总结:

在这次的课程设计中,采用单片机串口实现单片机跑马灯的运行状态对上位机的发送,并且由上位机接受并且实现状态的显示,使下位机跑马灯的运行状态能够直观的在LABVIEW中实现。在此次课设中,我遇到的最大的困难就是上位机设计的问题。由于基础知识的不牢靠,以至于在上位机的调试时浪费了很多时间,但正是这种不断的调试促使我不断的进步,这也是第一次我们进行上位机与下位机通信的实践,也为我们即将到来的毕业设计打好基础,虽然前面板看起来很简单,不过该程序后面板过于复杂,接线即框图太多,很多地方值得思考精简。通过这次的虚拟仪器课程设计,让我深深认识到了自己在很多方面还有不足之处。因此,在以后的时间里,我将继续学习通过LabVIEW实现人机界面的知识,为毕业设计打好基础。

八、参考文献:

【1】电子技术论坛相关资料

【2】百度文库相关labview操作资料

【3】彭倩 《虚拟仪器实验指导书》

【4】江建军 孙彪《LABVIEW程序设计教程》第二版 电子工业出版社

九、附录:

附录一:原理图

图7.最小系统原理图

附录二:程序清单

#include<reg51.h>

#define uchar unsigned char

#define uint unsigned int

uchar code LED[]={0xfe,0xff,0xff,0xdf,0xff,0xbf,0xff,0xfe,0xff,0xef}; //义流水灯点亮顺序

void delay(uint x) //延迟函数

{ int i;

while(x--)

for(i=0;i<120;i++);

}

void Port(char c) //定义单片机向串口输出数据子函数

{ SBUF=c;

while(TI==0);

TI=0;

}

void main(void)

{ SCON=0x40; //设置串口工作于方式1 TMOD=0x20; //设置定时器工作于方式2 PCON=0x00; //设置SMOD

TH1=0xfd; //设置波特率9600e6 TL1=0xfd;

TI=0; //

TR1=1; //

while(1)

{ int i;

for(i=0;i<10;i++) //

{ P1=LED[i];

Port(LED[i]);

delay(500);

}

}

}

允许向串口发送数据 启动TI 正向点亮流水灯并将流水灯状态发送至串口

本文来源:https://www.bwwdw.com/article/27qm.html

Top