




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 / 13 串口通讯实验报告 基于 Labview 的串行通信接口实验报告 一、实验目的 通过软件 Labview 编写前面板和程序框图,通过该面板实现计算机与外围设备的串口通信。设置好通信端口,波特率等参数后,在输入控件中输入数据字符,当点击发送按钮时,下位机发生相应的变化。前面板如下图所示。 二、实验器材 PC机一台,单片机开发箱, 220V交流电源, Labview软件,导线若干等。 三、实验原理 首先是要确认仪器选择的通信模式是串口通信模式, 串口通信是按位发送和接收数据。现在的仪器一般都至少有二种通信模式,一种是 RS232,一种是 GPIB。我们使用RS 232接口。 中的串口应用 Labview在仪器 I/O的串口中提供了大量串口相关的VI或软件进行连接的机 制,所以实现串口通信,可以使用其本身提供的串口VI。如下图所示。 此模板共有 8 个操作函数,其中,前 4 个函数在串口通信中经常应用。下面简单介绍这 4 个常用的 VISA 串口2 / 13 函数。 1) VISA 配置串口 设定波特率、数据位、停止位、奇偶校验位、 流控制、超时处理、终止符和终止符使能等参数,将 VISA 资源名称指定的串口按特定设置初始化。 2) VISA写入 将“写入缓冲区”的数据写入 VISA资源名称指定的串口。 注 意: VISA 通信接收或发送数据都是字符串。若接收或发送的字符串是“ 1、 2、 3、 4”,在内存中存储的是 ASCII,因为“ 1” 31、“ 2” 32、“ 3” 33和“ 4” 34,所以串口缓存接收 /发送的数据实际是 16进制的 31、 32、 33、 34。3) VISA读取 从 VISA资源名称所指定的串口中读取 指定字节的数据,并将 数据返回至读取缓冲区。有时不知道串口缓存区有多少字节的数据,以防字节总数设置错误,这时字节总数可以用属性节点获取,即把属性节点输出端子接入“ VISA 读取”节点的输入端子“字节总数”。 4) VISA关闭 关闭 VISA资源名称指定的串口会话句柄或事件对象。 这四个 VI 的各具体端子如下图: 232C数据传输 RS-232C 是以位串行方式按位传输数据的。 7 位3 / 13 ASCII 码数据的连续传送由最低有效数字位开始,而以奇偶校验位结束。应当指出 , RS-232C 标准接口并不限于 ASCII 数据,事实上还可有 5 到 8 个数据位,后加一奇偶校验位,并有 1 或 2 位停止位。 RS-232C 采用负逻辑。逻辑 1 电平是在 -15V 到 -5V 范围内,逻辑 0 电平则在 +5V 到 +15V 范围内。 RS-232C 进行数据传输的最高速率为 20KB/S,通信距离最长为 15m。 3.注意事项 1)串口资源被占用的问题。有时候所选用的串口被其他程序占用,因为同一个串口不能被二个程序同时使用,所以程序运行时会报错,解决的方法是关掉其它程序即 可。 2)使用 LabVIEW发送数据的问题。如果下位机接收的是字符串数据类型的话,直接用 VISA 写入对应的字符串就行了,现在的仪器一般都是接收字符串的,所以可以直接使用。如果下位机接收的是数值型数据的话,就需要转换一下。其中数值型又是十进制和十六进制二种用得比较多,这二种数据间相互转换一下就行了,其实是一样的。由于在LabVIEW 中字符串直接有十六进制的显示方式,所以发送十六进制的数据比较方便。由于转换目标的数据类型是十六进制,要想十六进制显示的字符串跟正常显示的字符串一样,这个正常显示的字符串 必须都是十六进制的字符,即只能由0-9,A-F 这十六个字母中的字母组合而成。否则就没办法使4 / 13 二种显示方式的字符串一致了。 4.程序框图运行的流程简介 四、实验步骤 1.打开桌面上的 Labview,新建一个 VI,此时我们可以看到前面板和程序框图的界面。 2.在程序框图中添加 VISA 配置串口 VI,按照该 VI的各端口的含义创建输入控件,设定 I/O 口、波特率、数据位、停止位、奇偶校验位、流控制等参数,然后将创建的控件和 VI连接起来。 3.在程序框图中添加 VISA写入 VI,此时添加一个分支子程序框,分支子程序框是用来放置不同分支对应的程序,将写入 VI 放在“真”这一个分支里。同时创建输入控件,与相应的端口连接起来,在分支子程序框上创建一个发送按钮。 4.在程序框图中添加 VISA清空 I/O 缓冲区 VI,同样使用分支子程序框,将其放在“真”这一个分支,在分支子程序框上创建一个关闭按钮。 5.最后添加一个错误输出的 VI。 6.将各个 VI的输入输出的端口连接起来。注意,在分支子程序框将相应的“真”分支连接一起,“假”分支连接在一起。完成后的 程序框图如下图所示。 7.保存前面板的面板图和后面板的程序框图。 5 / 13 8.调试程序。此时借助虚拟串口和串口小助手,将数据从 Labview的前面板窗口中发送到串口小助手中,发送之前应设置好相应的参数,如 COM 口、波特率、 数据位等等。显示结果如下图所示。 以十六进制的形式发送 华南农业大学 实验报告 -目录 - 1 、 实 验 任 务 和 目的 . - 1 - 2 、 实 验 准备 . - 1 - 3 、 实 验 步骤 . - 1 - 4、实验分析与总结 . - 1 - 6 / 13 、分析 . - 1 - 、总结 . - 3 - 1、 实验任务和目的 了解串行通信的背景知识后,通过三线制制作一条串口通信线,并编程实现两台 PC 间通过 RS-232C 通信。要求两台 PC 机能进行实时的字符通信,并了解工业自动化控制中的基本通信方式。 2、 实验准备 1、检查 PC 是否具有串行通信接口,并按其针脚类准备一条串口通信线缆。 2、串口包的安装 ,下载并解压,将复制到 bin 目录下;将复制到 lib;把也同样拷贝到 lib 目录下,再将上面提到的文件放到 JRE相应的目录下就可以了。 3、实验步骤 1、将实验所需 RS-232缆线准备好,并将 JAVA串口包复制到相应地目录下。 2、查找有关串口通信的书籍以及在网上查找相应地串口通信代码。 3、用 JAVA 编程软件7 / 13 JCreator编写代码。 4、实验分析与总结 、分析 、对串口读写之前需要先打开一个串口并检测串口是否被占用: public void open /打开串口以及输入输出流 recieve=false;tryserialPort=;catch;try ; catch;try outputStream=; inputStream=; catch;try ); catch ; 、监听串口是否有新数据读入,并将 其 转 换 成 字 符 串 , 并 加 进 缓 存 public class serialPortListener implements SerialPortEventListener /监听是否有新数据读入的监听器 public void serialEvent if=_AVAILABLE) /若有新数据传来,则将其转换成字符串,并加进缓存 String readResult; byte readBuffer=new byte20; try while0); catch ; ; readResult=; readResult=new String; buffer=new StringBuffer; recieve=true;/然后置新数据读入标识为真 、关闭8 / 13 串口函数: public void close try ; ;catch; 完整运行程序如图所示: 图 1 、总结 通过本次串口实验,我对串口通信的知识了解的更透彻,这是在刚开始对串口通信知识不了解的情况下就编程而造成许多错误之后才得到的结果。在网上查找资料的时候也接触到了不少其他的编程语言例如 VB, delphi, C#等,这也让我对这些从没有学过的 语言有所了解,我想这些知识对以后的实验工作都有帮助。 实验十 单片机串行口与 PC机通讯实验报告 实验目的 1. 掌握串行口工作方式的程序设计,掌握单片机通讯的编制; 2. 了解实现串行通讯的硬环境,数据格式的协议,数据交换的协议; 3. 了解 PC机通讯的基本要求。 实验器材 1. G6W仿真器 2. MCS 51实验板 3. PC 机 一台 一台 一台 实验内容及要求 利用 8051 单 片机串行口,实现与 PC机通讯。 本实验实现以下功能,将从实验板键盘上键入的字9 / 13 符或数字显示到 PC机显示器上,再将 PC机所接收的字符发送回单片机,并在实验板的 LED上显示出来。 实验步骤 1. 编写单片机发送和接收程序,并进行汇编调试。 2. 运行 PC机通讯软件“”,将单片机和 PC机的波特率均设定 为 1200。 3. 运行单片机发送程序,按下不同按键, 检查 PC机所接收的字符是否与发送的字符相同。 4. 将 PC 机所接收的字符发送给单片 机,与此同时运行单片机接受程序,检 查实验板 LED数码管所显示的字符是否与 PC机发送的字符相同。 实验框图 源程序代码: ORG 0000H AJMP START ORG 0023H AJMP SERVE ORG 0050H START: MOV 41H,#0H ;对几个存放地址进行初始化 MOV 42H,#0H MOV 43H,#0H MOV 44H,#0H MOV SCON,#00H;初始化串行口控制寄存器,设 置其为方式 0 LCALL DISPLAY;初始化显示 10 / 13 MOV TMOD,#20H ;设置为定时器 0,模式选用 2 MOV TL1, #0E6H;设置 1200的波特率 MOV TH1, #0E6H SETB TR1 ;开定时器 MOV SCON,#50H;选用方式 1,允许接收控制 SETB ES SETB EA ;开中断 LOOP: ACALL SOUT ;键盘扫描并发送,等待中断 SJMP LOOP SERVE JNB RI,SEND ;判断是发送中断还是接收中断,若为发送中 断则调用 ACALL SIN ;发送子程序,否则调用接收子程序 RETI SEND: C LR TI;发送子程序 RETI SIN: CLR RI ;接受子程序 MOV SCON, #00H MOV A, SBUF ;接收数据 LCALL XS ;调用显示子程序 RETI 子程序: SOUT: CLR TI;清发送中 断标志位 LCALL KEY ;调用判断按键是否按下子程序 MOV 11 / 13 A,R0 ;将按键对应的数字存入 A MOV SBUF,A;输出按键数字给锁存 RET KEY: MOV P1,#0FFH ;将 P1设置为输入口 MOV A, P1 CPL A;将 A 内值取反 ANL A, #0FFH JZKEY ;将 A 与 FFH 与后判断是否为 0,若为 0 则表示无 按键按下跳回 KEY LCALL D;调用延时子程序消抖 MOV A, P1CPL AANL A, #0FFHJZ KEYMOV B,A ;判断有按键按下,将值赋给 B KEY1: MOV A, P1CPL AANL A,#0FFHJNZ KEY1LCALL DMOV A,BJB ,PKEY1;依次判断 A内数据每个位是否为 1,并跳 JB ,PKEY2 ;转到相对应位的子程序JB ,PKEY3JB ,PKEY4JB ,PKEY5JB ,PKEY6JB ,PKEY7JB ,PKEY8 EKEY: RET PKEY1: AJMP K1 PKEY2: AJMP K2 PKEY3: AJMP K3 PKEY4: AJMP K4 PKEY5: AJMP K5 PKEY6: AJMP K6 PKEY7: AJMP K7 PKEY8: AJMP K8 K1: MOV R0,#01H ;将相应的数据赋给 R0 后跳转到EKEYSJMP EKEY K2: MOV R0,#02HSJMP EKEY K3: MOV R0,#03HSJMP EKEY K4: MOV R0,#04HSJMP EKEY K5: MOV 12 / 13 R0,#05HSJMP EKEY K6: MOV R0,#06H SJMP EKEY K7: MOV R0, #07HSJMP EKEY K8: MOV R0, #08HSJMP EKEY XS:MOV SCON,#00H ;显示子程序,采用同步移位寄存器 CLR TI MOV DPTR, #TAB MOVC A,A+DPTR;将相应数值的数码管显示数值送入SBUF MOV R5,#04H;共四位需要显示 MOV 41H, A MOV R0, #41H DISPLAY1: MOV A,R0 MOV SBUF, A JNB TI,$ ;是否传完了 CLR TI ;清除中断标志位 INC R0 DJNZ R5, DISPLAY1 MOV SCON, #50H RET D:;延时子程序 MOV R7, #10H DELAY1: MOV R6, #0FFH DELAY2: DJNZ R6, DELAY2 DJNZ R7, DELAY1 RET TAB: DB 0BBH, 09H, 0EAH, 6BH DB 59H, 73H, 0F3H, 0BH DB 0FBH 本次实验中解决了如何判断数据是发送还是接收的问题和如何判断数据是否发
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 美容外科技术试题及答案
- 辅警接处警培训课件
- 辅警医护岗知识培训内容课件
- 建设银行2025鹤壁市秋招群面案例总结模板
- 建设银行2025厦门市秋招笔试性格测试题专练及答案
- 农业银行2025曲靖市笔试英文行测高频题含答案
- 农业银行2025晋中市秋招半结构化面试题库及参考答案
- 2025行业技术革新趋势预测
- 农业银行2025周口市秋招半结构化面试题库及参考答案
- 农业银行2025朝阳市笔试英文行测高频题含答案
- 项目部商务管理办法
- 2025时政考试题及答案
- 2025重庆医科大学附属第一医院(编制外)招聘18人考试参考试题及答案解析
- 精麻药品培训知识课件
- 2025-2026学年人教版(2024)小学美术一年级上册教学计划及进度表
- 超市安全知识培训课件模板
- 2025年司法考试题库(附答案)
- 医院不良事件培训课件
- 仪表工安全基础知识培训课件
- 光电检测技术及应用 周秀云
- 环境反应工程导论课件
评论
0/150
提交评论