已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验一 应用程序的建立以及读卡功能的实现实验目的:设计开发一支可连接实验系统平台并且可以做读卡操作的应用程序。掌握使用 DLL 的技能,通过调用 DLL 里面的函数,开发出实际应用程序软件,满足实际工程应用的需要。实验内容:1、 使用 VB 6.0 开发软件,设计开发出如图 10.1 应用程序界面:图 10.12 、 编写代码,运行程序能达到实验目的。基本原理:VB 语言编程规范;DLL 调用规范;实验步骤:一、启动 VB 6.0 开发软件平台启动界面如图 10.2 ,图 10.2在启动界面里面选择标准 EXE 开始新建一个应用程序,进入窗体界面,在自己选定或新 建 的 文 件 夹 里 面 保 存 窗 体 , 窗 体 取 名 为 ISO15693_Reader.frm , 工 程 名 为ISO15693_Reader.vbp,窗体界面如 图 10.3 :图 10.3在右边属性栏里面命名窗体名称,修改如图 10.4 里面的两项属性,命名窗体为ISO15693_Reader 窗体。图 10.4现在开始添加界面内容,首先添加 ComboBox 控件,选中左边通用控件栏里面的ComboBox 控件按下鼠标选定,然后在窗体左上方用按住鼠标左键勾画出来,修改右边属性栏里面的名称为 cmdCOM,Text 项为 COM1,如图 10.5 所示:图 10.5然后添加 CommandButton ,选中左边通用控件栏里面的 CommandButton 控件按下鼠标选定,方法类似添加 ComboBox 控件,添加到窗体上,修改右边属性栏里面的名称为cmdOpen,Caption 项为 Open,如图 10.6 所示:图 10.6然后再添加标题为 Close button 的 CommandButton ,其方法同添加 Open button,修改右边属性栏里面的名称为 cmdClose,Caption 项为 Close。然后添加 Commands Frame,选中左边通用控件栏里面的 Frame 控件按下鼠标选定,方法类似添加 ComboBox 控件,添加到窗体上,修改右边属性栏里面的名称为 frmCMD,Caption 项为 Commands,如图 10.7 所示:图 10.7然后再添加命名为 Inventory 的 OptionButton ,选中左边通用控件栏里面的OptionButton 控件按下鼠标选定,方法类似添加 ComboBox 控件,添加到窗体上,修改右边属性栏里面的名称为 optCMD,Caption 项为 Inventory,Value 项为 True,如图 10.8 所示:图 10.8然后再添加标题为 Run button 的 CommandButton ,其方法同添加 Open button,修改右边属性栏里面的名称为 cmdRun,Caption 项为 Run,如图 10.9 所示:图 10.9然后再添加标题为 tags info 的 Frame ,其方法同添加标题为 Commands 的 Frame,修改右边属性栏里面的名称为 frmTagInf,Caption 项为 tags info,如图 10.10 所示:图 10.10然后添加标题为 listTag 的 ListBox, 选中左边通用控件栏里面的 ListBox 控件按下鼠标选定, 方法类似添加 ComboBox 控件, 添加到窗体上, 修改右边属性栏里面的名称为 listTag,如图 10.11 所示:图 10.11然后再添加标题为 Output info 的 Frame ,其方法同添加标题为 Commands 的 Frame,修改右边属性栏里面的名称为 frmOutInf,Caption 项为 Output info,如图 10.12 所示:图 10.12然后再添加标题为 txtInfo 的 TextBox , 选中左边通用控件栏里面的 TextBox 控件按下鼠标选定,方法类似添加 ComboBox 控件,添加到窗体上,修改右边属性栏里面的名称为txtInfo,如图 10.13 所示:图 10.13至此,程序界面的工作,已经设计完成,下面开始代码部分的工作。二、编写实验代码首先,把ReadDLL.dll 动态链接库文件复制到系统 WINDOWSsystem32 目录里面。然后在 VB 开发软件平台里面,添加 Module,修改右边属性栏里面的名称为 mdlDLL,并保存为 mdlDLL.bas 文件,如图 10.14 所示:图 10.14在打开的 mdlDLL.bas 文件里面,声明需要用到动态链接库里面的相应函数。1 、Public Declare Function SetCom Lib ReadDLL.dll (ByVal m_sPort As String, ByVal BaudRate As Long, ByVal Databit As Long, ByVal Parity As String, ByVal stopbit As String) As Long函数名: (设置串口)SetCom功能:打开串口,可以设置串口号、波特率、数据位、奇偶校验位、停止位等。参数说明:Input:m_sPor: 端口号BaudRate:波特率Databite: 数据位Parity : 奇偶校验stopbit : 停止位Output :无2 、Public Declare Function CloseCom Lib ReadDLL.dll () As Long函数名: (关闭串口)CloseCom功能:关闭串口。参数说明:Input:无Output :00:串口被正确关闭,01:关闭串口出现错误3 、Public Declare Function Inventory Lib ReadDLL.dll (ByRef tagUID As Byte, ByVal flag AsByte, ByRef nTagCount As Long) As Long函数名: (读 UID )Inventory功能:读取单个或多个 TAG 的 UID 数据。参数说明:Input:flag : 标志位设定,07 表示读取多个 TAG,27 表示只读取单个 TAG.Tagcount: 标签个数。tagUID: 标签 Uid,按顺序排里,先高位,后低位。均为 16 进制。如: tagUID 0-7 =“E0 05 76 38 26 00 07 00”Output :00,表示有标签,01,表示无标签,文件如图 10.15 所示:图 10.15声明好需要用的函数后,就可以添加相应的动作事件,同时定义相关的变量和数组。用鼠标左键双击窗体界面,进入窗体代码文件,如图 10.16:图 10.16首先定义一个变量数组,用于接收存放读到的电子标签 UID 数据,定义如下:Dim retByte(1000) As Byte (定义 1000 个字节的空间存放电子标签 UID 的数据。)然后,添加产生窗体时,需要进行一些初始化工作的代码,如下:Private Sub Form_Load()Dim i As IntegerFor i = 1 To 15cmdCOM.AddItem COM & iNextEnd Sub此段代码其作用是在程序生产窗体时,ComboBox 下生产对应于串口号的 15 个串口编号,以供选择相应的串口。程序文件如图 10.17:图 10.17然后点击右边工程下窗体里面的窗体文件, 回到窗体界面, 用鼠标左键双击窗体界面上的 Open button,进入编写 cmdOpen_Click() 过程的代码。Private Sub cmdOpen_Click()Dim ret As Integerret = SetCom(cmdCOM.Text, 115200, 8, NONE, 1)If ret = 0 ThencmdOpen.Enabled = FalseEnd IfEnd Sub代码首先定义一个整型变量:ret 用于保存设置串口 SetCom 函数的返回值。设置串口为当前选择的端口号,波特率为 115200,数据位为 8,无奇偶校验,1 位停止位。如果此串口打开正确,Open button 变成无效状态,在关闭这个串口之前,不能再次打开其它的串口。此时代码文件如图 10.18 所示:图 10.18同添加 Open button 的代码,按同样的方法添加 Close button 的代码如下:Private Sub cmdClose_Click()Dim ret As Integerret = CloseCom()If ret = 0 ThencmdOpen.Enabled = TrueEnd IfEnd Sub关闭串口:如果关闭成功,Open button 变成有效状态,此时可以再次打开串口。同样的方法添加 Run button 的代码如下:Private Sub cmdRun_Click()Dim lCount As LongDim strInfo As StringDim strLog As StringDim ret As LongDim i, j, k As IntegerstrLog = txtInfo.Text = If optCMD.Value = True ThenlistTag.Clearret = Inventory(retByte(0), 7, lCount)If ret = 0 ThenFor k = 0 To lCount - 1strInfo = For j = 0 To 7strInfo = strInfo & Format(Hex(retByte(k * 8 + j), 00)NextlistTag.AddItem strInfoNextEnd IfstrLog = Convert(ret)End IftxtInfo.Text = strLogEnd Sub首先定义了几个程序运行需要的变量:lCount 用来存储读到的电子标签数量的数据;strInfo 用来存储读到的电子标签 UID 的字符串数据;strLog 用来存储表示读电子标签 UID 操作状态的字符串数据;ret 用来存储表示读电子标签 UID 操作状态的长整型数据;i, j, k 为临时计数变量;然后把字符串 strLog 里面的数清空,把 txtInfo 文本框里面的数据清空;如果 optCMD OptionButton 为选中状态,则先把 listTag 里面的数据清空,然后调用读取多个标签的指令,读取电子标签,读到的标签数量存在 lCount 里面,标签的 UID 数据,存于retByte 数组里面,并把读取操作的状态赋值到 ret 变量。然后,再根据 ret 变量的值,按单个标签的 UID 8 个字节的数据提取 UID 数据,并转换为字符串数据,在 listTag 里面显示出来,根据 lCount 变量的值,按同样的方法和数据格式把所有标签的 UID 数据都提取出来转换为字符串数据显示出来,同时,把操作状态也转换为字符串数据,在 txtInfo 文本框里显示出来。这部分的代码文件如图 10.19 所示:图 10.19其中Convert函数代码如下:Public Function Convert(sval As Long) As String If sval = 1 Then Convert = ERROR Else Convert = Success End IfEnd Function至此本实验的代码部分也完成了, 然后就可以点击菜单栏下边的运行命令按钮, 开始执行程序,如图 10.20 所示:图 10.20连接好实验系统,给实验系统上电,等待系统初始化完成,蜂鸣器响过后,选择相应的串口,点击 Open 打开串口,和实验系统通讯上,如图 10.21 所示:图 10.21在实验系统的天线区,放置标签,点击 Run 按钮,开始读取电子标签的操作,如图10.22-10.23 所示:图 10.22上图为天线区放置 3 个标签的读取结果图。图 10.23上图为天线区没有放置标签的读取结果图。对比上面两张图片的区别,注意画上红圈的地方。最后,通过 VB 软件 文件 菜单里面的 生成 ISO15693_Reader.exe 命令,如图 10.24所示,图 10.24就可以生成一个可双击直接运行
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年二级建造师考试试题含答案详解(培优a卷)
- 2025年安全教育培训试题含答案【巩固】
- 2025年幼儿教师资格证综合素质考试题库及答案1
- 安全员之B证(项目负责人)题库完整答案
- 安全员a证考试题库
- 劳务作业人员普法维权培训考试试卷答案
- 2025年中级会计考试《财务管理》试题及答案
- 二建资料题库及答案内部题库
- 低压电工考试题库(含答案)
- 变态反应试题库及答案(副高)
- 联合动力1.5mw风机变桨系统维护指导书试用版
- 病人心理与心理护理课件
- GB/T 17880.5-1999平头六角铆螺母
- GB/T 15602-1995工业用筛和筛分术语
- 传输专业常用仪表
- 火力发电-锅炉本体课件
- 自然地理学-第五章-地貌精课件
- 楚航无人船水域测量机器人系统介绍课件
- 电脑机箱检验标准
- DBJ∕T 15-197-2020 高大模板支撑系统实时安全监测技术规范
- 重庆内外墙抹灰专项施工方案
评论
0/150
提交评论