




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程设计任务书课程设计任务书 学生姓名 学生姓名 李晓宁李晓宁 郁金华郁金华 彭亚斌彭亚斌 吴冰吴冰 专业班级专业班级 08820220882022 08820210882021 指导教师 指导教师 杨谊华杨谊华 工作单位 工作单位 南昌航空大学南昌航空大学 题题 目 目 基于 LabVIEW 的 PC 机与单片机串口通信 初始条件 初始条件 要求对单片机课程知识有所了解 同时熟悉 labview 软件的运用 同时了解基本的串口通信原理 指导教师签名 指导教师签名 年年 月月 日日 系主任 或责任教师 签名系主任 或责任教师 签名 年年 月月 日日 摘摘 要要 介绍一种基于 LabVIEW 7 0 语言的 AVR AT90 系列单片机与 PC 机的串口通信技术 在体温检测中得到应用 并取得良好效果 关键词关键词 LabVIEW 7 0 语言 语言 AVR AT90 系列中一片机 系列中一片机 PC 机 机 串口通信技术串口通信技术 Abstract We introduce the application of serial port communication technology based on PC machine with LabVIEW 7 0 language and AVR AT90 series SCM in body temperature examination And it has good effect Key words LabVIEw 7 0 language AVR AT90 series SCM PC machine Serial port communication technology 目目 录录 第一章 绪论 1 第二章 软件实现 2 2 1 LabVIEW 应用软件概述 2 2 2 LabVIEW 串口通信模块 2 2 3 LabVIEW 通信模块的属性 3 2 4 串口通信程序结构 3 第三章 程序设计 4 3 1 单片机通信的设计 4 3 2 PC 机通信的设计 4 3 3 输入显示程序设计 4 3 3 1 LED 显示流程图 6 3 4 单片机收发程序 7 3 5 PC 机收发程序 8 3 6 硬件连接 9 第四章 利用 LabVIEW 实现 PC 与单片机串口通信任务 12 4 1 建立新 VI 程序 12 4 2 程序前面板设计 12 4 3 框图程序设计 添加函数与连线 12 4 4 运行程序 15 致 谢 16 参考文献 17 第一章第一章 绪论绪论 在计算机分布式测控系统中 经常要利用串行通信方式进行数据通信 它包 括单片机和上位机之间 客户端和服务器之间以及客户端和客户端之间的通信 而单片机和上位机之间数据通信则是整个系统的基础 串行通信是一种常用的数据传输方法 虽然它的传输速度慢 但由于它占 用的通信线路少 成本低 容易实现等优点 在数据通信方式上仍占有重要地 位 目前 串口通信程序的开发 在 Windows 操作系统下一般用 VB VC VF Delphi 等等许多高级语言编写 当用 VB VC VF 开发串行通 信程序时 开发人员不得不面对非常烦琐的 API 函数编程 而 Delphi 没有自带 的串口通信控件 在它的帮助文档里也没有提及串口通信 这也给编程人员带 来许多不便 其他高级语言也是如此 可见 用文本语言编串口通信程序较为 复杂 花费的时间较长 利用 LabVIEW7 0 开发 PC 机与单片机的串口通信程 序是一种更为简捷的方法 第二章第二章 软件实现软件实现 2 1 LabVIEW 应用软件概述应用软件概述 LabVIEW 是一个工业标准的图形化开发环境 它结合了图形化编程方式的 高性能与灵活性以及专为测试测量与自动化控制应用设计的高端性能与配置功 能 能为数据采集 仪器控制 测量分析与数据显示等各种应用提供必要的开 发工具 因此 LabVIEW 通过降低应用系统开发时间与项目筹建成本帮助科学 家与工程师们提高工作效率 LabVIEW 被广泛应用于各种行业中 包括汽车 半导体 航空航天 交通运输 高校实验室 电信 生物医药与电子等无论在 哪个行业中 工程师与科学家们都可以使用 LabVIEW 创建功能强大的测试测 量与自动化控制系统 在产品开发中进行快速原型创建与仿真工作 在产品生 产过程中 工程师们也可以利用 LabVIEW 进行生产测试 监控各个产品生产 过程 总之 LabVIEW 可用于各行各业产品开发的阶段 由于 LabVIEW 能够 为用户提供简明 直观 易用的图形编程方式 能够将繁琐复杂的语言编程简 化成为以菜中提示方式选择功能 并且用线条将各种功能连接起来 十分省时 简便 与传统的编程语言比较 LabVIEW 图形编程方式能够节省 85 以上的程 序开发时间 其运行速度却几乎不受影响 体现出了极高的效率 使用虚拟仪 器产品 用户可以根据实际生产需要重新构筑新的仪器系统 例如 用户可以 将原有的带有 RS232 接口的仪器 VXI 总线仪器以及 GPIB 仪器通过计算机 联接在一起 组成各种各样新的仪器系统 由计算机进行统一管理和操作 1 2 2 2 LabVIEW 串口通信模块串口通信模块 在 LabVIEW 7 0 中 对串行口进行控制的方式通常有两种 一是利用 LabVIEW 功能模块的 lnstrument 1 0 VISA 子模块 二是直接利用 LabVIEW 功能模块 lnstrument 1 0 一 Serial 子模块 该程序库中包含进行串行通信操作的 一些功能模块这正符合本软件开发的需要 2 3 LabVIEW 通信模块的属性通信模块的属性 表 1 给出了本系统用到的几个通信模块的基本属性的描述 2 4 串口通信程序结构串口通信程序结构 本程序主要采用顺序结构实现 具体流程描述如下 1 初始化串口 据 实际需要选择并打开 com 口 打开串口时根据双方协议设置波特率 数据位 奇偶校验位 停止位 缓冲区大小等 如果打开串口无误 指小灯亮 否则提 小串口出错 并关闭串口 初始化成功后 退出第一桢 进入第二桢 2 输 入命令字到串口 因双方约定单片机输入的命令字为 一六进制的 55 ASC 码字符表示为 U 故在程序框图中输入的字串若用 ASC 码字符表示为 U 用 HI X 进制表示为 55 若写入的命令字有误 或写入串口模块打不开 出现 出错提小 重新要求打开串口 3 延时因涉及在操作系统的几层间传递信息 加之从主机发送命令到单片机 单片机判断为正确命令后返回数据给主机是需 要一定的时间的 故这一步进行延时等待 延时时间可视情祝而定 只要大于 单片机回送给主机的时间就行 具体执行时间可由 LabVIEW 工具菜中栏下的 advanced 下的 profile 来确定程序运行时间 若不加以延时程序会有出错提示 4 显示部分 主要程序代码如图二所示根据需要进行图形及表格显示 为能 准确计算被测信号的频率值 使前面板横轴表示的时间尽可能准确 在显示图 形 Graph IJU 用 bundle 进行处理 实践表明 通过这种处理方式 可使被测信 号的频率值误差在百分之三以内 在数组显示用一个重构数组函数将单片机送 来的数据构建成一个 10 行 8 列的数组 后利用两层 for 循环实现数组的行列显 示 第三章第三章 程序设计程序设计 设计思路 本设计分单片机和 PC 机两部分进行编程 在单片机方面 使用 汇编语言 用中断方式接收和发送数据 单片机有五个终端源 本设计使用串 行口中断请求标志 RI 或 TI 当串行口接收完一帧串行数据时置位 RI 或当发送 完一帧串行数据时置位 TI 向 CPU 申请中断 在 PC 机方面 PC 机数据的接收和 发送采用 VisualBasic 中的通讯控件 MSC0MM 设计中使用 LED 数码管显示发送或接收到数据 使用 46 的矩阵式键盘发 送数据 3 13 1 单片机通信的设计单片机通信的设计 单片机完成通信数据的收发功能主要分为 2 个步骤 串口波特率的设定 通常使用单片机的串口时 选用的晶振比较固定 常用于何微机通信的波 特率也相对固定 本设计设定通讯波特率为 9600 串口初始化 串口初始化主要是设置产生波特率的定时器 1 串行口控制和串口的中断 控制 具体步骤如下 确定定时器 1 的工作方式 写 TMOD 寄存器 计算定时器 1 的初值 装载 TH1 TL1 启动定时器 1 写 TCON 中的 TR1 位 确定串口的控制 写 SCON 使用串口中断方式时 开 CPU 和中断源 写 IE 寄存器 本设计设定定时器 T1 工作在模式 2 串行口工作于方式 3 3 23 2 PCPC 机通信的设计机通信的设计 MSC0MM 控件不需要用户对通讯底层进行操作 它有事件驱动通讯和查询通 讯两种方式 本设计中采用事件驱动方式 即接收缓冲区每接受规定字符数产 生一次 MSCOMM OnC0Mm 事件 发送时设置不产生该事件 3 3 输入显示程序设计输入显示程序设计 设计中使用 7 段 LED 数码管显示发送或接收到数据 使用 46 的矩阵式键 盘发送数据 程序可分为三个模块 键输入模块 扫描键盘 读取一次键盘并将键值存入键值缓冲单元 显示模块 将显示单元的内容在显示器上动态显示 主程序 调用键输入模块和显示模块 键盘扫描中 向列扫描码地址逐列输出低电平 然后从行码地址读回 如 果有键按下 则相应行的地址应为低 如果无键按下 由于上拉的作用 行码 为高 这样就可以通过输出的列码和读取的行码来判断按下的是什么键了 由 于在建的闭合和断开过程中有一个抖动期 抖动时间长短和开关的机械特性有 关 一般为 5 10ms 为了保证 CPU 对键的闭合做一次且仅一次的处理 在编程 时要有一定的延时 本设计设定了 30ms 的延时来防止按键抖动 程序框图如下 主程序框图 读键输入子程序框图 N Y Y N N Y 开始 键值转换为显示数据 读取键值 显示缓冲区初始化 LED 显示 有键输入 开始 输出列扫描信号 读入行信号 初始化地址参数 列扫描信号复位 返回 按照行列计算键值 该列有键输入 6 列扫描完 LED 显示流程图 否 是 查表得键码 等待按键释放 返回 开始 关所有位显示 初始化显示参数 位选通信号移位 输出段码数据 取显示数据 延时 输出位选通信号 指向下一个显示数据 返回 8 位完成 3 4 单片机收发程序单片机收发程序 单片机发送数据流程图 单片机接收数据流程图 否 是 主程序开始 在 PC 机屏幕上显示按下的字符 读接收寄存器内容 串行口初始化 向 PC 机发送字符 单片机小键盘按下 设定波特率 LED 初始化 LCD 显示按下的字符 返回 主程序开始 串行口初始化 LED 初始化 开中断 清接收中断标志 R1 接收 PC 机发来数据 开中断 恢复现场 返回 保护现场 接受正确 3 5 PC 机收发程序机收发程序 PC 机发送数据流程图 PC 机接收数据流程图 否 否 是 是 串口初始化 在文本框中显示数据 等待控制命令 串口初始化 打开串口接收数据 接收数据的事件触发 数据在 LED 数码管上显示 打开串口发送数据 等待控制命令 发送数据的事件触发 显示正确显示正确 3 63 6 硬件连接硬件连接 图一 图二 图三 第四章第四章 利用利用 LabVIEWLabVIEW 实现实现 PCPC 与单片机串口通信与单片机串口通信 任务任务 4 1 4 1 建立新建立新 VIVI 程序程序 启动 NI LabVIEW 程序 选择新建 New 选项中的 VI 项 建立一个新 VI 程序 4 4 2 2 程序前面板设计 程序前面板设计 在前面板设计区空白处单击鼠标右键 显示控件选板 Controls 1 添加一个字符串输入控件 控件 Controls 新式 Modern 字符串 与路径 String Path 字符串输入控件 String Control 将标签改为 发送数据 十六进制 在该控件上单击鼠标右键 在弹出的快捷菜单中选 择 十六进制显示 Hex Display 2 添加一个字符串显示控件 控件 Controls 新式 Modern 字符串 与路径 String Path 字符串显示控件 String Indicator 将标签改 为 返回数据 十六进制 在该控件上单击鼠标右键 在弹出的快捷菜单中 选择 十六进制显示 Hex Display 3 添加一个字符显示控件 控件 Controls 新式 Modern 字符串与 路径 String Path 字符串显示控件 String Indicator 将标签改为 通信状态 4 添加一个串口资源检测控件 控件 Controls 新式 Modern I O VISA 资源名称 VISA resource name 单击控件箭头 选择串口号 如 ASRL1 或 COM1 5 添加一个确定按钮控件 控件 Controls 新式 Modern 布尔 Boolean 确定按钮 OK Butoon 将标题改为 发送 6 添加一个停止按钮控件 控件 Controls 新式 Modern 布尔 Boolean 停止按钮 Stop Butoon 将标题改为 关闭 设计的程序前面板如图 4 2 1 所示 4 4 3 3 框图程序设计 框图程序设计 添加函数与连线添加函数与连线 进入框图程序设计界面 在设计区的空白处单击鼠标右键 显示函数选板 Functions 1 添加一个配置串口函数 编程 Programming 仪器 I O Instrument I O 串口 Serial VISA 配置串口 VISA Configure Serial Port 2 添加 4 个数值常量 编程 Programming 数值 Numeric 数值 常量 Numeric Constant 值分别为 4800 波特率 8 数据位 0 校验 位 无 1 停止位 3 添加一个 While 循环结构 编程 Programming 结构 Structures While 循环 While Loop 图 4 2 1 程序前面板 4 添加一个关闭串口函数 编程 Programming 仪器 I O Instrument I O 串口 Serial VISA 关闭 VISA Close 5 在While 循环结构中添加一个条件结构 编程 Programming 结构 Structures 条件结构 Case Structure 6 在条件结构中添加一个顺序结构 编程 Programming 结构 Structures 层叠式顺序结构 Stacked Sequence Structure 将其帧 Frame 设置为 4 个 序号 0 3 设置方法 选中 Stacked Sequence Structures 上边框 单击鼠标右键 执行在后面添加帧 Add Frame After 选项 3 次 7 在顺序结构的 Frame 0 中添加一个串口写入函数 编程 Programming 仪器 I O Instrument I O 串口 Serial VISA 写入 VISA Write 8 将控件 发送数据 十六进制 的图标拖入顺序结构的 Frame 0 中 分 别将确定按钮 OK Button 停止按钮 Stop Buffon 的图标拖入循环结构 中 9 将 VISA 资源名称 VISA resource name 函数的输出端口分别与串口配 置 VISA Configure Serial Port 函数 串口写入 VISA Write 函数 在 顺序结构 Frame 0 中 串口关闭 VISA Close 函数的输入端口 VISA 资源名 称 VISA resource name 相连 10 将数值常量4800 8 0 1 分别与 VISA 配置串口 VISA Configure Serial Port 函数的输入端口波特率 baud rate 数据位 data bits 奇 偶 parity 停止位 stop bits 相连 11 右键选择循环结构的条件端子 设置为 真时停止 Stop if True 图标变为 将停止按钮 Stop Buffon 与循环结构的条件端子相连 12 将确定按钮 OK Button 与条件结构的选择端子 相连 13 将函数 发送数据 十六进制 与串口写入 VISA Write 函数的输入 端口写入缓冲区 write buffer 相连 连接好的框图程序如图 4 3 1 所示 14 在顺序结构的 Frame 1 中添加一个时钟函数 编程 Programming 定时 Timing 等待下一个整数倍毫秒 Wait Until Next ms Multiple 15 在顺序结构的 Frame 1 中添加一个数值常量 编程 Programming 数值 Numeric 数值常量 Numeric Constant 将值改为 200 时钟频率 值 16 在顺序结构的Frame 1 中将数值常量 值为200 与等待下一个整数倍毫 秒 Wait Until Next ms Multiple 函数的输入端口毫秒倍数 millisecond multiple 相连 连接好的框图程序如图 4 3 2 所示 图 4 3 1 框图程序连线 1 图 4 3 2 框图程序连线 2 17 在顺序结构的 Frame 2 中 添加一个串口字节数函数 编程 Programming 仪器 I O Instrument I O 串口 Serial VISA 串口字节数 VISA Bytes at Serial Port 标签为 Property Node 18 在顺序结构的 Frame 2 中 添加一个串口读取函数 编程 Programming 仪器 I O Instrument I O 串口 Serial VISA 读 取 VISA Read 19 将控件 返回数据 十六进制 的图标拖入顺序结构的 Frame 2 中 20 将 VISA 串口字节数 VISA Bytes at Serial Port 函数的输出端口 VISA 资源名称 VISA resource name 与 VISA 读取 VISA Read 函数的输入 端口 VISA 资源名称 VISA resource name 相连 21 将 VISA 串口字节数 VISA Bytes at Serial Port 函数的输出端口 Number of bytes at Serial port 与串口读取 VISA Read 函数的输入端口 字节总数 byte count 相连 22 将 VISA 读取 VISA Read 函数的输出端口读取缓冲区 read buffer 与控件 返回数据 十六进制 的输入端口相连 连接好的框图程序如图 4 3 3 所示 图 4 3 3 框图程序连线 3 23 在顺序结构的 Frame 3 中 添加两个局部变量 编程 Programming 结构 Structures 局部变量 Local Variable 选择局部变量 单击鼠标右键 在弹出的快捷菜单的 Select Item 选项下 为局部变量分别选择对象 返回数据 十六进制 和 发送数据 十六进制 将其读写属性设置为 转换为读取 Change To Read 24 在顺序结构的 Frame 3 中 添加一个比较函数 编程 Programming 比较 Comparison 等于 Equal 25 在顺序结构的 Frame 3 中 添加一个条件结构 编程 Programming 结构 Structures 条件结构 Case Structure 26 将局部变量 返回数据 十六进制 和 发送数据 十六进制 分别 与比较函数等于 Equal 的输入端口 x 和 y 相连 27 将比较函数等于 Equal 的输出端口 x y 与条件结构的选择端子 相连 28 在条件结构的真 True 选项中 添加一个字符串常量 编程 Programming 字符串 String 字符串常量 String Constant 将 其值改为 通信正常 29 将控件 通信状态 拖入条件结构中 30 将字符串常量 通信正常 与控件 通信状态 的输入端口相连 31 在条件结构的假 False 选项中 添加一个字符串常量 将其值改为 通信异常 32 在条件结构的假 False 选项中 添加一个局部变量 为局部变量选择 对象 通信状态 属性默认为 写 33 将字符串常量
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 院子教学课件
- 文库发布:中医课程
- 洗车美容教学课件
- 泡绵路轨式平切机项目可行性研究报告评审方案设计2025年发改委立项
- 介入双语教学课件
- 教育类课件教学课件
- 课件教学设计配套
- 【龙岩】2025年福建龙岩上杭县事业单位公开招聘工作人员119人笔试历年典型考题及考点剖析附带答案详解
- 易错点11权利与义务-备战2021年中考道德与法治一轮复习易错题
- 旅游直播活动方案
- 装修改造工程施工总平面图6
- 教师的职业生涯规划与专业发展课件
- (完整版)标书密封条格式word
- 《关于汉语规范化的意义探析》
- 公司一年完税证明模板
- [湖南]5万吨净水厂给排水工艺全套图纸(附170页计算说明)
- DB33T 1203-2020 建设工程施工扬尘控制技术标准
- 外国文学名著导读
- 脑卒中患者血压管理
- 如何制作OruxMaps离线地图
- 校企汽修专业战略合作协议书
评论
0/150
提交评论