返回主页 单片机教程XL2000开发板 单片机学习 自制编程器 单片机资料 软件下载 电子技术产品介绍如何购买 进入论坛

<>
如果您在使用中有任何问题请你访问51单片机学习网论坛,和更多的朋友一起讨论
yaokong.asm 遥控器测试程序按任意键试验版数码管指示灯闪烁。任意遥控器均可!
n6221.asm 为配套的红外线遥控(P3.7)显示数码管1234567890的程序 
n6221b.asm 遥控器控制显示0123456789abcdef数据保持
n6221c.asm 遥控器控制30个io的led点亮,可由此控制继电器实现家电的遥控

红外线遥控鼠标器

吴汉清

鼠标器是用来产生控制屏幕光标移动的一种装置,是计算机最重要的外部输入设备之一,可用于人机会话的图形系统。鼠标器和计算机之间有一根连线,并且需要在桌面(鼠标垫)上进行操作。在使用计算机和大屏幕投影机作多媒体教学时,由于鼠标器操作的牵制,会使教员的教学活动受到限制,不利于教学双方的交流。本文介绍的一种红外遥控鼠标器,用红外线取代了鼠标器和计算机之间的连线,用按键控制光标的移动,解决了上述鼠标器使用不便的问题。

机械式鼠标器的工作原理

为了说明红外线遥控鼠标器的工作原理,有必要先讲一下普通鼠标器的工作原理。
鼠标器按其工作原理可分为机械式和光电式两种,最常见的是机械式鼠标器。现在的机械鼠标器实际上是光机鼠标器,即将滚轮的机械转动转换成光信号,再变为电信号。下面以这种鼠标器为例说明其工作原理。
在机械式鼠标器底部有一个露出一部分的塑胶小球,当鼠标器在操作桌面上移动时,小球随之转动,在鼠标器内部装有三个滚轴与小球接触,其中有两个分别是X轴方向和Y轴方向滚轴,用来分别测量X轴方向和Y轴方向的移动量,另一个是空轴,仅起支撑作用。拖动鼠标器时,由于小球带动三个滚轴转动,X轴方向和Y轴方向滚轴又各带动一个转轴(称为译码轮)转动。译码轮(见图1)的两侧分别装有红外发光二极管和光敏传感器,组成光电耦合器。光敏传感器内部沿垂直方向排列有两个光敏晶体管A和B,如图2所示。由于译码轮有间隙,故当译码轮转动时,红外发光二极管发出的红外线时而照在光敏传感器上,时而被阻断,从而使光敏传感器输出脉冲信号。光敏晶体管A和B被安放的位置使得其光照和阻断的时间有差异,从而产生的脉冲A和脉冲B有一定的相位差,利用这种方法,就能测出鼠标器的拖动方向。也就是说,脉冲A比脉冲B的相位提前时,表示一个移动方向;反之,脉冲B比脉冲A的相位提前时,表示另一个移动方向。同时,脉冲信号周期也能反映出移动速度。检测到的X轴方向和Y轴方向移动的合成即代表了鼠标器的移动方向。将上述电信号重新编码后形成串行信号,再通过串行口COM1或COM2输入计算机,计算机即可判断鼠标器的移动方向。由以上的叙述可以得出结论:如果给X轴方向和Y轴方向光敏传感器的输出端送入两组脉冲信号,控制每一组脉冲的相位差即能达到与拖动鼠标器相同的作用。本文介绍的红外线遥控鼠标器正是根据这一原理设计的。

20-1.gif (3766 bytes)

红外线遥控鼠标器的工作原理

红外线遥控鼠标器由红外发射器和红外接收器两部分组成,其原理方框图如图3所示。

20-3.gif (6285 bytes)


红外发射器电路如图4所示。IC1为编码器集成电路VD5026,和它配对的译码器集成电路为VD5027或VD5028。VD5026的①~⑧脚为地址端A0~A7,⑩~13.gif (106 bytes)脚为数据端D0~D3(和VD5028配合使用时可作地址端A8~A11),17.gif (86 bytes)脚为编码信号输出端,其输出信号对IC2A、IC2B等组成的40kHz脉冲发生器的信号进行调制。调制后的脉冲信号经IC2C、IC2D后由VT1推动红外发光二极管VD5、VD6发射红外线。IC2C、IC2D有缓冲和整形的作用。R5为编码器VD5026的振荡电阻,它和配对的解码器VD5027的振荡电阻应该取相同的阻值,以保证时钟频率一致,否则将不能译码。数据端D0~D3的电平决定了鼠标器的移动方向和左、右键的工作状态,其电平受S1~S6的控制,其中S1、S2控制X轴方向的正向和反向移动,S3、S4控制Y轴方向的正向和反向移动,S5、S6分别为鼠标器的左、右控制键。所按的键同D0~D3电平和工作状态的关系见附表。

20-4.gif (19691 bytes)

附表

按键

D0

D1

D2

D3

工作状态

S1

1

0

0

0

X轴正方向移动

S2

0

1

0

0

X轴负方向移动

S3

0

0

1

0

Y轴正方向移动

S4

0

0

0

1

Y轴负方向移动

S1、S3

1

0

1

0

X轴正方向移动、Y轴正方向移动

S1、S4

1

0

0

1

X轴正方向移动、Y轴负方向移动

S2、S3

0

1

1

0

X轴负方向移动、Y轴正方向移动

S2、S4

0

1

0

1

X轴负方向移动、Y轴负方向移动

S5

1

1

0

0

鼠标器左键

S6

0

0

1

1

鼠标器右键


由表1可以看出,通过按键即可对鼠标器进行各种操作,例如要使鼠标器向左上方移动,可先按S2向左移动,再按S3向上移动,也可以同时按S2、S3直接向左上方移动。
红外线接收器电路如图5所示。CX20106是红外遥控接收集成电路,它由前置放大器、限幅放大器、带通滤波器、峰值检波器和整形电路等组成。VD1输入IC1的红外信号,经过解调后由⑦脚输出,再由IC3F反相后得到与VD502617.gif (86 bytes)脚输出相同的编码信号。此信号通过VD5027的14.gif (85 bytes)脚输入,由于VD5027的地址码A0~A7和发射器VD5026的地址码A0~A7相同(都设置为低电平),所以VD5027能对与其相连的编码信号进行正确解码,其结果是能使VD5027的D0~D3输出与VD5026的D0~D3相同的电平,从而完成相应的动作。

22-2.gif (14557 bytes)
22-1.gif (1821 bytes)


IC3为六“非”门集成电路,其中IC3A和IC3B与R5和C4等组成方波发生器,其脉冲频率主要由R5、C4的值决定。R6、C5、IC3D等组成移相电路,移相量由R6、C5的值决定。当脉冲频率调整时,R6、C5的值也应作相应的调整。IC3的各有关脚的输出波形见图6,从图中可以看出,若以IC3的⑥脚输出脉冲为基准,则⑧脚输出脉冲相位超前,10.gif (88 bytes)脚输出脉冲相位滞后。
IC4、IC5为四“非门”集成电路,两者组成控制门电路,其中IC4C、IC4D、IC5D组成光标沿X轴方向移动的控制电路,IC4A、IC4B、IC5C组成光标沿Y轴方向移动的控制电路,IC5A为左键控制电路,IC5B为右键控制电路。
P1的①、②脚接鼠标器的Y轴方向原光敏传感器两个光敏晶体管的输出端,③、④脚接鼠标器的X轴方向原光敏传感器两个光敏晶体管的输出端,⑤、⑥脚接鼠标器的左、右键的接点,连接电路如图7所示。

22.gif (6472 bytes)
22-3.gif (4229 bytes)


下面分别以控制光标沿X轴正方向移动和控制鼠标器左键为例说明这一部分电路的工作原理。
当发射器按下S1后,接收器IC2的D0端输出高电平,使“与”门IC4D的13.gif (106 bytes)脚为高电平,而IC2的D1端为低电平,使IC5D12.gif (175 bytes)脚为高电平,这样就使从IC4D的12.gif (175 bytes)脚输入的脉冲信号得以从IC5D的11.gif (88 bytes)脚输出,这时P1的③、④脚输出给鼠标器的脉冲信号为④脚相位超前,光标向X轴正方向移动;同理,如果按下发射器S2键,则接收器P1的③、④脚输出给鼠标器的脉冲信号为④脚相位滞后,光标向X轴负方向移动。当S1、S2均不按下时,IC2的D0、D1端均为低电平,
IC5D的11.gif (88 bytes)脚为低电平,P1的④脚没有脉冲信号输出,虽然这时P1的③脚有脉冲信号输出,但由于没有两个脉冲信号进行相位比较,光标在X轴方向不会产生移动。相关点的脉冲信号波形见图8。
如果按下发射器的S5,则接收器IC2的D0、D1同时输出高电平,IC5A的③脚输出低电平,相当于按下鼠标器的左键。需要说明的是:由于D0、D1均为高电平,IC4C的10.gif (88 bytes)脚、IC4D的11.gif (88 bytes)脚输出相位相反的脉冲信号,在任一时刻IC5D的12.gif (175 bytes)13.gif (106 bytes)脚均有一端为低电平,从而使IC5D的11.gif (88 bytes)脚输出高电平,因此按S5不会使光标产生X方向的移动。
对于控制光标沿Y轴方向移动和控制鼠标器右键,其工作原理可依此类推。

安装和调试

主要元器件的型号和参数在图4、图5中均己标注。安装和调试的一个很重要的工作是用于改装的鼠标器的选择,笔者用作试验的鼠标器是美上美机械鼠标器。根据图5所示电路的要求,鼠标器的集成电路必须为正电压供电(相对于地),左、右键控制信号必须为低电平有效,即不按键时控制端对地为正电压。满足以上两个条件的机械鼠标器均可使用。下面以美上美机械鼠标器为例具体说明接线方法。先拆掉X轴、Y轴方向的光敏传感器(鼠标器中光敏传感器为三个引脚,红外发光二极管为两个引脚)及左、右键按钮开关,将图5中P1⑦、⑧脚的连线和鼠标器电路板的地相连,X轴方向的光敏传感器有三个安装孔,其中一个为公共端,另两个为信号输出端,这两个输出端分别接P1的③脚和④脚,Y轴方向的连线与此类似。
调试时,按下S1,如光标向相反的方向即X轴负方向移动,只要调换一下和鼠标器电路板相连接的P1的③、④脚的线即可;按下S3,如光标向相反的方向Y轴负方向移动,只要调换与鼠标器电路板相连的P1的①、②脚即可。X轴、Y轴正方向正确了,负方向也就自然正确了。为了制作和使用方便,可将鼠标器的电路板拆下,与接收器的电路板装在一个盒子里。
如果用其它机械鼠标器进行改装,接收器部分的控制电路可能要作适当改动。