(完整word版)基于LabVIEW的直流电机测控系统设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学号:《虚拟仪器技术》课程大作业
基于LabVIEW的直流电机测控系统设计
专业班级:
学生姓名:
指导教师:
完成日期:
成绩:
目录
1设计要求、内容 (2)
1。1要求 (2)
1。2内容 (2)
1.2。1 LabVIEW与单片机串口通信硬件/程序设计 (2)
1。2.2 电机驱动模块/调速程序设计 (6)
1.2.3 电机测速模块/测速程序设计 (8)
1。2。4 总硬件/程序的设计 (11)
1。3设计环境: (14)
2设计过程 (14)
2。1设计思路 (14)
2.1.1硬件系统方案设计 (14)
2.1。2软件系统设计 (15)
2.2程序设计流程 (15)
2。3设计好的程序框图及前面板 (16)
3任务总结与展望 (17)
4个人收获 (18)
附:个人信息 (18)
1设计要求、内容
1.1要求
1.理解《虚拟仪器技术》课程中所学的理论知识,掌握相关的设计方法和技能,能够读懂一些不太难的程序,能够独立的设计一些不太复杂的程序;
2.能熟练运用LabVIEW进行编程操作,并且能够自主的通过即时帮助通过程序的编写明白一些未知控件的作用;
3.通过学习,掌握基于LabVIEW的电机测控系统的具体设计过程,完成设计;
4.认真总结,完成计报告
1。2内容
1.2。1 LabVIEW与单片机串口通信硬件/程序设计
单片机作为下位机核心器件,负责数据的采集和通信及电机转速的控制,而上位机通常以基于图形界面的Windows系统为操作平台.核心是数据通信,它包括单片机和上位机之间的通信,而单片机和上位机之间数据通信则是整个系统的基础。
单片机和PC的通信是通过单片机的串口和PC串口之间的硬件连接实现的。
图1。1 PC与单片机串口通信线路
数据通信的硬件上采用3线制,将单片机和PC串口的3个引脚(RXD、TXD、GND)分别连在一起,即将PC和单片机的发送数据线TXD与接收数据RXD交叉连接,两者的地线GND 直接相连,而其他信号线,如握手信号线均不用,采用软件握手的方式,这样既可以实现预定的任务又可以简化电路设计.
利用Keil C51和LabVIEW编写程序实现PC与单片机串口通信.
C51程序:
#include〈REG52。H>
/*主程序*/
void main(void)
{
SCON=0x50; /*SCON:模式1,8-bitUART,使能接收*/
TMOD=0x20;/*TMOD:timer1,mode2, 8—bit reload*/
TH1=0xFD; /*TH1:reload value for 9600 baud 11。0592MHz */ TL1=0XFD;
TR1=1; /*TR1:timer1 run*/
EA=1; /*打开总中断*/
ES=1;/*打开串口中断*/
while(1) //主循环不做任何动作
{}
}
void UART_SER(void) interrupt 4 //串行中断服务程序
{
unsigned char Temp; //定义临时变量
if(RI)//判断是接收中断产生
{
RI=0;//标志位清零
Temp=SBUF;//读入缓冲区的值
P0=~Temp; //把值输出到P0口,用于观察
SBUF=Temp;//把接收到的值再发回电脑端}
if(TI)//如果是发送标志位,清零
TI=0;
}
LabVIEW程序:
图1。2 发送程序
图1。3 接收程序
图1。4 判断通信状态程序
图1。5 LabVIEW前面板
1.设计任务一
PC通过串行口将数字(00,01,02,03..。,FF,十六进制)发送给单片机,单片机收到后回传这个数字,PC接收到回传数据后显示出来,若发送的数据和接收到的数据相等,则串行通信正确,否则有错误。启始符是数字00,结束符是数字FF。
图1.6 串口助手调试单片机串口通信
2.设计任务二
(1)测试通信状态。
先在文本框中输入字符串“FF”,单击“测试”按钮,将字符串“FF”发送到单片机,若PC 与单片机通信正常,在LabVIEW程序前面板显示字符串“OK!”,否则显示字符串“通信异常"。
图1。7 LabVIEW与单片机串口通信测试
(2)控制指示灯。
将单片机接收到的数值赋给P0口,P0口接一排LED,观察LED的显示结果(表示该数值的二进制显示)是否与输入值相符合。
图1。8 输入“FF”
图1.9 输入“01”
单片机和LabVIEW通信,在程序设计上涉及两个部分的内容.
一是单片机的C51程序,二是LabVIEW的串口通信程序和界面的编制。
1.2。2 电机驱动模块/调速程序设计
图1。10 LS298N驱动模块
设置IN1和IN2,确定电机的转动方向,然后对使能端输出PWM脉冲,实现电机调速。当使能信号为0,电机处于自由停止状态;当使能信号为1,且IN1和IN2为00或11时,电机处于制动状态,阻止电机转动。
C51程序:
#include
sbit IN1=P1^0;
sbit IN2=P1^1;
sbit ENA=P1^2;
//x毫秒延时
void delay(unsigned int x)
{
unsigned int i,j;
for(i=x;i〉0;i-—)
for(j=110;j〉0;j-—);
}
//y微秒延时
void delay_us(unsigned int y)
{
while(y——);
}