说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

VB对低层硬件访问控制

HTML文档下载 WORD文档下载 PDF文档下载
VB对低层硬件访问控制
VB 没 有 提 供 直 接 访 问 低 层 硬 件 的 控 件 和 方 法, 一 度 给 对 访 问 硬 件 感 兴 趣 的 编 程 者 带 来 不 便。 目 前 我 们 可 从 网 上 搜 索 到 支 持 低 层 硬 件 访 问 的DLL 和ActiveX 控 件, 通 过 它 们 可 读 写 存 储 器 单 元、 端 口, 甚 至 控 制 硬 件 中 断。 下 面 通 过 两 个 利 用DLL 和ActiveX 控 件 示 例 介 绍VB 对 低 层 硬 件 的 访 问 控 制。
一、 利 用DLL 读 写 端 口

----若 在 应 用 程 序 中 只 是 简 单 地 读 写 端 口, 利 用DLL 编 程 实 现 较 为 简 便。 从http://personal.vsnl.com/sr 网 站 可 下 载 一 个 免 费 的32 位VBIO.DLL, 该 连 接 库 允 许 在VB4、5 或6 中 使 用, 共 有 七 个 函 数 和 过 程, 分 别 为:

Anjan DLL 的 解 锁 过 程
Inp 端 口 读 字 节 函 数
Inpw 端 口 读 字 函 数
Out 端 口 写 字 节 过 程
Outw 端 口 写 字 过 程
GetLptBaseAddr 获 取 并 口 基 地 址 的 函 数
GetComBaseAddr 获 取 串 口 基 地 址 的 函 数


----图1 是 一 个 发 声 示 例 程 序 的 窗 体, 在 输 入 框 中 键 入 一 频 率 值 并 按SoundOn 钮, 则 在PC 机 的 扬 声 器 中 发 出 指 定 频 率 音 调, 程 序 中 对 音 调 的 变 化、 声 音 的 开 关 是 用VBIO.DLL 的 过 程 和 函 数 访 问 发 声 系 统 的 定 时 器/ 计 数 器 和 控 制 端 口 实 现 的。 编 程 要 点:1. 应 在Form _Load 中 加 入Anjan 解 锁 过 程。2. 若 在 模 块 中 声 明 函 数 和 过 程, 应 去 掉private 或 用Public 替 代。3.VBIO.DLL 应 拷 贝 到 \windows\system 子 目 录 下。

----程 序 清 单:

Option Explicit
Private Declare Sub Anjan Lib
“vbio.dll" ()
Private Declare Function Inp Lib
“vbio.dll" (ByVal port &) As Integer
Private Declare Function Inpw Lib
“vbio.dll" (ByVal port &) As Long
Private Declare Sub Out Lib
“vbio.dll" (ByVal port &, ByVal byt %)
Private Declare Sub Outw Lib
“vbio.dll" (ByVal port &, ByVal wrd &)
Private Declare Function GetLptBaseAddr Lib
“vbio.dll" (ByVal lpt &) As Integer
Private Declare Function GetComBaseAddr Lib
“vbio.dll" (ByVal com &) As Integer

Public Sub SetFreq(soundHz As Integer) ' 设 置 频 率
If soundHz Then
Dim divisor As Long
divisor = 1193180 / soundHz ' 计 算 时 间 常 数
Out &H42, &HB6
'8253 -5 通 道2 设 置 为 方 式3
Out &H42, divisor Mod 256 ' 送 时 间 常 数
Out &H42, divisor \ 256 '
Speaker True
Else
Speaker False
End If
End Sub

Public Sub Speaker(sOn As Boolean) ' 开 关 声 音
Dim portVal As Integer
portVal = Inp( &H61)
If sOn Then
portVal = portVal Or 3
' 低 位 为 通 道2 的 门 控 信 号
Else ' 次 低 位 为 整 形 与 门 控 制 信 号
portVal = portVal And (Not 3)
End If
Out &H61, portVal

End Sub

Private Sub Form_Load()
Anjan ' 软 件 解 锁
End Sub

Private Sub SoundOff_Click()
Speaker False
End Sub

Private Sub SoundOn_Click()
SetFreq Val(TextHz)
End Sub


二、 利 用ActiveX 处 理 硬 件 中 断


----在 应 用 程 序 中 如 果 需 要 访 问 存 储 单 元、 端 口 以 及 处 理 硬 件 中 断, 使 用TVicHW32 ActiveX 控 件 是 一 很 好 的 选 择, 该 控 件 是 一 个 共 享 软 件, 支 持Windows 95/98/NT, 可 从 http://www.entechtaiwan.com/tools.htm 处 下 载。 该 控 件 除 具 备 直 接 访 问 存 储 单 元 和 端 口 的 功 能 外, 还 提 供 了 丰 富 的 处 理 并 口 的 属 性 和 方 法, 以 及 处 理 硬 件 中 断 的 属 性、 方 法 和 事 件, 极 大 地 拓 展 了VB 对 低 层 硬 件 的 访 问 控 制。 下 面 通 过 一 个 显 示 键 盘 中 断 次 数 和 按 键 扫 描 码 的 示 例 介 绍 控 件 的 使 用 过 程。
下 载TVicHW32 压 缩 软 件 包 并 解 压 到 一 个 目 录 中, 如\HW。 把 driver 子 目 录 下 的vichw00.vxd 文 件 拷 贝 到\windows\system 子 目 录 下, 该 文 件 是 控 件 访 问 硬 件 的 驱 动 程 序, 使 用 控 件 前 先 用OpenDriver 打 开, 最 后 用Close_Driver 方 法 关 闭。
把ocx 子 目 录 下 的tvichw32.ocx 拷 贝 到\windows\system 子 目 录 下, 并 在 DOS 命 令 行 状 态 下 键 入 以 下 命 令 进 行 注 册:
----regsvr32 tvichw32.ocx
在VB 环 境 下 通 过 菜 单 工 程 - - 部 件 - - 控 件 并 选 择TVicHW32 ActiveX Control Module 将 控 件 添 加 到 工 具 箱 中。
相 关 的 属 性、 方 法 及 事 件
方 法 OpenDriver 打 开 支 持 访 问 硬 件
的 驱 动 程 序vichw.vxd(windows95 下)
方 法 CloseDriver 关 闭 驱 动 程 序
属 性 ActiveHW As Bool 驱 动 程 序 打 开
则 为True; 关 闭 为False
中 断 事 件 OnHwInterrupt(ByVal HwCounter As Long,
ByVal LPT_DataReg As Integer,
   ByVal LPT_StatusReg As Integer,
    ByVal ScanCode As Integer
   )
    参 数
  HwCounter : 中 断 次 数
LPT_DataReg : 如 果 使 用IRQ7,
则 为 打 印 并 口 的 数 据
LPT_StatusReg : 如 果 使 用IRQ7,
则 为 打 印 并 口 的 数 据
ScanKode : 如 果 使 用IRQ1,
则 为 按 键 的 扫 描 码
属 性 IRQNumber 指 定 中 断 号,
范 围IRQ1 - -15
属 性 IRQMasked 中 断 非 屏 蔽 则 为True;
屏 蔽 为False。


----图2 是 示 例 的 窗 体, 程 序 运 行 后 首 先 按 Open_Driver 钮 打 开 驱 动 程 序, 然 后 选 择Unmarsk 复 选 框 开 放 中 断, 此 时 每 按 一 次 键 框 中 分 别 显 示 该 键 的 扫 描 码 和 中 断 次 数。 处 理 其 他 中 断 只 需 更 改 中 断 号 即 可( 中 断 号1 —15)。

----程 序 清 单:

Public Sub ShowButtons()
Open_Driver.Enabled = Not HwCtrl.ActiveHW
Close_Driver.Enabled = HwCtrl.ActiveHW
B_Unmask.Enabled = HwCtrl.ActiveHW
End Sub

Private Sub Form_Load()
ShowButtons
End Sub

Private Sub Open_Driver_Click()
HwCtrl.OpenDriver ' 打 开 驱 动 程 序
If Not HwCtrl.ActiveHW Then
MsgBox (“The driver VICHWxx not found")
Else:
HwCtrl.IRQNumber = 1 ' 中 断 号 为1, 键 盘 中 断
End If
ShowButtons
End Sub

Private Sub Close_Driver_Click()
HwCtrl.CloseDriver ' 关 闭 驱 动 程 序
B_Unmask.Value = 0
ShowButtons
End Sub

Private Sub B_Unmask_Click()
If B_Unmask.Value = 0 Then
HwCtrl.IRQMasked = True
Else
HwCtrl.IRQNumber = 1
Scan_Code = 0
HwCtrl.IRQMasked = False ' 开 放 中 断
End If
End Sub

Private Sub HwCtrl_OnHwInterrupt
(ByVal HwCounter As Long, ByVal LPT_DataReg As Integer,
ByVal LPT_StatusReg As Integer, ByVal ScanCode As Integer)
Scan_Code.Caption = ScanCode
IRQC.Caption = HwCounter
End Sub

VB访问数据库的方案比较 VB数据库编程经验两则 VB数据库编空字段的处理 VB数据库多字段记录的录入 VB数据库记录查询四法 vb应用程序访问sql server方法探讨 VB中超长OLE数据库字段的操纵方法 VB中将数据转换为数据库文件 VB中远程数据库的访问 Visual Basic 的数据库编程 Visual Basic数据库数据的选项录入及选项增减与编辑 把资料输往Excel来列印-VB资料 报表中的滚动问题-VB资料 编写Connect Strings-VB资料 表或查询是否存在-VB资料 不创建DSN直接在程序中使用ODBC数据源-VB资料 不用 DATA 控件操作数据库文件 -VB资料 不用 EOF 以加快记录循环-VB资料 处理Select语句中的单引号 -VB资料 断开所有的数据连接 -VB资料 访问VB外来数据库 非access数据库在vb中的编程及应用 关闭程序中所有创建的数据库连接。 -VB资料 关闭所有的数据连接 -VB资料 关于数据报表的打印设置-VB资料 VB建立、改变及重构Access数据库-VB资料 结构化查询语言(SQL)详解之一-VB资料 利用VB使ACCESS数据库在网络使用中保持同步 返回 连接Data到多个表单-VB资料 列出 SQL Server 数据库中所有的存储过程-VB资料 列出MDB档当中所有table的名称-VB资料 怎样删除重复的行(mssql) 一个页面,如何实现左边为链接信息,右边为内容? 关于模式对话框的问题 项目实战两问,关于操作系统和光盘运行,高手请进! 怎样判断发信成功 CDONTS.NewMail 在杭州搞JSP的,请进来交换QQ,邮件!我们需要交流! 如何用sendmessage让一个窗口最小化 我想把COM+组件的客户端安装包打到install shield 的安装包中,并且自动安装com+客户端安装包,可是。。。。 word2000中不能使用打印功能,为什么? CSDN是怎么了,三天两头出问题啊~!!!!!!!!!!!!!!!!!!!!!!!!!!!!! OleContainer.SaveToFile的文件用Word怎么打不开? vb的多线程如何实现? 这句话是什么意思!!!! 有个女孩问我的代码理论问题……紧急!!有请各路大仙 指针与数组常通用,但一个存值,一个存地址,能不能讲一下他们的内存如何分配,怎样互用的 我一和女朋友有矛盾时,就感到浑身无力,什么也做不下去,脑袋乱七八糟的,做什么都不专一,直到问题解决,不知大家有没有和我有一样感觉的? 海星是南京大学的吗? 请问。vb有没有字体选择的控件(.ocx) 请问在该专区里有没有四川绵阳水校到深圳的王师兄!huan_91_cn@china.com 游戏爱好狂们注意:有没有愿意建立游戏网页!!! 各位大虾请帮忙!!谢谢!!!!! 有关数据报表的处理,采用EXCEL 听说所有Enterprise Manager工具都允许简单地通过单击鼠标来切换身份 怎么恢复? 在数据库中建立临时表来进行数据操作,我对它在使用时何时建立何时删除不太了解,能给我说明一下吗? 如何在触发器中调用存储过程(sql server 或者 oracle)(无内容) 请问哪里有完整版的sql server下载,不要钱的,不要序列号的??? 请较两个英文短语的理解 我要做个套打的程序,希望高手可以提示一点思路,能用QR吗? 加载驱动的问题!! 请教DELPHI中的打印机设置问题,各位师兄请进来看一下! 急问:怎样编程实现打开已保存的quickreport文件(*.QRP)?主要是得到保存的文件名后如何处理打开操作 请问这语句的意思? 在用Rose进行系统分析的过程中,如何对界面的进行详细描述? 谁知道Kylix要在linux内核2.?版本以上才能安装?? 急死菜鸟拉,大家帮帮忙呀 高分求助!!!配置Tomcat4.0 请问那里有php聊天程序?能适合虚拟主机(Unix)、无数据库 有兄弟如此,我..... 我的Access文件怎么变成只读了?怎么变回来? 如何判断传入的字符为空? 帮忙看看,去空格的问题 applet被限制调用系统资源,那么applet打印问题该如何解决,高手进来讨论 MOUNT 怎么给分啊? 关于用Adobe Acrobat看书的问题 根据母菜单变换子菜单???? 怎样用代码生成菜单,给个例子. 我明年想去读书,全日制的那种,我报计算机专业还是英语专业?各位水园的朋友个建议! 问一个很菜的C++的问题,不得不看罗!! 请问哪里有Acrobat Reader中文支持版本 沈括《海市蜃楼》——译文 发生电器短路引起的火灾怎么处理 某工程若由甲工程队单独做需要40天完成,若乙工程队先单独做30天,再由甲、乙两工程队共同做需20天可完成将工程分成两部分,甲做其中一部分用了X天,乙做另一部分用了Y天,其中X、Y均为正整 现有一项工程,甲单独做63天,再由乙做28天即可完成,如果甲乙合作需要48天完成任务.现在甲先做42天,然后由乙来完成,还需要几天?方程啊 现在流行讲A 题某工程若由甲工程队单独做需要40天完成,若乙工程队先单独做30天,再由甲、乙两工程队共同做需20天可完成将工程分成两部分,甲做其中一部分用了X天,乙做另一部分用了Y天,其中X、Y均为正 现有一项工程,甲单独做63天,再由乙单独做28天即可完成,如果甲乙合作需要48天完成任务.现在甲先做42天,然后这是常规解法另解:甲63天,乙28天能完成甲48天,乙48天也能完成甲63-48=15天的工作量 讲通俗一点. 海市蜃楼的倒影是光的什么现象? 某工程先由甲独做63天,再由乙独做28天即可完成.如果由甲乙两人合作,需48天完成,现在由甲先独做42天,然后再由乙完成,还需要多少天? 通俗的讲, 为什么海市蜃楼是正景,而沙漠蜃景是倒影?这是光的全反射原理,可为什么会有不同? 用热学知识解释“,霜前冷雪后寒”这句谚语雪后寒我知道,就是霜前冷,跪求各位大哥大姐大叔大姨大妈大伯! 流行说的八卦是什么意思 带有严字的成语 一定要是成语 用热学知识解释“霜前冷,雪后寒”请简略一点 有关狼的成语和谚语以及介绍狼的相关知识和故事 ( )兵( )政的成语( )凶( )恶的成语 ( )三( )四的成语( )兵( )政的成语[要求两个()内要添近义词] ( )凶( )恶的成语[要求两个()内要添近义词] ( )三( )四的成语[要求两个()内要添反义词] 俗话说 霜前冷,雪后寒 请用学过的知识加以解释? 梦到家里失火是什么意思昨晚梦到和宿舍玩的最好的两个女生在宿舍玩,然后我说快穿衣服,咱们出去,结果下了楼竟然是我在我家开的商店里.再后来突然店里失火了,我拽上她俩就跑,到了门口 三极管工作状态判断一般来说应该是要接Re的,若不然就是没有Re同时也没有Rb2这个路,但是有些题就是有Rb2却又没有Re.如图,若没有Re,发射极直接接地的话,是不是Vb小于0.7V时,三极管截止,Vb大于0 人为引起火灾的因素有哪些 为什么会有海市蜃楼这种现象呢? 美丽奇特的“海市蜃楼”是光的折射产生的一种现象,它通常发生在什么时候? 听朋友说,现在流行什么手机二维码? 海市蜃楼是什么意思? 关于光的奇异景象 Google 的含义 能告诉我海市蜃楼是什么意思 海市蜃楼是不是光的折射现象? "我的GG" 有女的说"我的GG"怎么怎么...喊的到底是谁啊 LG还是亲哥哥?为什么有人说"我家GG"是指LG 三极管工作状态的条件是什么 某工程若由甲工程队单独做需要40天完成,若乙工程队先单独做30天,在由甲、乙两工程队共同做需20天可完成.求乙工程队单独需要多少天完成 一项工程,甲、乙两队合做18天可以完成,如果甲先做20天后,再由乙独做15天即可完成.现先由甲单独做12天,然后再由乙来做,还要几天可以完成?这是一道工程问题,可以用方程来解.希望正确率高 海市蜃楼是什么现象 某工程甲工程队单独做40天完成,乙工程队单独做30天,甲乙两工程队合作20天即可完成,乙单独需要多少天完 一项工程,甲单独做63天后,再由乙做28天即可完成.如果甲、乙合作需48天完成.现在甲先做42天,剩下的由乙来完成,乙还需做多少天?详细写出答题过程、原因.thank you! 三极管工作状态有哪几种? 关于物理的成语有哪些?(搜索20个与物理有关的成语),如声,光,热等并附带所对应的物理知识 1,见到了,3,偶也屁颠屁颠的跟着后面转了2小时...4,偶算犯罪不? 海市蜃楼为什么会出现古代的景象? 按要求写出表示“多”的成语.颜色多的成语,困难多的成语,知识多的成语三种类型的成语至少四个,今天就要 引起火灾的所有原因是什么? 海市蜃楼是什么现象 “海市蜃楼”属于物理中的什么现象? 拉皮条是什么意思? 火灾事故发生的原因有哪些? 如何快速判断三极管的工作状态 拉皮条是什么意思?说得通俗点 英语翻译“Sad when a men hiding in their place no one to cry silently,afraid to speak afraid to see people,but has not stop the tears,fear of loneliness fear of dark” 判断三极管工作状态 什么是拉皮条?这是什么意思啊?拜托了各位 谢谢 海市蜃楼的现象是怎样形成的, 如何判断三极管的工作状态固定偏流式放大电路中,当Rc、Rb的参数分别为()时,该电路的静态工作点处在放大区.设三极管的β=100.A.5.6kΩ,10kΩ B.5.6kΩ,510kΩ C.5.6kΩ,1MΩ D.100kΩ,1MΩ 麻烦 现有一项工程,甲单独做63天,再由乙做28天即可完成,如果甲乙合作需要48天完成任务.现在甲先做42天,然后乙来完成,还需要几天? 小功率电器能引起火灾吗?如果加了保险管的话会不会燃烧? 如何判断电路中三极管工作状态 某工程先由甲单独做63天,再由乙单独做28天即可完成,如果由甲乙合作则要48天完成,现在甲先单独做42天,然...某工程先由甲单独做63天,再由乙单独做28天即可完成,如果由甲乙合作则要48天完成, 电器短路为什么会引起火灾? 家里起火如何扑救
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn