有3种办法去实现:
1、使用您手里的PL2303芯片串口接PD12USB芯片,然后自己写固件之后驱动。
2、使用C8051F320带USB接口的51单片机直接驱动,也需要启动固件。
3、购买CH376已经固化了文件系统的USB接口芯片,直接使用串口即可实现读写。
基于你的现状,我建议您使用第3种办法实现。
B. 通过单片机实现键盘/鼠标动作
换个鼠标试试看
经济实惠的可以看看雷柏的V26、罗技的G100s、雷蛇的炼狱蝰蛇等等
高端点的可以看看罗技的G402和G502,雷柏的V910等等。
都是很不错的鼠标。
C. 单片机与计算机通信时是,通过什么控制计算机的键盘或鼠标呢通过控制键码值电平的高低吗
要控制计算机的键盘或鼠标?是获取计算机按键或鼠标状态吧,这只能通过RS232口由计算机将这些键值或鼠标状态发送给单片机。
D. 请教鼠标/单片机的工作原理
不好意思,下一段的内容我是在拾人牙慧:
光电鼠标的工作原理是:在光电鼠标内部有一个发光二极管,通过该发光二极管发出的光线,照亮光电鼠标底部表面(这就是为什么鼠标底部总会发光的原因)。然后将光电鼠标底部表面反射回的一部分光线,经过一组光学透镜,传输到一个光感应器件(微成像器)内成像。这样,当光电鼠标移动时,其移动轨迹便会被记录为一组高速拍摄的连贯图像。最后利用光电鼠标内部的一块专用图像分析芯片(DSP,即数字微处理器)对移动轨迹上摄取的一系列图像进行分析处理,通过对这些图像上特征点位置的变化进行分析,来判断鼠标的移动方向和移动距离,从而完成光标的定位。
可见,要用到数字微处理器,这玩意儿复杂,它能实现的功能单片机可干不了。数字微处理器的实时运行速度可达每秒数以千万条复杂指令程序,大大超过单片机。
你说的原理跟鼠标那个滚轮差不多,也许用单片机能实现。
E. 请问鼠标里面的芯片是单片机吗具体是怎么工作的
不是单片机,是专用的PS2鼠标芯片,因为鼠标全世界很大量产,所以就有特制的芯片给他用,具体怎么工作还不是一两句说得明白的, 主要就是跟电脑南桥芯片进行PS2通信。 你可以用51做出来,我没做过鼠标,只做过键盘的。 我想应该一样吧,找点资料就可以 PS2很简单的。
F. 电脑控制单片机需要什么软件,什么芯片
主要取决于电脑和单片机通过什么方式连接通讯,如USB、串口等。USB连接的话必须在单片机电路板上能实现USB设备模式,还有PC端驱动等,一句话说不清楚,不建议你做。串口简单,只要单片机有串口,没有的话就IO模拟,接个max232芯片就可以通信了。电脑端简单的就用串口调试助手就行。
G. 能实现通过单片机来控制鼠标位移吗
控制鼠标位移?
单片机可以读取鼠标的位移和按键信息,从而决定程序的执行,而不是
控制鼠标位移。
H. 用单片机实现PS/2鼠标的设计
我也想知道,不过这么点分好像没人回吧,等你这实在没人回了,我出100分,大家分享
1键盘功能及工作原理
PC键盘功能主要有按键识别、去抖、重键处理、发送扫描码、自动重发、接收键盘命令、处理命令等。键盘有编码键盘和非编码键盘。编码键盘程序设计简单,但硬件电路复杂,价格较高;非编码键盘用软件来实现识别键、编码转换、去抖等功能,硬件电路简单,价格便宜。现代微机系统中广泛采用非编码键盘。PC键盘多采用18行×8列的二维矩阵行列结构。采用行扫描法识别按下的按键。
2PS/2协议
PS/2协议是外设与主机之间通信的一种同步双向串行协议。在该协议中主机拥有较高的优先级,在一定条件下可以终止外设正在进行的发送过程。PS/2协议采用的传送数据帧的格式为:1位起始位(0)、8位数据位、1位奇偶校验位、1位停止位(1)。数据发送时低位在前,高位在后。外设每收到主机发来的1帧数据,都要紧随该帧的停止位发送一个握手位ACK(0)应答主机。然后,外设还要发1帧应答数据(0xF0),表示外设已经完整地接收到了主机的命令;而主机则不需发送握手位,也不需要发送应答帧。
PS/2通讯协议是一种双向同步串行通讯协议。通讯的两端通过Clock(时钟脚)同步,并通过Data(数据脚)交换数据。两个脚Clock(时钟脚)和Data�数据脚都是集电极开路的,所以必须接大阻值的上拉电阻。它们平时保持高电平,有输出时才被拉到低电平,之后自动上浮到高电平.任何一方如果想抑制另外一方通讯时,只需要把Clock(时钟脚)拉到低电平。如果是PC机和PS/2键盘间的通讯,则PC机必须做主机,也就是说,PC机可以抑制PS/2键盘发送数据,而PS/2键盘则不会抑制PC机发送数据。一般两设备间传输数据的最大时钟频率是33kHz,大多数PS/2设备工作在10~20kHz。推荐值在15kHz左右(14.8KHz),也就是说,Clock(时钟脚)高、低电平的持续时间都为34μs。每一数据帧包含11~12个位,具体含义如表1所列。
表1数据帧格式说明
1个起始位总是逻辑0
8个数据位(LSB)低位在前
1个奇偶校验位奇校验
1个停止位总是逻辑1
1个应答位仅用在主机对设备的通讯中
2.1键盘到PC键盘接口的通信
当时钟线和数据线均为高电平时,允许键盘发送数据,系统将接收数据;当时钟线被拉为低电平时,表明系统禁止数据传输。图1给出了发送时序,包含1个低电平触发的起始位、8位数据位、1个奇校验位和1个高电平的结束位。
图1发送时序图
当时钟频率为15kHz时,从Clock(时钟脚)的上升沿到数据位转变时间至少要5μs。数据变化到Clock(时钟脚)下降沿的时间至少也有5μs,但不能大于25μs,这是由PS/2通讯协议的时序规定的。如果时钟频率是其它值,参数的内容应稍作调整。发送时一般都是按照数据帧格式顺序发送。其中数据位在Clock(时钟脚)为高电平时准备好,在Clock(时钟脚)的下降沿被PC机读入。PS/2设备到PC机的通讯时序如图2所示。
从PS/2向PC机发送一个字节可按照下面的步骤进行:
(1)检测时钟线电平,如果时钟线为低,则延时50μs;
(2)检测判断时钟信号是否为高,为高,则向下执行,为低,则转到(1);
(3)检测数据线是否为高,如果为高则继续执行,如果为低,则放弃发送(此时PC机在向PS/2设备发送数据,所以PS/2设备要转移到接收程序处接收数据);
(4)延时17μs(如果此时正在发送起始位,则应延时34μs);
(5)输出起始位(0)到数据线上。这里要注意的是:在送出每一位后都要检测时钟线,以确保PC机没有抑制PS/2设备,如果有则中止发送;
(6)输出8个数据位到数据线上;
(7)输出校验位;
(8)输出停止位(1);
(9)延时25μs(如果在发送停止位时释放时钟信号则应延时42μs);
通过以下步骤可发送单个位:
(1)准备数据位(将需要发送的数据位放到数据线上);
(2)延时17μs;
(3)把时钟线拉低;
(4)延时34μs;
(5)释放时钟线;
(6)延时17μs。
2.2PC系统到键盘的通信协议
若时钟线出现高电平,数据线出现低电平,表明系统请求发送,键盘准备产生同步时钟脉冲串,并接收数据。包含了1个低电平触发的起始位、8位数据位、1个奇校验位、1个应答位、1个高电平的结束位。图2为时序图。
图2时序图
由于PS/2设备能提供串行同步时钟,因此,如果PC机发送数据,则PC机要先把时钟线和数据线置为请求发送的状态。PC机通过下拉时钟线大于100μs来抑制通讯,并且通过下拉数据线发出请求发送数据的信号,然后释放时钟。当PS/2设备检测到需要接收的数据时,它会产生时钟信号并记录下面8个数据位和一个停止位。主机此时在时钟线变为低时准备数据到数据线,并在时钟上升沿锁存数据。
而PS/2设备从PC机读到数据。具体连接步骤如下:
(1)等待时钟线为高电平。
(2)判断数据线是否为低,为高则错误退出,否则继续执行。
(3)读地址线上的数据内容,共8个bit,每读完一个位,都应检测时钟线是否被PC机拉低,如果被拉低则要中止接收。
(4)读地址线上的校验位内容,1个bit。
(5)读停止位。
(6)如果数据线上为0(即还是低电平),PS/2设备继续产生时钟,直到接收到1且产生出错信号为止(因为停止位是1,如果PS/2设备没有读到停止位,则表明此次传输出错)。
(7输出应答位。
(8)检测奇偶校验位,如果校验失败,则产生错误信号以表明此次传输出现错误。
(9)延时45μs,以便PC机进行下一次传输。
读数据线的步骤如下:
(1)延时17μs;
(2)把时钟线拉低�
(3)延时34μs�
(4)释放时钟线�
(5)延时17μs�
(6)读数据线。
下面的步骤可用于发出应答位;
(1)延时12μs;
(2)把数据线拉低;
(3)延时5μs;
(4)把时钟线拉低;
(5)延时34μs;
(6)释放时钟线;
(7)延时5μs;
(8)释放数据线。
(1)键盘命令及执行过程
①FFH:(FAAA)复位键盘。系统通过此软件复位命令使键盘进入程序复位和内部自测试,称为基本保证测试(BAT)。复位键盘的过程如下:
a.键盘收到FFH后立即回送ACK(FAH)作答;
b.键盘接口收到ACK后,将键盘时钟和数据线置为高电平;
c.键盘检测到此状态后开始BAT操作;
d.如果BAT正确完成,键盘发送AAH以表示结束,否则以FDH(或其它任何值)表示诊断有误。
②FEH:(XX)重新发送。当系统检测到从键盘送来的任何传输错误时,它便向键盘发送FEH命令。键盘接收到此命令后,将重新送出原来的内容。
③FDH~F7H:空操作(保留未用)。
④F6H:(FA)设置缺省值。此命令使键盘所有条件复位到电源接通时的缺省状态,键盘继续扫描。
⑤F5H:(FA)设置缺省值和停止键盘。此命令使键盘所有条件复位到电源接通时的缺省状态,并停止键盘扫描,等待下一个键盘命令。
⑥F4H:(FA)启动键盘。键盘接收到此命令后,用ACK(FAH)作答,清除输出缓冲器,并启动键盘开始扫描。
⑦F3H+XX:(FA)设置拍发速率和延时参数。每当按下任一键时,键盘以拍发速率连续送出键的接通码,直到键被释放为止。延时参数是指按下一键后,键盘输出的响应时间。系统缺省设置:拍发速率=10个/s±20%,延时=500ms±20%。
当要改变设置时可以使用F3H命令,并后跟一个字节的参数。参数定义如表1所列。
表1
计算拍发速率和响应延时的公式如下:
注:缺省的延时参数值为2CH。
此命令的执行过程如下:
a.键盘收到F3H命令后,用FAH予以响应,并停止扫描和等待随后的参数;
b.键盘若收到随后的设置参数,用另一个ACK响应,并按其参数设置新的拍发速率和响应延时,之后重新开始扫描(若键盘原来是开放的);
c.键盘若收到FAH命令,但无随后的设置参数,则键盘结束命令设置,并保持原来的拍发速率和响应延时,停止扫描。
⑧F2H,F1,EFH:保留未用。
⑨F0H+XX:(FA)设置键盘扫描码命令。此命令用于设置键盘的扫描码,后跟参数指定三种扫描码的哪一种。键盘复位时,默认扫描码是第二种。
扫描方式1:01H行列扫描,按键发送:<E0>XX,放开发送:<E0>(80+XX)
扫描方式2:02H编码扫描,按键发送:<E0>XX,放开发送:<E0>FOXX
扫描方式3:03H简单模式,按键发送:XX放开发送:不发送
⑩EEH:(EE)回送命令。此命令用于辅助诊断,要求键盘接收到EEH时也要回送EEH予以响应。若键盘原来是开放的,则继续扫描。
⑾EDH+XX:(FA)置位/复位LED指示器。键盘右上角有三个LED指示器,分别反映Caps、Num和Scroll三个键的锁定情况。参数字节如表2所列。
表2
此命令执行过程与F3H相似。若命令后跟参数,则按参数设定LED状态并继续扫描。若仅有命令无参数,则不改变LED原状态,并停止扫描。
(2)键盘响应
键盘在下列四种情况下都会向键盘接口发送数据。
①按下任一键,键盘以拍发速率向接口发送键盘接通扫描码。
②释放所按下的键,键盘发送断开扫描码。
③系统向键盘发送键盘命令后,键盘回送应答。
④当用户按键速度超出键盘所能容纳的最大键个数时,键盘做出响应。
后三种情况称为键盘响应。响应字节有7个,定义如下。
①FEH:重新发送响应。当键盘收到一个无效的键盘命令,或者检测到奇偶错的键盘命令时,键盘回送响应字节为FEH,要求系统重发键盘命令。
②FAH:正常应答。对任何一个有效的键盘命令,键盘回送FAH予以响应。
③00H:超限应答。当用户按键速度超出键盘所能容纳的最大键符个数时(16个字节的缓冲器),键盘发送00H。
④FDH:诊断故障应答。键盘接受软件复位命令,执行自测试过程中。若检测到故障,则以FDH应答。此时,键盘停止扫描并等待下一个键盘命令。
⑤AAH:诊断正常应答。键盘在软件复位过程中,正常完成BAT测试,以AAH应答。
⑥FEH:回响命令的应答,对键盘FEH命令的应答。
⑦F0H:断开扫描码前缀,键盘对键符按下后释放的应答,第一个字节为F0H,第二个字节为接通扫描码(有几个键例外)。
3硬件设计
PC系列键盘采用18行×8列的矩阵行列结构。89C51单片机有4个8位I/O端口,因此可以采用P0、P2口再加上P3口的2个(P3.6和P3.7)作为行扫描线。P1口作为列输入线(如果用P0口作列输入线,必须加上拉电阻)。采用P3.0、P3.1作为数据线和时钟线与PC系统进行通信,用P3.2、P3.4、P3.5控制键盘上的3个指示灯。硬件原理如图3所示。
图3硬件原理图
键盘与计算机通过一个五芯(PS/2接口为六芯)插座相接,4个有效引脚的定义分别是电源(VCC)、地(GND)、串行时钟线(SCK)、串行数据线(SIO)。
4软件设计
①消抖及重键处理:通过软件上延时程序来消除抖动;采用后按键优先处理,即多键同时按下时,只重复发送最后按下键的扫描码。
②程序包括键盘扫描子程序、发送键码子程序、发送数据子程序、接收命令子程序、定时器1中断服务程序、主程序等。键盘扫描子程序用于扫描键状态,将被按键的位置号存入缓冲器中;发送键码子程序用于将缓冲区键的接通码或断开码发送给计算机键盘接口或者存在键盘密码缓冲区中;发送数据子程序用于将数据发给计算机键盘接口;接收命令子程序用于接收计算机键盘接口发来的键盘命令;定时器1中断服务子程序用于给程序中的延时提供标准时钟,并具有软件看门狗功能,防止软件出现死机现象;主程序用于系统初始化,子程序调度,锁定状态的显示等。
图4~6是主要软件模块的流程图。单片机源程序见本刊网络补充版(http://www.dpj.com.cn)。
图4主程序流程图
图5扫描键盘程序流程图
图6发送缓冲区键码子程序流程图
I. 那鼠标中也有单片机,能叫嵌入式系统吗
鼠标可以叫嵌入式系统。
1、要弄清这个问题,先要弄清楚“嵌入式系统”的定义:
嵌入式系统定义为:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。
2、嵌入式系统是一个控制程序存储在ROM中的嵌入式处理器控制板。所有带有数字接口的设备,如手表、微波炉、录像机、汽车等,都使用嵌入式系统。
3、有些嵌入式系统还包含实时操作系统(RTOS),如:VxWorks、μClinux、μC/OS-II等,但大多数嵌入式系统都是由单个程序实现整个控制逻辑。
4、嵌入式系统的核心是由一个或几个预先编程好以用来执行少数几项任务的微处理器或者单片机组成。这些软件通常是暂时不变的;所以经常称为“固件”。
J. 关于用单片机制作鼠标
这个问题比较有难度哦。我只回答我所知道的。
51单片机应用很广,但是做鼠标就不太使得上劲了,你可以拆开你手上的鼠标看看。
1.关于单片机,针对鼠标的接口,ps2的和usb的,您看51能方便的实现和电脑通讯吗?51两者都不擅长,或者做个com的鼠标?
2.鉴于你是初学者,只能做机械的,就是以前的球鼠。光电的需要光学方面的知识,不是靠您diy所能解决的。如果您有光学专业知识除外。无线的鼠标,您需要射频方面的设计知识,当然市面上有现成的rf集成芯片,但是天线的设计和layout你还是要自己动手。
3.你还要自己写单片机程序,处理所有的信号中断等等。。。。
4.51我不建议,建议你试试freescale的鼠标单品解决方案,带外围电路和程序的。
鼠标看似简单,设计到光学,射频,程序设计方方面面。楼主加油,祝你成功。
3.