鼠标的工作原理Word文档下载推荐.docx
- 文档编号:21419080
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:39
- 大小:863.57KB
鼠标的工作原理Word文档下载推荐.docx
《鼠标的工作原理Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《鼠标的工作原理Word文档下载推荐.docx(39页珍藏版)》请在冰豆网上搜索。
32
数据格式
㈠MicroSoft公司标准:
MICROSOFTFORMAT
字节字元(Bit)
76543210
BYTE111LRY7Y6X7X6
BYTE200X5X4X3X2X1X0
BYTE300Y5Y4Y3Y2Y1Y0
注释:
L=左键状态
R=右键状态1=按下
0=释放
X0-X7=X距离
Y0-Y7=Y距离X7或Y7为±
符号位
串口特性:
波特率=1200Baud,8位数据,无校验位,2停止位。
--------------------------------------------------------------------------------
㈡MOUSESYSTEM公司标准:
MOUSESYSTEMFORMAT
BYTE110000LMR
BYTE2X7X6X5X4X3X2X1X0
BYTE3Y7Y6Y5Y4Y3Y2Y1Y0
BYTE4X7X6X5X4X3X2X1X0
BYTE5Y7Y6Y5Y4Y3Y2Y1Y0
R=右键状态
M=中间键状态1=按下
㈢IBM公司PS/2MOUSE标准:
PS/2MOUSEFORMAT
BYTE1YVXVYSXS10RL
XS,YS=±
符号位1---反向移动
XV,YV=溢出位1----XY数据溢出
鼠标应用程序设计
用汇编语言编写的鼠标和键盘应用程序。
在程序执行后屏幕上显示包括鼠标和键盘的状态。
当用户移动鼠标时,屏幕显示鼠标的位置;
按下鼠标左键时,显示“LeftButtonpress”;
在放开左键时显示“LeftButtonPress”消失。
在按下鼠标右键时,显示“RightButtonPressandProgramreturnedtoDos.”
P206程序结构:
Prog7-1.Asm中引用的外部定义子程序为tab6.Inc。
它包含所有定义、过程和宏。
外部过程有:
clrScrn.asm(清屏过程)、onCur.asm(开光标过程)、offCur.asm(关光标过程)、mvCur.asm(移动光标)、bdwrite.asm(显示字符过程)、kdState.asm(取键盘状态过程)、msOff.asm(鼠标关)、msOn.asm(鼠标开)msInit.asm(鼠标初始化)msState.asm(鼠标状态)等。
Prog7-1.Asm中引用的外部定义子程序为tab6.Inc。
外部过程包括:
Tabl6.inc包含有proto6s.inc、def6.inc和mac6.inc三个子程序。
鼠标的操作方式
用汇编语言对鼠标的各项操作进行描述的,也可以用C、C++等其他语言来描述。
1.初始化鼠标驱动程序:
例如:
中断号INT33h
功能16h
子功能17h
中断号:
用于请求服务
功能号:
用于确定用户期望获取哪种服务
子功能号:
进一步指定所希望的服务
调用寄存器:
设置被调用的服务功能所要求的参数
返回寄存器:
返回服务功能执行结果
调用的进程:
设置参数
中断号INT33h
功能15h
BX寄存器
ES:
DX
功能17h
DX
2.
显示或隐藏鼠标光标
中断33h的功能1和2分别置鼠标光标为“打开”和“关闭”。
而鼠标驱动程序一直跟踪鼠标的移动,当鼠标移动时就更新它在屏幕的位置。
鼠标的程序从开始通常在打开光标,一直到程序结束。
鼠标驱动程序采用光标标记,用做显示和隐藏光标的分层方法。
初次打开光标标记设为-1;
功能1将标记加至0,使光标出现。
功能2将标记减1,当标记为负值时就隐藏光标。
3.
设置文本鼠标光标的形状
在以视频文本模式工作时,鼠标驱动程序生成两类光标:
(1)硬件光标,由视频硬件所产生的常规屏幕光标,由水平扫描线组成。
(2)软件或属性光标,这种情况下,鼠标驱动程序在光标出现的屏幕位置写数据。
驱动程序在改变此位置显示的字符或改变字符属性,使它闪烁、背景色等。
(3)中断33h的功能Ah设置文本光标的类型:
AX存放功能号;
BX存放应光标或软件光标选择;
CX存放起始扫描线;
DX存放终止扫描线。
4.
设置图形鼠标光标的形状
中断33h的功能9h设置图形模式下的鼠标光标的形状,并定义光标里的一个点为热点。
光标由16x16位的视频掩码和16x16位的光标掩码组成。
5.取得或设置鼠标光标的位置
中断33h的功能4h用于设置鼠标光标位置,功能3h则用于报告光标的位置。
AX存放功能号,CX被赋予X坐标,DX被赋予Y坐标。
P200例7-4
6.
将鼠标光标限定在屏幕的一部分
将鼠标光标可以限制在屏幕的一个矩形区域内,由中断33h的功能7h设置鼠标光标移动的水平范围,8h设置垂直范围。
P201例7-5
7.定义不显示鼠标光标的屏幕区域
中断33h的功能10h定义屏幕的一个区域,当鼠标进入该区域时会自动关掉。
进入时,CX存放被保护域的左列号,SI存放右列号;
DX存放首行号,DI存放末行号。
例7-6
设置一个范围是从第10~50列和5~30行之间的矩形域。
MOV
AX,
10h
;
功能号
CX,
10
;
左列
SI,
50
右列
DX,
5
首行
DI,
30
末行
INT
33h
调用中断设置域
8.跟踪鼠标的移动
中断33h功能Bh报告自从上次调用该功能后,鼠标移动的实际距离(测量单位为米基)。
该功能在CX中返回相对的水平位移;
DX中返回相对的垂直位移。
例7-7查询鼠标光标的相对位移。
0Bh
33h
HORZ_MOTION,CX
VERT_MOTION,
DX
9.
设置鼠标与光标移动的比率
程序可以改变鼠标移动相对于鼠标光标移动的比率。
大多数鼠标的分辨率为每英寸200米基。
在一定方向上移动一定数目的米基,转换为鼠标光标移动一个像素。
默认情况8米基使水平移动一个像素;
16米基使光标垂直移动一个像素。
中断21h的功能Fh可以改变米基–像素的比例。
中断33h的功能13h是改变产生双倍速率的这个阀值,默认值为64米基/秒。
P202例7-8
10.
监视鼠标按钮
中断33h的功能5h和6h报告鼠标按钮的信息。
这两项功能都在AX返回一个按钮状态字节,报告按钮2个或3个当前状态。
此状态字节由中断21h的功能3h返回。
它报告鼠标光标的位置。
中断33h的功能5h和6h跟踪按下按钮和释放按钮。
11.截取单击、双击和拖动事件
许多使用鼠标的程序都要检测鼠标的单击和双击,并跟踪按钮按下的拖动事件。
12.
建立鼠标中断例程
在INT
33h的功能Ch建立列程。
入口时,ES:
DX指向列程CX中存放一个位模式,设定几种应当调用的例程事件。
其模式为:
光电鼠标传感器的精密测量与控制系统※下载
华侨大学陈智博林永忠蔡钟山刘聃肖威威
2008-10-1815:
07:
23
摘要对于普通的带传动装置进行较高精度的速度控制,传统的检测及控制器件未必能让人满意。
光电鼠标芯片因以其高精度、低现场环境要求、低价格等因素非常适用于位置检测场合。
鉴于此,结合光电鼠标芯片与AT89S51单片机,通过对普通带传动装置的改进,可使其传动做到快速、稳定、准确。
测试表明,这种检测及控制方式是行之有效的。
关键词
PS/2协议
低速
PID控制
单片机接口
光学鼠标
速度测量
引言
带传动是工业生产中普遍使用的传输装置,其常用的速度检测装置是安装在电机旋转端的光电编码器;
但设备在长期使用中,因磨损等不可预计情况,使得电机转速与带传动速度出现严重的不一致。
这种半闭环控制方式在需要较高精度的带传动速度控制上误差很大。
光栅尺等因价格昂贵、对现场环境要求高,往往对于普通工况中带传动装置的改装并不很适用。
鉴于此,本文提出了使用一般商用的光电鼠标代替传统的检测器件的方法,通过AT89S51单片机实现现场的PID控制,使带传动速度达到满意的要求。
1
检测系统硬件组成
1.1
OM02光学传感器芯片及鼠标控制器
这款光学CMOS传感器是一款针对个人计算机所配置的非接触式光电鼠标芯片,集成有数字信号处理器(DSP)、双通道正交输出端口等。
在芯片底部有一个感光眼,能够不断地对物体进行拍照,并将前后两次图像送入DSP中进行处理,得到移动的方向和距离。
DSP产生的位移值,转换成双通道正交信号,配合鼠标控制器,将双通道正交信号转化成单片机能够处理的PS/2数据格式。
设备安装在一套塑料的光学透镜设备上,并配有一个高强度的LED。
此外,它可提供高达400点/in的分辨率以及16in/s以内的检测速度。
图1为鼠标芯片传感器的装配图。
因OM02芯片为CMOS型传感器,因此必须配有与之相适应的高强度发光二极管,发射角度(与底板之间的夹角)为30°
~45°
。
在标准安装配合后,底板距离工作表面的有效距离在0~2mm内,OM02芯片可进行正常的数据接收检测。
图1
鼠标芯片传感器装配图
1.2
检测控制原理及系统硬件设计
本系统采用全闭环控制方式,如图2所示。
将鼠标检测到的位移增量反馈回单片机,并进行数字式PID控制,然后将运算结果通过D/A转换芯片传给变频器,进而控制电机的转速。
图2
光电鼠标检测控制原理框图
系统主要由电动机、传动部分、执行部分和控制部分组成。
机械传动系统作为机器的重要组成部分,不仅应能实现预期功能,而且应具有良好性能。
为此,采用三相交流异步电机(Y263M14型,0.12kW)、变频器(富士FRN0.4C1S4C)、30∶1蜗轮蜗杆减速器、v型B相带传输装置、P204型球轴承及轴承座等作为模拟工业设备的主要传动及执行部分。
通过单片机调整数模转换器的输出电压U,可改变变频器的输出频率,从而改变电机转速。
2
单片机程序设计
2.1
鼠标通信协议原理
鼠标与单片机的数据通信方式采用PS/2通信协议。
PS/2鼠标的物理接口为6脚圆形接口。
使用中只需第1引脚Data、第3引脚GND、第4引脚+5VPower和第5引脚Clock这4个引脚即可。
鼠标履行一种双向同步串行通信协议,在时钟信号的作用下串行发送或者接收数据。
通常情况下,单片机在总线上具有总线控制优先权,可在任何时候抑制来自于鼠标的通信。
从鼠标到单片机的数据在时钟的下降沿被读取;
相反,单片机到鼠标的数据在时钟的上升沿被读取。
时钟信号总由鼠标内部的芯片提供,时钟频率一般在10~20kHz。
(1)单片机对鼠标的通信
根据协议要求,单片机对鼠标的控制只需把时钟线拉低最少100μs以上来禁止其通信,并且单片机拉低数据线使之处于请求发送状态。
如图3所示,时钟线升为高电平后被PS/2设备重新拉低,即可开始单片机向鼠标的通信。
图3
单片机对PS/2设备通信的时序
(2)鼠标对单片机的通信
因单片机对总线具有控制权,当鼠标要向单片机发送信息时,必须先检查时钟线是否为高电平。
如图4所示,当时钟线出现高电平、数据线出现低电平时,表明鼠标请求发送,单片机可以接收来自鼠标的数据。
图4
鼠标对单片机通信的时序
(3)单片机发送的控制数据
按照鼠标的PS/2协议规范,实际编程时先对鼠标发送0xff使其复位,默认采样频率为100次/s,缩放比例为1∶1,数据报告禁止。
编译时也只需提取X3的有效数据包即Y方向位移增量。
2.2
PID控制软件算法
对该交流变频调速系统建模,首先取电压输入为一个随机值,再测得其转速值。
取两个数值构成一个数据对,然后对大量数据对用Matlab仿真求得其幅频特性和相频特性,并且对其幅频特性和相频特性进行相似的拟合。
根据拟合的曲线可以近似求得其传递函数为:
使用神经网络PID自适应控制对系统进行Matlab的仿真测试,效果令人满意。
但因其输入层、隐含层、输出层的多阶矩阵运算使得单片机的运算时间大幅度增加,造成时间上的不确定因素增大;
同比使用增量型PID控制,尽管后者需调整3个控制参数,但同样可使精度达到预期的效果,运算时间也大幅度下降,为此选用增量型PID算法作为控制算法。
增量式数字PID的控制算法为:
其中kp为比列系数,ki为积分系数,kd为微分系数;
e(k)为当前位移增量与上一次位移增量的变化量;
同理,e(k-1)、e(k-2)各为往前时间间隔的位移变化量。
利用单片机串行中断接收功能,可在PC机上实时在线调节PID的kp、ki、kd参数。
3
上位机监测设计
通过单片机的串口发送端,在LabVIEW中编写程序来完成PC机与数据通信设备的数据交换,直接通过串口接收外部数据并进行图形显示,并可将数据存放在txt文件当中。
在LabVIEW中主要是使用VISA控件实现串行口直接数据通信,通过RS232串行接口和LabVIEW实现数据的通信。
图5
带运动的时间位移图
使用readstring控件对数据进行接收,并通过Waveformgraph控件就可以显示实时波形。
在LabVIEW中自带的范例中,数据的接收并非是连续不断的,而要通过一定的延时;
因此,为了不间断地接收单片机发送的串口数据包,须将前面的写和延时都去掉。
因串口接收到的数据是字符型的,而我们所需要的是整型数据,因此可通过强制转换将数据转换为单精度整型。
创建数组,将数据和数组初始化相结合得到一个完整的数组,通过Waveformgraph控件以及移位寄存器即可实现上位机的实时显示与记录。
4
检测控制性能评价
PS/2接口最大的使用频率是33kHz。
本实验单片机使用12MHz的晶振,可轻松实现接口功能。
但受其芯片特性的影响,尽管OM02的鼠标芯片最高可使用的分辨率为400DPI,但在使用较高分辨率的情况下,鼠标传输的误码率将有所上升,其位移精度也将受到质疑。
为保证位移量的准确性,采用200DPI的分辨率,配合看门狗,精度误差和程序稳定性将大为好转。
测试结果如图5所示,图中纵坐标为位移增量点,每一点为0.125mm。
带在较低速的运行中尽管存在速度的上下跳动变化,但跳动量较小。
图中带速度的设定值为32点,即40.00
mm/s(灵敏度为0.125mm/s),速度平均值为39.987mm/s(测量数据引自速度曲线刚开始稳定时的前1000个时间点)。
因其光电鼠标传感器在正常工作环境中使用,系统呈线性变化,对此可引入速度修正系数k,以提高检测精确度。
结语
使用光电鼠标作为检测带运动的速度传感器,其价格低廉、准确性高且使用方便,配合单片机的数字式PID编程控制以及LabVIEW虚拟仪器的图形检测显示,可以很好地对速度要求较低、精度要求不太高的设备进行改装,使其输出速度稳定。
又因为光电鼠标技术已趋于成熟,一般情况下对检测表面的粗糙度要求不高,在比较恶劣的工况下仍可保证运行无障碍。
近些年所推出的激光鼠标,其分辨率可达到0.01mm,效果甚佳。
该实验在某企业的生产部门进行了现场测试,效果理想。
编者注:
本文为期刊缩略版,全文见本刊网站。
参考文献
[1]OM02OpticalMousesensorDataSheet,2004.
[2]赵玉昆.PS/2鼠标和单片机的接口[J].上海应用技术学院学报,2004,4
(1).
[3]林邓伟,刑文生.光电鼠标芯片组在无接触检测运动物体中的应用[J].微计算机信息,2006,22(72).
[4]宋健.数字PID算法在喷雾机器人导航系统中的应用[J].潍坊学院学报,2003,3(6).
陈智博,主要研究方向为机械电子工程;
林永忠(本科),主要研究方向为自动检测与控制;
蔡钟山、刘聃(本科),主要研究方向为检测技术与自动化装置;
肖威威(本科),主要研究方向为机械制造及自动化。
PS/2鼠标接口定义
2009-2-1210:
34:
34
PS/2鼠标接口为6针母插。
Pin
Name
Description
DATA
KeyData
n/c
Notconnected
GND
Gnd
VCC
+5VDC
5
CLK
Clock
6
串行口转PS2鼠标转接器
本站原创
2007-11-3012:
50:
35
说明:
本图是我根据一些资料和自己对一些名牌鼠表内带转换口的测量画出的,不过我用在普通PS/2鼠标上试验没有成功过,大家可以注意到PS/2鼠标关键的两脚1(Data)和5(Clock)没有连接,而空脚2,6却和RxD,TxD相连,所以我认为,PS/2鼠标实际上是无法接在RS-232口的,一些名牌鼠标可以只不过是它利用了1,5两个空脚另外做了两个和RS-232口兼容的RxD,TxD而已,而普通PS/2鼠标却没有做。
所以大家拿到资料后不要一下子就对自己的鼠标“咔嚓”一剪......我可不管了
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 鼠标 工作 原理