看我来山寨“按键盒子”! 材料清单: 旧鼠标一个 (这个大家都能找到就不算资金啦!) C89C52最小系统板一块(15元) PL2303 USB转L小板一块(12元) 杜邦线 (附送的!) 9013三极管2个1k两个 Ok了就这么多,下面开始做啦
(89c52最小系统板)
(旧鼠标电路板~~~哈哈,光电管被我拆了搞个LED做电源指示用) 这里拆除左右按键开关,用9013焊上基极焊1k电阻引出来做控制端。
(PL2303 USB转TTL小板)
(全家福!!呵呵) PL2303和89c52板子的连接就不说了,资料上都有。鼠标板子引出的两个1k电阻用杜邦线接到89c52的P12和P13脚,分别对应左键触发和右键触发。 Ok 万事大吉,下面就是写点代码了,很简单,Let’s gooooooooooo! 89c52的代码如下: #include 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; SC = 0x50; TH1 = 0xFD; //速率19200 倍速 = TH1; PCON = 0x80; EA = 1; ES = 1; TR1 = 1; } void SendOneByte(unsigned char c) { SBUF = c; while(!); 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; |