看我来山寨“按键盒子”! 材料清单: 旧鼠标一个 (这个大家都能找到就不算资金啦!) STC89C52最小系统板一块 (15元) PL2303 USB转TTL小板一块(12元) 杜邦线 (附送的!) 9013三极管2个 1k电阻两个 Ok了就这么多,下面开始做啦 (89c52最小系统板) (旧鼠标电路板~~~哈哈,光电管被我拆了 搞个LED做电源指示用) 这里拆除左右按键开关,用9013焊上 基极焊1k电阻引出来做控制端。 (PL2303 USB转TTL小板) (全家福!!呵呵) PL2303和89c52板子的连接就不说了,资料上都有。鼠标板子引出的两个1k电阻用杜邦线接到89c52的P12和P13脚,分别对应左键触发和右键触发。 Ok 万事大吉,下面就是写点代码了,很简单,Let’s gooooooooooo! 89c52的代码如下: #include <reg52.h> unsigned char message; sbit L=P1 ^ 2; //左键 sbit R=P1 ^ 3; //右键 void delay21ms(void) //误差-0.651041666671us { unsigned char a,b; for(b=150;b>0;b--) for(a=63;a>0;a--); } void InitUART(void) { TMOD = 0x20; SCON = 0x50; TH1 = 0xFD; //速率19200 倍速 TL1 = TH1; PCON = 0x80; EA = 1; ES = 1; TR1 = 1; } void SendOneByte(unsigned char c) { SBUF = c; while(!TI); TI = 0; } void main(void) { L=0; R=0; InitUART(); } void UARTInterrupt(void) interrupt 4 { if(RI) { RI = 0; message=SBUF; if (message=='a') //左键按下 { L=1; delay21ms(); L=0; SendOneByte('!'); } if (message=='b') //右键按下 { R=1; delay21ms(); R=0; SendOneByte('!'); } } else TI = 0; } 代码就是这些,很简单,用Keil编译后,使用stc的isp下载工具通过PL2303转接下载到89c52芯片中,至此,硬件部分结束! 这下可以用串口测试工具检测下片子工作正常不,串口参数:19200,8,n,1 发送字符‘a’返回‘!’,发送字符‘b’返回‘!’,这样就正常了 下面开始做上位机程序,很简单,就是在需要的时候发送字符,就可以控制鼠标的左右键点击了。我用的是delphi ,使用spcomm控件 我用大漠的插件做一个cf自动开枪的程序,可以参考下。 哈哈,有了这个什么230错误啊,什么开枪变慢啊,什么wai挂检测啊。。。都不存在了,只要你会找敌人就能把他干倒!! 源码如下: unit Unit10; 好了 就说这么多了,可能有的地方没说全,下次再补补吧,好晚了,明天还要出差。 其实这个只是最最简单的硬件控制方案了,呵呵,无奈水平有限只能做个这个出来了,以后有时间再研究了! By lxm QQ:455832194 |