电信主站 网通分站
购买流程 付款方式 常见问题 在线提问 续租服务 购物车
用户名: 密 码: 忘记密码?
首 页
域名注册
虚拟主机
双线主机
服务器租用
VPS主机
企业邮局
代理专区
客服中心
虚拟主机行业资讯 虚拟主机评测对比 互联网最新动态 技术学院 站长资讯 在线教程 网站运营
搜索优化 服务器 网络编程 图形图象 站长之家 网页制作 操作系统
冲浪宝典 软件教学 视频通信 办公软件 邮件系统 网络安全 认证考试
您当前位置:西部数码->资讯中心-> 网络编程 -> 移动开发教程
vb对低层硬件访问控制_visualbasic教程
作者:网友供稿 点击:0
  西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!虚拟主机可在线rar解压,自动数据恢复设置虚拟目录等.虚拟主机免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金!
文章页数:[1] 
VB没有提供直接访问低层硬件的控件和方法,一度给对访问硬件感兴趣的编程者带来不便。目前我们可从网上搜索到支持低层硬件访问的DLL和ActiveX控件,通过它们可读写存储器单元、端口,甚至控制硬件中断。下面通过两个利用DLL和ActiveX控件示例介绍VB对低层硬件的访问控制。
一、利用DLL读写端口

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

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


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

  程序清单:

OptionExplicit
PrivateDeclareSubAnjanLib
“vbio.dll"()
PrivateDeclareFunctionInpLib
“vbio.dll"(ByValport&)AsInteger
PrivateDeclareFunctionInpwLib
“vbio.dll"(ByValport&)AsLong
PrivateDeclareSubOutLib
“vbio.dll"(ByValport&,ByValbyt%)
PrivateDeclareSubOutwLib
“vbio.dll"(ByValport&,ByValwrd&)
PrivateDeclareFunctionGetLptBaseAddrLib
“vbio.dll"(ByVallpt&)AsInteger
PrivateDeclareFunctionGetComBaseAddrLib
“vbio.dll"(ByValcom&)AsInteger

PublicSubSetFreq(soundHzAsInteger)设置频率
IfsoundHzThen
DimdivisorAsLong
divisor=1193180/soundHz计算时间常数
Out&H42,&HB6
8253-5通道2设置为方式3
Out&H42,divisorMod256送时间常数
Out&H42,divisor\256
SpeakerTrue
Else
SpeakerFalse
EndIf
EndSub

PublicSubSpeaker(sOnAsBoolean)开关声音
DimportValAsInteger
portVal=Inp(&H61)
IfsOnThen
portVal=portVr3
低位为通道2的门控信号
Else次低位为整形与门控制信号
portVal=portValAnd(Not3)
EndIf
Out&H61,portVal

EndSub

PrivateSubForm_Load()
Anjan软件解锁
EndSub

PrivateSubSoundOff_Click()
SpeakerFalse
EndSub

PrivateSubSoundOn_Click()
SetFreqVal(TextHz)
EndSub


二、利用ActiveX处理硬件中断


  在应用程序中如果需要访问存储单元、端口以及处理硬件中断,使用TVicHW32ActiveX控件是一很好的选择,该控件是一个共享软件,支持Windows95/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命令行状态下键入以下命令进行注册:
  regsvr32tvichw32.ocx
在VB环境下通过菜单工程--部件--控件并选择TVicHW32ActiveXControlModule将控件添加到工具箱中。
相关的属性、方法及事件
方法OpenDriver打开支持访问硬件
的驱动程序vichw.vxd(windows95下)
方法CloseDriver关闭驱动程序
属性ActiveHWAsBool驱动程序打开
则为True;关闭为False
中断事件OnHwInterrupt(ByValHwCounterAsLong,
ByValLPT_DataRegAsInteger,
  ByValLPT_StatusRegAsInteger,
  ByValScanCodeAsInteger
  )
  参数
 HwCounter:中断次数
LPT_DataReg:如果使用IRQ7,
则为打印并口的数据
LPT_StatusReg:如果使用IRQ7,
则为打印并口的数据
ScanKode:如果使用IRQ1,
则为按键的扫描码
属性IRQNumber指定中断号,
范围IRQ1--15
属性IRQMasked中断非屏蔽则为True;
屏蔽为False。


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

  程序清单:

PublicSubShowButtons()
Open_Driver.Enabled=NotHwCtrl.ActiveHW
Close_Driver.Enabled=HwCtrl.ActiveHW
B_Unmask.Enabled=HwCtrl.ActiveHW
EndSub

PrivateSubForm_Load()
ShowButtons
EndSub

PrivateSubOpen_Driver_Click()
HwCtrl.OpenDriver打开驱动程序
IfNotHwCtrl.ActiveHWThen
MsgBox(“ThedriverVICHWxxnotfound")
Else:
HwCtrl.IRQNumber=1中断号为1,键盘中断
EndIf
ShowButtons
EndSub

PrivateSubClose_Driver_Click()
HwCtrl.CloseDriver关闭驱动程序
B_Unmask.Value=0
ShowButtons
EndSub

PrivateSubB_Unmask_Click()
IfB_Unmask.Value=0Then
HwCtrl.IRQMasked=True
Else
EndSub

->


文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!
相关主题
文章页数:[1] 
Google
热门文章
·移动业务代码规范方案_移动短信技术
·midi文件结构分析及生成方法_移动短信技术
·ems图片格式转换(java)程序_移动短信技术
·图片格式整理(增加alcatel)_移动短信技术
·手机铃声格式规范,midi格式规范_移动短信技术
·一个偏门:固话短信的信息格式约定_移动短信技术
·cmpp connect code sample_移动短信技术
·cmpp的submit 包的code sample_移动短信技术
·cmpp active test_移动短信技术
·空中下载技术的特点及其实现方式_移动短信技术

最新文章
·用vb.net 2005编写定时关机程序_vb/vb.net教程
·中文版windows xp系统升级sp3新鲜体验_windows xp
·解决优化后windowsxp不能自动更新的问题_windows xp
·photoshop制作时尚乞丐牛仔面料效果_photoshop教程
·windows mobile开发环境搭建指南_移动短信技术
·photoshop快速打造莹蓝冰窟特效_photoshop教程
·photoshop处理特效:照片中的照片_photoshop教程
·让windows xp自动维护系统_windows xp
·fireworks为枝繁叶茂的树木图片抠底_fireworks教程
·用photoshop给汽车喷漆换色_photoshop教程


 
 


版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!

特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
  打印  刷新  关闭
返回首页 |关于我们 | 联系我们 | 付款方式 | 创业联盟 | 虚拟主机 | 资讯中心 | 友情链接 | 网站地图

版权所有 西部数码(www.west263.com)
CopyRight (c) 2002~2006 west263.com all right reserved.
公司地址:四川成都市万和路90号天象大厦4楼 邮编:610031
电话总机:028-86262244 86263048 86263408 86263960 86264018 86267838
售前咨询:总机转201 202 203 204 206 208
售后服务:总机转211 212 213 214
财务咨询:总机转224 223 传真:028-86264041 财务QQ:点击发送消息给对方635483282
售前咨询QQ:点击发送消息给对方2182518 点击发送消息给对方241975952 点击发送消息给对方275026793 点击发送消息给对方408235859
售后服务QQ:点击发送消息给对方17708515 点击发送消息给对方307742704 点击发送消息给对方287976517 点击发送消息给对方363783715
《中华人民共和国增值电信业务经营许可证》编号:川B2-20030065号