基于LABVIEW串口通讯的LED控制.doc_第1页
基于LABVIEW串口通讯的LED控制.doc_第2页
基于LABVIEW串口通讯的LED控制.doc_第3页
基于LABVIEW串口通讯的LED控制.doc_第4页
基于LABVIEW串口通讯的LED控制.doc_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于串口通讯的LED控制前言:LABVIEW的宣言”Software is instrument!” 如果我们使用LABVIEW只停留在软件设计上,那就不能完全符合这个宣言的含义!其实NI为LABVIEW提供了一个强大的标准接口驱动应用NI-VISA。(/nisearch/app/main/p/bot/no/ap/tech/lang/zhs/pg/1/sn/catnav:du,n8:640,ssnav:sup/)只要你在LABVIEW的基础上再安装这个驱动,那你就可以设计一些连接硬件的实用型VI了! 1.功能说明:前面板上有8个圆形指示灯与8个LED按键一一对应同时与单片机模块上的8个LED灯也是一一对应的关系。A.VISA资源名称通过下拉箭头选择LABVIEW需要连接的接口,本设计选择COM1即串口1。B.当按下其中一个LED按键,对应的圆形指示灯亮三秒自动熄灭,同时单片机模块上对应的LED灯也是亮三秒自动熄灭。C.当按下“流水灯”确定按钮,单片机上的8个LED灯按流水灯形式亮一次。D.当按下“全灯闪烁”确定按钮,单片机上8个LED灯一齐闪烁三次。E.当按下停止按钮,程序退出。 2.硬件连接本设计通过“PL2303的USB转串口线”把“STC89C52RC单片机小系统模块”(附带8个LED灯)的串口与笔记本电脑的“USB口”相连!3.软件设计A.C51程序部分设计使用KEIL软件编写下位机程序,即写入到单片机的程序。程序代码如下:#include typedef unsigned char uchar;typedef unsigned int uint;/*IO端口定义*sbit LED1=P20;sbit LED2=P21;sbit LED3=P22;sbit LED4=P23;sbit LED5=P24;sbit LED6=P25;sbit LED7=P26;sbit LED8=P27;uchar RX_Byte=0;/*串口初始化*void StartUART( void ) /波特率4800 SCON = 0x50; TMOD = 0x20; TH1 = 0xFA; TL1 = 0xFA; PCON = 0x00; TR1 = 1;/*通过串口将数据发送给PC端*void TX_S_Byte(uchar TX_Byte) SBUF = TX_Byte; while( TI = 0 );/查询法 TI = 0; /*通过串口接收PC端的数据*void RX_S_Byte(void) while( RI = 0 );/查询法 RX_Byte = SBUF ; RI = 0; /*ms延时函数*void Delay(uint x)uint i,j;for(i=0;ix;i+)for(j=0;j110;j+);/*跑马灯函数*void loop_led(void)uchar i,j;for(i=0;i1;i+)P2=0xfe;Delay(500);for(j=0;j7;j+)P2=1;P2|=0x01;Delay(500);/*全灯闪烁*void shan(void)uchar i;for(i=0;i3;i+)P2=0;Delay(500);P2=0xff;Delay(500);/*主函数*void main(void) uchar TX_data=0x0f;/定义发送数据StartUART();/串口初始化P2=0xff;/8个LED灯初始化,全灭Delay(100);/延时100mswhile(1)/主循环RX_S_Byte();/接收串口数据switch(RX_Byte)/匹配数据,执行对应分支操作case 0x01: LED1=0;Delay(3000);LED1=1;break;/LED1灯亮3S熄灭case 0x02: LED2=0;Delay(3000);LED2=1;break; /LED2灯亮3S熄灭case 0x03: LED3=0;Delay(3000);LED3=1;break; /LED3灯亮3S熄灭case 0x04: LED4=0;Delay(3000);LED4=1;break; /LED4灯亮3S熄灭case 0x05: LED5=0;Delay(3000);LED5=1;break; /LED5灯亮3S熄灭case 0x06: LED6=0;Delay(3000);LED6=1;break; /LED6灯亮3S熄灭case 0x07: LED7=0;Delay(3000);LED7=1;break; /LED7灯亮3S熄灭case 0x08: LED8=0;Delay(3000);LED8=1;break; /LED8灯亮3S熄灭case 0x09: loop_led();P2=0xff;break;/8个LED灯执行流水灯一次后全灭case 0x0a: shan();break;/8个LED灯闪烁3次default: break;/乱码跳出B.LABVIEW程序部分设计1.在前面板添加以下几个控件:8个圆形指示灯、10个确定按钮(8个为LED按钮,2个为功能启动按钮)、VISA资源名称(新式I/OVISA资源名称)、停止按钮2.切换到程序框图窗口,先在上面添加以下两个函数:串口配置函数和串口关闭函数。其中串口配置函数中有几个配置端,分别需要配置串口的波特率、数据位数、奇偶校验位数、停止位数。注:需在函数连线端子右键菜单创建常量,此方法比自己创建常量方便且可靠性更强。然后按下图连接,那么,你的VI串口配置就完成了。注:“串口关闭函数”作用是退出主循环后关闭串口!3.添加一个While循环结构,作为主循环。把停止按钮连接到循环停止端,为真则退出循环。4.在循环结构内添加一个条件结构,在内添加一些函数(如下图),作为事件1即前面板上按下对应一个LED的按键,前面板和单片机模块上的LED灯亮3S自动熄灭。 其中涉及到一个“串口写入”函数(仪器IO串口VISA配置串口串口写入)。5.其它9个事件与事件1并列(无先后顺序,故不用事件结构,但用着也无妨)且类同,不再具体赘述,整

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论