为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

一种简单串行鼠标控制的单片机实现

2017-03-22 2页 doc 6KB 15阅读

用户头像

is_511210

暂无简介

举报
一种简单串行鼠标控制的单片机实现一种简单串行鼠标控制的单片机实现 鼠标是一种快速定位器,通过移动鼠标可以快速定位屏幕上的对象,是计算机图形界面交互的必用外部设备。通常,鼠标通过微机中的串口或PS/2鼠标插口与主机连接。当在平面上移动鼠标时,通过机械或光学的方法把鼠标滚轮移动的距离和方向转换成脉冲信号传送给计算机,计算机鼠标驱动程序将脉冲个数转换成鼠标的水平方向和垂直方向的位移量,从而控制显示屏上光标箭头随鼠标的移动而移动。根据此原理,我们可利用鼠标的上位机驱动程序来设计测控系统中的编码器读取软件。 1 串行鼠标的原理及数据协议 微软公司与Mouse Sys...
一种简单串行鼠标控制的单片机实现
一种简单串行鼠标控制的单片机实现 鼠标是一种快速定位器,通过移动鼠标可以快速定位屏幕上的对象,是计算机图形界面交互的必用外部设备。通常,鼠标通过微机中的串口或PS/2鼠标插口与主机连接。当在平面上移动鼠标时,通过机械或光学的方法把鼠标滚轮移动的距离和方向转换成脉冲信号传送给计算机,计算机鼠标驱动程序将脉冲个数转换成鼠标的水平方向和垂直方向的位移量,从而控制显示屏上光标箭头随鼠标的移动而移动。根据此原理,我们可利用鼠标的上位机驱动程序来设计测控系统中的编码器读取软件。 1 串行鼠标的原理及数据 微软公司与Mouse System公司的鼠标都采用串行输入技术。微软公司的协议为3个字节:第1字节的6、7位固定为1,4,5位分别为左右键状态,2、3位为上下移动数据的高6、7位,0、1位为左右移动数据的高6、7位;第2、第3字节发送的都是左右上下的其余6位数据,其中Y表示上下、X表示左右移动的数据位。Mouse System公司的协议格式为5个字节:1个字节用于描述3个按键的状态,2个字节为Y方向的相对坐标,另外2个字节为X方向的相对坐标,具体协议如表1所列。由表1我们可以方便地制作鼠标。 表1 鼠标系统数据信息协议 L=左键状态 M=中键状态 R=右键状态 1=按下 0=释放 X7~X0=X轴(左右)运动数据 Y7~Y0=Y轴(上下)运动数据 2 AT89C51构成的鼠标电路 AT89C2051构成的鼠标接口电路如图2所示。 硬件接口分配如下: P1口完成对按键及X、Y方向的运动扫描; P3.1完成数据发送。 为较好地跟踪鼠标状态,采用12MHz晶振,AT89C2051每μs执行1条指令,能满足实时跟踪的要求。 图2 电路原理图 3 软件设计 设计的软件要完成按键扫描、X方向/Y方向运动扫描、数据发送等任务。在记数光电管产生脉冲的同时,将数据按照格式发送到主机。脉冲的个数反映了移动的距离,单位时间内脉冲数越多,鼠标移动越快。 下面以X方向为例,详细说明方向的判断及脉冲的记数。 X方向的2路信号为P1.2与P1.3,分别用X1与X2表示。当鼠标向左移动时,X1(P1.2)超前于X2(P1.3);当鼠标向右移动时,X1(P1.2)落后于X2(P1.3);假设测得X1、X2都为低电平0(图3中a),若下一次测得X1为高电平1、X2为低电平0(图3中b)。第三次检测到X1、X2电平1(图3中c),继续向左移动,直到检测到X1为低电平1、X2为高电平0(图3中d),正好检测到一个完整的脉冲,计数器加1,接着进入下一个循环。由此可见,要完成一个脉冲的计数,需要检测到四种不同的状态:X1=X2=0;X1=1,X2=0;X1=X2=1;X1=0,X2=1。
/
本文档为【一种简单串行鼠标控制的单片机实现】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索