




免费预览已结束,剩余13页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目 录 1 1 引言引言 1 1 1 问题的提出 1 1 2 国内外研究的现状 1 1 5 任务与分析 2 1 5 1 主要任务 2 1 5 2 分析 2 2 程序的主要功能程序的主要功能 2 2 1 参数设置功能 2 2 2 参数显示功能 2 2 3 打开串口功能 2 2 4 关闭串口功能 2 2 5 接收数据功能 3 2 6 发送数据功能 3 2 7 清空数据接收区和数据发送区功能 3 2 8 数据 汉字或字符等显示功能 3 3 程序运行平台程序运行平台 3 4 总体设计总体设计 4 5 5 程序类的说明程序类的说明 4 6 6 模块分析模块分析 6 6 1 系统初始化模块 2 6 2 参数设置和显示模块 6 6 3 发送数据模块 9 6 4 清空数据接收区和数据发送区模块 10 6 5 关闭主窗口模块 11 7 7 系统测试系统测试 13 7 1 测试 13 7 2 总结 18 8 8 结论结论 18 参考文献参考文献 19 基于串口通信的高级语言控制程序的设计 摘摘 要要 随着计算机的普及 计算机网络和多微机系统的广泛应用 尽管当今 USB 通信技术和以太网技术快速发展 然而串口通信技术始终以其连接简便 价格低廉 稳定可靠等优点 在计算机通信领域占有一席之地 MSCOmm 控 件是微软公司为了用户使用方便而提供的一种便捷的控制串口编程的解决方 案 本文主要介绍了如何利用 Microsoft Visual C 6 0 MSComm 控件的 串口通信方法 对程序的类进行了说明 分析了本程序各个模块怎样实现起 作用 此次设计以 MFC 来设计界面编制程序 同时利用 MSComm 控件通过串 口发送和接收数据 实现了串口通信 该串口通信控制程序具有通信参数设 置 通信参数显示 打开和关闭串口 接收数据 发送数据 清空发送区和 接收区数据的功能 关键词关键词 串口通信Microsoft Visual C 6 0 MFC MSComm 控件 1 1 引言引言 1 1 问题的提出问题的提出 串行通信 Serial Communication 在现代工业控制系统中一直有着及其重要的地 位 作为一种基本而又灵活方便的通信方式 它被广泛应用于 PC 与 PC 或者 PC 与 PLC 之 间的数据交换以及其他工业控制与自动控制中 它不仅没有因为时代的进步而遭淘汰 反而在规格上越来越完善 应用也越来越广泛 VC 是新一代面向对象的可视化开发工 具 提供了良好的界面设计能力 在 PC 机的串口通信方面有很强的功能 对于从事机 械行业的人来说 熟悉基于 RS232 串口通信的高级语言编程方法显得十分重要 1 2 国内外研究的现状国内外研究的现状 目前 计算机的串行通信应用十分广泛 串行接口已成为计算机的必需部件和 接口之一 由于其具有连接简单 使用灵活方便 数据传递可靠等优点 在工业监 控 数据采集和实时控制系统中得到了广泛应用 当今 实现串口通信的方法以及 第三方控件有很多 例如 PComm 控件 Windows API 函数等等 但是这几种方法都过 于复杂 对程序员要求较高 而且可靠性并不是很好 利用 Microsoft 推出的 MSComm 控件 使得串口通信的实现更为简单 可靠 随着当今信息技术的快速发展 通信已成为信息技术中的关键问题 尤其在控 制领域 以何种方式实现计算机与外围设备间既简单又可靠的通信 就显得特别重 要 由于串行通信具有实现简单 使用灵活方便 数据传输可靠等优点 因而广泛 应用于工业控制系统中 是计算机与外部设备进行数据通信时经常使用的方式之一 VC 是新一代面向对象的可视化开发工具 提供了良好的界面设计能力 在 PC 机 的串口通信方面有很强的功能 它具有功能强大 简便易用和代码执行速度快等特 点 在通信软件的开发中成为越来越多开发人员的首选工具 无论在工业控制中 PC 机和单片机之间的通信 还是在 2 台 Pc 机之间的串口通信 都具有相同的原理 只要掌握其中的通信本质 就能灵活地实现串口通信 串口控制 1 5 任务与分析任务与分析 1 5 1 主要任务主要任务 制定串口通信控制程序的总体构架 熟悉 VC 平台下的高级语言编程方法 2 熟悉基于 RS232 串口通信的高级语言编程方法 在同一台 PC 机上调试通过所编写的程序 编写设计说明书 1 份 1 5 2 分析分析 目前 Win32 中基于 VC 6 0 的常用串口通信程序一般可以用两种方法实现 利用 MSComm ActiveX 串行通信控件 使用 Win2dows API 通信函数 虽然在 Windows 下 Win32API 提供了使用文件操作方式的函数进行串口操作的方法 但是在编 程实现上还是比较复杂 Windows 平台先进的 ActiveX 技术使得对串口编程不再需要处 理烦琐的细节 利用已有的 AxtiveX 控件 只需要编写少量的代码 就可以轻松高效 地完成任务 因此程序员不需要花时间去了解复杂的 API 函数 只需要利用 MSComm 控 件就可实现串口编程 2 程序的主要功能程序的主要功能 2 1 参数设置功能参数设置功能 设置和修改串口通信参数 包括端口 时间 波特率 奇偶校验位 数据位 停 止位 2 2 参数显示功能参数显示功能 显示当前串口通信参数 包括端口号 波特率 时间 奇偶校验位 数据位 停止 位 点击参数设置按钮 弹出参数设置窗口 当完成设置后点击确定 子窗口隐藏 显示界面是数据发送和接收界面 2 3 打开串口功能打开串口功能 参数设置后 打开串口 在程序中设置了一个默认的 COM4 但是在参数设置窗口 可以设置串口 实现通信 2 4 关闭串口功能关闭串口功能 关闭串口 停止通信 2 5 接收数据功能接收数据功能 能够进行单个或多个数据的接收和显示 2 6 发送数据功能发送数据功能 能够进行单个或多个数据的发送 3 2 7 清空数据接收区和数据发送区功能清空数据接收区和数据发送区功能 清空发送区内所有数据 清空接收区内所有数据 2 8 任何数据 汉字或字符等显示功能任何数据 汉字或字符等显示功能 在接收区可显示任何数据 汉字或字符等 3 程序运行平台程序运行平台 Microsoft Visual C 6 0 具体操作如下 1 打开 VC 6 0 建立基于对话框的 MFC 应用程序 class1 如图 3 1 1 图 3 1 4 新建 MSComm 项目 选择 MFC 应用程序 应用程序类型选择 基于对话框 生 成的类中选择 CMSCommDlg 图 3 1 1 图 3 1 2 4 图 3 1 3 图 3 1 4 2 在项目中插入 MSComm 控件 5 图 3 2 3 加载 MSComm 控件 添加相应的源程序 加载必要的控件 图 3 3 1 图 3 3 2 4 编写程序代码 再编译 链接 调试 执行等 生成应用程序 6 4 总体设计总体设计 图 4 1 系 统总体框架图 5 程序类的说明 class CClass1Dlg public CDialog Construction public CClass1Dlg CWnd pParent NULL standard constructor void OpenPort Dialog Data AFX DATA CClass1Dlg enum IDD IDD CLASS1 DIALOG CMSCommm ctrlComm CStringm strEditRXData CStringm strEditTXData AFX DATA ClassWizard generated virtual function overrides AFX VIRTUAL CClass1Dlg 主 函 数 添 加 信 息 删 除 信 息 清 空 信 息 修 改 信 息 显 示 信 息 查 找 信 息 7 protected virtual void DoDataExchange CDataExchange pDX DDX DDV support AFX VIRTUAL Implementation protected HICON m hIcon Generated message map functions AFX MSG CClass1Dlg virtual BOOL OnInitDialog afx msg void OnSysCommand UINT nID LPARAM lParam afx msg void OnPaint afx msg HCURSOR OnQueryDragIcon afx msg void OnComm afx msg void OnButtonManualsend afx msg void OnSetting afx msg void Oncls afx msg void OnEnd DECLARE EVENTSINK MAP AFX MSG DECLARE MESSAGE MAP AFX INSERT LOCATION Microsoft Visual C will insert additional declarations immediately before the previous line endif defined AFX CLASS1DLG H B8BA98C1 5D58 47BE B664 E97E77EC5076 INCLUDED 6 模块分析 6 16 1 系统初始化模块系统初始化模块 系统的初始化模块命令代码如下 BOOL CClass1Dlg OnInitDialog CDialog OnInitDialog Add About menu item to system menu IDM ABOUTBOX must be in the system command range ASSERT IDM ABOUTBOX ASSERT IDM ABOUTBOX AppendMenu MF SEPARATOR pSysMenu AppendMenu MF STRING IDM ABOUTBOX strAboutMenu Set the icon for this dialog The framework does this automatically when the application s main window is not a dialog SetIcon m hIcon TRUE Set big icon SetIcon m hIcon FALSE Set small icon TODO Add extra initialization here m ctrlComm SetCommPort 4 选择 COM4 m ctrlComm SetInputMode 1 输入方式为二进制方式 m ctrlComm SetInBufferSize 1024 设置输入缓冲区大小 m ctrlComm SetOutBufferSize 512 设置输出缓冲区大小 波特率 9600 无校验 8 个数据位 1 个停止位 m ctrlComm SetSettings 9600 n 8 1 if m ctrlComm GetPortOpen m ctrlComm SetPortOpen TRUE 打开串口 m ctrlComm SetRThreshold 1 参数 1 表示每当串口接收缓冲区中有多于 或等于 1 个字符时将引发一个接收数据的 OnComm 事件 m ctrlComm SetInputLen 0 设置当前接收区数据长度为 0 m ctrlComm GetInput 先预读缓冲区以清除残留数据 return TRUE return TRUE unless you set the focus to a control 6 26 2 参数设置和显示模块参数设置和显示模块 单击主界面中的 参数设置 按钮 将弹出 参数设置 对话框 如图 7 1 所示 可以在该对话框中设置串口的通信参数 该命令的代码如下 void CClass1Dlg OnSetting TODO Add your control notification handler code here CSettingDlg setDlg 9 setDlg DoModal DoModal 是 CSettingDlg 类成员函数 通过调用该 函数将显示对话框 m ctrlComm GetInput 6 6 3 3 发送数据模块发送数据模块 单击主界面中的 发送数据 按钮 将把发送区的内容发送到串口调试助手的接 收区 如图 7 3 a b 所示 该命令的代码如下 void CClass1Dlg OnButtonManualsend TODO Add your control notification handler code here UpdateData TRUE 读取编辑框内容 m ctrlComm SetOutput COleVariant m strEditTXData 发送数据 6 6 4 4 清空数据接收区和数据发送区模块清空数据接收区和数据发送区模块 单击主界面中的 清除 按钮 将清空数据接收区和数据发送区内容 如图 7 6 所 示 该命令的代码如下 void CClass1Dlg Oncls TODO Add your control notification handler code here m strEditTXData T m strEditRXData T UpdateData FALSE 6 5 关闭主窗口模块关闭主窗口模块 单击主界面中的 结束 按钮 将关闭父窗口 如图 7 8 所示 该命令的代码如下 10 void CClass1Dlg OnEnd TODO Add your control notification handler code here CDialog OnOK 7 系统测试 7 1 测试测试 首先 直接双击 class1 文件夹下的 debug 子文件夹下的 class1 exe 运行文件 其次 按以下步骤进行测试 1 参数设置 图 11 7 1 参数设置 2 打开串口 图 7 2 打开串口 3 发送数据和接收数据界面 12 图 7 3 1 发送和接收数据 图 7 3 2 串口调试助手显示 13 4 发送数据和接收数据 图 7 4 1 串口调试助手发送和接收数据 图 7 4 2 接收和发送数据 5 清空接收区和发送区 14 图 7 5 清空接收区和发送区 6 关闭主窗口 点击结束 运行窗口关闭 返回到编辑窗口 如图 7 6 所示 图 7 6编辑窗口 15 7 2 总结总结 通过上述测试 本系统有良好的用户界面 在同一计算机上进行调试 实现了参数设置 与显示 通讯波特率 端口等可设置 接收和发送数据 发送与显示 清空数据接收区 和发送区内容的功能 可进行单个数据或成批数据传输 8 结论 本次课程设计 利用 Microsoft Visual C 6 0 平台 利用 MSComm 控
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 森林防灭火知识培训简讯课件
- 森林管护培训课件
- 森林消防知识培训
- 森林安全知识培训简报课件
- 2.1住宿革新乡宿品牌的打造与推广2024040376课件
- 2025年新闻媒体行业编辑岗位招聘笔试预测试题集
- 2025年PMP项目经理认证考试题库及答案
- 2025教师资格考试题库及答案
- 2025年建筑设计师招聘考试模拟题及解题技巧
- 2025年边防巡逻员招聘面试常见问题与答案
- 《分娩指导及助产技巧》课件
- 图像数据采集与处理方法-洞察分析
- 云南省昆明市官渡区2023-2024学年九年级上学期期末语文试卷(解析版)
- JTGT 3832-2018 公路工程预算定额 说明部分
- (新)旅行社部门设置及其职责
- 酒店会议服务标准流程作业指导书
- 网络攻防原理与技术 第3版 教案 -第12讲 网络防火墙
- 第一响应人应急培训
- 初中数学七年级上册思维导图
- 《认识感官》课件
- 工程伦理课程课件
评论
0/150
提交评论