版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
岳址农抹科找大学NORTHWESTA&FUNIVERSITY学号:岳址农抹科找大学NORTHWESTA&FUNIVERSITY机械与电子工程学院Coileg«cfMechanicalandElectronicEngineering《虚拟仪器技术》课程大作业基于LabVIEW的直流电机测控系统设计专业班级:学生姓名:指导教师:完成日期:成绩:目录TOC\o"1-5"\h\z\o"CurrentDocument"设计要求、内容 2要求 2内容 2LabVIEW与单片机串口通信硬件/程序设计 2\o"CurrentDocument"电机驱动模块/调速程序设计 6电机测速模块/测速程序设计 8\o"CurrentDocument"总硬件/程序的设计 11\o"CurrentDocument"1.3设计环境: 14\o"CurrentDocument"设计过程 14\o"CurrentDocument"设计思路 14硬件系统方案设计 14软件系统设计 14\o"CurrentDocument"程序设计流程 15\o"CurrentDocument"设计好的程序框图及前面板 16\o"CurrentDocument"任务总结与展望 17\o"CurrentDocument"个人收获 17\o"CurrentDocument"附:个人信息 171设计要求、内容1.1要求1•理解《虚拟仪器技术》课程中所学的理论知识,掌握相关的设计方法和技能,能够读懂一些不太难的程序,能够独立的设计一些不太复杂的程序;2•能熟练运用LabVIEW进行编程操作,并且能够自主的通过即时帮助通过程序的编写明白一些未知控件的作用;3•通过学习,掌握基于LabVIEW的电机测控系统的具体设计过程,完成设计;4•认真总结,完成计报告1.2内容1.2.1LabVIEW与单片机串口通信硬件/程序设计单片机作为下位机核心器件,负责数据的采集和通信及电机转速的控制, 而上位机通常以基于图形界面的Windows系统为操作平台。核心是数据通信,它包括单片机和上位机之间的通信,而单片机和上位机之间数据通信则是整个系统的基础。单片机和PC的通信是通过单片机的串口和PC串口之间的硬件连接实现的。Tnrxricamn©HOUTA3^■&N?wc图1.1PC与单片机串口通信线路数据通信的硬件上采用3线制,将单片机和PC串口的3个引脚(RXD、TXD、GND)分别连在一起,即将PC和单片机的发送数据线TXD与接收数据RXD交叉连接,两者的地线GND直接相连,而其他信号线,如握手信号线均不用,采用软件握手的方式,这样既可以实现预定的任务又可以简化电路设计。利用KeilC51和LabVIEW编写程序实现PC与单片机串口通信。C51程序:#include<REG52.H>/*主程序*/voidmain(void){SCON=0x50;/*SCON:模式1,8-bitUART,使能接收*/TMOD=0x20;/*TMOD:timer1,mode2,8-bitreload*/TH1=0xFD;/*TH1:reloadvaluefor9600baud11.0592MHz*/
TL1=0XFD;TR1=1; /*TR1:timer1run*/EA=1; /*打开总中断*/ES=1; /*打开串口中断*/while(1){}}while(1){}}voidUART_SER(void)interrupt4//{unsignedcharTemp;if(RI){RI=0;Temp=SBUF;P0=~Temp;SBUF=Temp;}if(TI)TI=0;}LabVIEW程序://主循环不做任何动作串行中断服务程序//定义临时变量//判断是接收中断产生//标志位清零//读入缓冲区的值//把值输出到P0口,用于观察//把接收到的值再发回电脑端//如果是发送标志位,清零FTO3T|steE|Er图1.2发送程序图1.3接收程序FTO3T|steE|Er图1.2发送程序图1.3接收程序图1.4判断通信状态程序图1.5LabVIEW前面板1•设计任务一PC通过串行口将数字(00,01,02,03...,FF,十六进制)发送给单片机,单片机收到后回传这个数字,PC接收到回传数据后显示出来,若发送的数据和接收到的数据相等,贝U串行通信正确,否则有错误。启始符是数字 00,结束符是数字FF。斗严:fTK■二MbjI«>I1I-片*IT'Q^-lrF*t§ 1E5-1:sn斗严:fTK■二MbjI«>I1I-片*IT'Q^-lrF*t§ 1E5-1:sn■-<u:i- US:?-e.:■■rn-li.^-・Ell11M科.HM.iI.-:-!:.J'TII—nTTjWTBSr« 注帕 - ■■1TU^mr-am兰帀■+•*1^-•»|WIM<n>]l!3E>lta-t(l[NHbmuiHMIEilmlhBll.nAiH雷兀Je:-LZMTJEX-&lzi图1.6串口助手调试单片机串口通信2•设计任务二(1)测试通信状态。
先在文本框中输入字符串FF”,单击测试”按钮,将字符串FF”发送到单片机,若PC与单片机通信正常,在LabVIEW程序前面板显示字符串“0K”,否贝U显示字符串通信异常”。图1.7LabVIEW图1.7LabVIEW与单片机串口通信测试(2)控制指示灯。将单片机接收到的数值赋给P0口,P0口接一排LED,观察LED的显示结果(表示该数值的二进制显示)是否与输入值相符合。图1.8输入“FF”图图1.8输入“FF”图1.9输入“01”单片机和LabVIEW通信,在程序设计上涉及两个部分的内容。一是单片机的C51程序,二是LabVIEW的串口通信程序和界面的编制1.2.2电机驱动模块/调速程序设计图1.10LS298N驱动模块设置IN1和IN2,确定电机的转动方向,然后对使能端输出PWM脉冲,实现电机调速。当使能信号为0,电机处于自由停止状态;当使能信号为1,且IN1和IN2为00或11时,电机处于制动状态,阻止电机转动。C51程序:#include<reg52.h>sbitIN仁P1A0;sbitIN2=P1A1;sbitENA=P"2;〃x毫秒延时voiddelay(unsignedintx){unsignedinti,j;for(i=x;i>0;i--)for(j=110;j>0;j--);}〃y微秒延时voiddelay_us(unsignedinty){while(y__);}//主函数voidmain(){
while(1){unsignedinti,cycle=1300,T=2048;/*IN1=1;IN2=0;for(i=0;i<200;i++){//反转PWM脉冲delay(10);ENA=~ENA;}//PWM占空比为50%,修改延时调整*/IN1=0;IN2=1;for(i=0;i<200;i++){delay(10);ENA=~ENA;}//正转IN1=0;IN2=1;while(cycle<2048){ENA=1;delay_us(cycle++);ENA=0;delay_us(T-cycle);}//自动加速正转/*IN1=1;IN2=0;//自动减速反转*/while(cycle>1300){ENA=1;delay_us(cycle--);ENA=0;delay_us(T-cycle);}}
1.2.3电机测速模块/测速程序设计图1.11光电耦合测速传感器模块1•模块槽中无遮挡时,接收管导通,模块DO输出低电平,遮挡时,DO输出高电平;2、DO输出接口可以与单片机10口直接相连,检测传感器是否有遮档,如用电机码盘则可检测电机的转速。设计选用的测速码盘有20格光栅,因此速度计算公式为:Speed=(count/20)*60(转/分)图1.12电机测速调试1图1.13电机测速调试2C51程序:#include<REG52.H>sbitIN仁P1A0;sbitIN2=P1A1;sbitENA=P1A2;unsignedinti=0,pul=0,count=0,Speed=0;unsignedintcycle=2000,T=7000;//x毫秒延时voiddelay(unsignedintx){unsignedinti,j;for(i=x;i>0;i--)for(j=110;j>0;j--);}〃y微秒延时voiddelay_us(unsignedinty){while(y--);}voidmain(){TMOD=0x15;//打开定时器T1和计数器T0,TMOD为00010101,都为模式1因此矩形脉冲输入端接P3.4EA=1;TH0=0x00;TL0=0x00;ET0=1;ET1=1;TH1=0x3C; //50ms 0x3CB0=15536TL1=0xB0;TR0=1;TR1=1;while(1){IN1=0; //自动加速正转IN2=1;while(cycle<3000)
ENA=1;delay_us(cycle++);ENA=0;delay_us(T-cycle);}while(cycle>2000) //自动减速{ENA=1;delay_us(cycle--);ENA=0;delay_us(T-cycle);}}//定时器中断时间到//定时器中断时间到,就读取计数器值timer3()interrupt3{TH1=0X3C;TL1=0XB0;i++;if(i<20) //累计1s内的脉冲数{pul=TH0; //计数器计入脉冲,每来一个矩形脉冲计数值加 1pul=pul<<8;//得高八位后,左移8位,pul=pul+TL0;//再加上低八位count+=pul;pul=0;TH0=0; //计数器速度获取后清零,进行下次获取TL0=0;}if(i==20) //每秒更新一次速度{pul=TH0; //计数器计入脉冲,每来一个矩形脉冲计数值加 1pul=pul<<8;pul=pul+TL0;count+=pul;Speed=(count/20)*60; //测得的速度(转/分)i=0;count=0;
THO=O;TLO=O;PO=~Speed;}〃计数器速度获取后清零,进行下次获取〃观察速度值}〃计数器速度获取后清零,进行下次获取〃观察速度值图1.14直流电机测控系统硬件原理框图直流电机图1.15总硬件设计1.2.4总硬件/程序的设计图1.14直流电机测控系统硬件原理框图直流电机图1.15总硬件设计C51总程序:#include<REG52.H>#include<stdio.h>#include<stdlib.h>#include<string.h>#include<ctype.h>sbitIN仁P1A0;sbitIN2=P1A1;sbitENA=P1A2;unsignedinti=0,pul=0,count=O,Speed=O,Speed_dec=O;unsignedintcycle=2000,T=7000;〃x毫秒延时voiddelay(unsignedintx){
unsignedinti,j;for(i=x;i>0;i--)for(j=110;j>0;j--);}〃y微秒延时voiddelay_us(unsignedinty){while(y--);}/*主程序*/voidmain(void){SCON=0x50;/*SCON:模式1,8-bitUART,使能接收*/TMOD=0x25;/*TMOD:timer1,mode2,8-bitreloadT0计数,模式1,因此矩形脉冲输入端接P3.4*/TH1=0xFD;TL1=0XFD;/*TH1:reloadvaluefor9600baud11.0592MHz*/TH0=0x00;TL0=0x00;TR1=1;EA=1;/*TR1:timer1run*//*打开总中断*/ES=1;TR0=1;/*打开串口中断*/TR1=1;while(1)/*TR1:timer1run*///主循环{if(Speed_dec=Speed){//停转////停转//自动加速正转IN2=0;}if(Speed_dec>Speed){IN1=0;IN2=1;while(cycle!=T){ENA=1;delay_us(cycle++);
ENA=0;delay_us(T-cycle);}}if(Speed_dec<Speed){IN1=1;//IN1=1;//自动减速反转串行中断服务程序,串行中断服务程序,在LabVIEW中设置每隔一秒中断//定义临时变量//计算速度//判断是接收中断产生//标志位清零//读入缓冲区的值IN2=0;while(cycle!=T){ENA=1;delay_us(cycle++);ENA=0;delay_us(T-cycle);}}voidUART_SER(void)interrupt4//一次(便于测速){unsignedcharTemp1,ch1;unsignedcharhex;unsignedinti;TH1=0X3C;TL1=0XB0;i++;if(RI){RI=0;Temp1=SBUF;if(Temp1>=0x30&&Temp1<=0x39)ch1=Temp1-0x30;elseif(Temp1>=0x41&&Temp1<=0x46)ch1=Temp1-0x37;elsech1=0xff;pul=TH0; //计数器计入脉冲,每来一个矩形脉冲计数值加 1pul=pul<<8;pul=pul+TL0;count+=pul;Speed=(count/20)*60;//测得的速度(转/分)i=0;count=0;TH0=0; //计数器速度获取后清零,进行下次获取TL0=0;SBUF=Speed; //把速度值再发回电脑端}if(TI) //如果是发送标志位,清零TI=0;}1.3设计环境:硬件环境:单片机、直流电机及驱动模块、串口。软件环境:LabVIEW编程软件、Keil编程软件、串口调试助手。2设计过程2.1设计思路2.1.1硬件系统方案设计本系统主要实现对直流电机进行测速和调速。(1)调速控制由LabVIEW编程产生电机所需要控制的转速值,将该速度值通过串口送入单片机,与测得的速度值进行比较,若送入值大于测量值则单片机控制直流电机加速,若送入值小于测量值则单片机控制直流电机减速。(2)测速控制将电机上的测速码盘安装在光电耦合器的发射端和接收端之间,当测速码盘转动时,光栅阻挡光耦发射出的光信号,在光耦接收端得到一段连续的脉冲波形,该脉冲波形经过斯密特触发器进行整形后,得到一形状规则的脉冲波形。整形后的脉冲波形输出至单片机计数器端,用C51程序算出速度值后传回计算机(LabVIEW)并显示。2.1.2软件系统设计LabVIEW程序,主要包括用户界面设计(前面板的设计)和框图程序设计两部分。(1) 用户界面设计用户界面(前面板)是虚拟仪器的重要组成部分,仪器参数的设置、测试结果显示等功能都是通过软件实现,因此要求软件界面简单直接,便于使用。用户可根据需要设置转速参数,并将测量结果数据显示出来。(2) 框图程序设计系统框图程序大体分为三个模块:通信模块和仪器功能模块。通信模块模块中包括对设定速度值的发送和对测量速度的接收;仪器功能模块主要实现参数设置和测量结果显示。C51单片机程序设计,主要包括控制电机加速、减速,输入速度和测量速度,比较以及串口通信程序。因为测速码盘有20片光栅,所以应将1s内计数值除以20再乘以60才得到风扇转速(转/分)。2.2程序设计流程图2.1程序设计流程图
2.3设计好的程序框图及前面板程序框图:□ 口口口3□LUJU□L.LUULUS JU□Z3Jm:B就砂咐I"na03asEDEnE□□□Z□Zu;4□ 口口口3□LUJU□L.LUULUS JU□Z3Jm:B就砂咐I"na03asEDEnE□□□Z□Zu;4'^|■n,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年城市内涝治理雨水调蓄池施工及防渗方案
- 智能墙面清洁机产业链解构:上游材料至中游技术
- 智能云考勤2026融资复盘:一级市场估值逻辑与并购潮
- a任务15.1 桥涵建筑物修理的主要内容和方法
- 2026年洛阳龙门文旅职业学院单招职业技能考试模拟试卷附参考答案详解【模拟题】
- 2024年云南省临沧市高职单招职业适应性测试考试模拟试卷参考答案详解
- 2025年海南椰岛产业职业学院单招综合素质考试题库附参考答案详解【综合卷】
- 2024年成都职业技术学院高职单招职业技能考试模拟试卷及答案详解(全优)
- 2027年重庆市璧山县单招职业技能考试题库附答案详解(轻巧夺冠)
- 2027年湘宏职业学院高职单招职业技能考试模拟试卷及答案详解(历年真题)
- 2026重庆大渡口区跃进村街道办事处街道聘用人员招聘4人笔试备考题库及答案详解
- 2026年广东省深圳市南山实验教育集团中考英语二检试卷
- 老年人志愿者服务与社会贡献
- 清华大学 -2026年OpenAIFDE研究报告
- 城市给水厂课程设计
- 职业病危害因素定期检测制度
- (2026年)急性缺血性脑卒中侧支循环评估与干预专家共识指南
- 2025年青岛旅游集团有限公司招聘笔试参考题库附带答案详解
- 观书有感其二其一课件
- JJG543-2026心电图机检定规程解读
- 风机高处作业安全培训课件
评论
0/150
提交评论