久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機教程網(wǎng) >> MCU設(shè)計實例 >> 瀏覽文章

硬件外掛基礎(chǔ)-看我來山寨按鍵盒子

作者:佚名   來源:本站原創(chuàng)   點擊數(shù):  更新時間:2013年01月14日   【字體:

看我來山寨“按鍵盒子”!

材料清單:

舊鼠標(biāo)一個    (這個大家都能找到就不算資金啦!)

STC89C52最小系統(tǒng)板一塊  (15元)

PL2303 USB轉(zhuǎn)TTL小板一塊(12元)

杜邦線         (附送的!)

9013三極管2個  1k電阻兩個


Ok了就這么多,下面開始做啦


 

(89c52最小系統(tǒng)板)


 
 

(舊鼠標(biāo)電路板~~~哈哈,光電管被我拆了  搞個LED做電源指示用)

這里拆除左右按鍵開關(guān),用9013焊上  基極焊1k電阻引出來做控制端。

 
 

(PL2303 USB轉(zhuǎn)TTL小板)

 
 


(全家福!!呵呵)


PL2303和89c52板子的連接就不說了,資料上都有。鼠標(biāo)板子引出的兩個1k電阻用杜邦線接到89c52的P12和P13腳,分別對應(yīng)左鍵觸發(fā)和右鍵觸發(fā)。


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轉(zhuǎn)接下載到89c52芯片中,至此,硬件部分結(jié)束!

這下可以用串口測試工具檢測下片子工作正常不,串口參數(shù):19200,8,n,1

發(fā)送字符‘a’返回‘!’,發(fā)送字符‘b’返回‘!’,這樣就正常了


下面開始做上位機程序,很簡單,就是在需要的時候發(fā)送字符,就可以控制鼠標(biāo)的左右鍵點擊了。我用的是delphi ,使用spcomm控件

我用大漠的插件做一個cf自動開槍的程序,可以參考下。

哈哈,有了這個什么230錯誤啊,什么開槍變慢啊,什么wai掛檢測啊。。。都不存在了,只要你會找敵人就能把他干倒!!

源碼如下:


unit Unit10;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls,Dm_TLB,ComObj,madKernel, ExtCtrls, SPComm;

type
  TForm10 = class(TForm)
    btn1: TButton;
    tmr1: TTimer;
    lbl1: TLabel;
    cm1: TComm;
    btn2: TButton;
    cbb1: TComboBox;
    procedure FormCreate(Sender: TObject);
    procedure tmr1Timer(Sender: TObject);
    procedure leftclick();
    procedure rightclick();
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure btn1Click(Sender: TObject);
    procedure btn2Click(Sender: TObject);
  
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form10: TForm10;
  plug:dmsoft;

implementation

{$R *.dfm}

procedure TForm10.btn2Click(Sender: TObject);
begin
  cm1.CommName:=cbb1.Text;
  cm1.StartComm;
  tmr1.Enabled:=True;
  btn2.Enabled:=False;
end;

procedure TForm10.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  cm1.StopComm;
end;

procedure TForm10.FormCreate(Sender: TObject);
begin
  Plug:=CreateComObject(CLASS_dmsoft) as dmsoft;
end;


procedure TForm10.leftclick;
begin
  cm1.WriteCommData('a',1);
end;

procedure TForm10.rightclick;
begin
  cm1.WriteCommData('b',1);
end;


procedure TForm10.btn1Click(Sender: TObject);
begin
  tmr1.Enabled:=False;
  cm1.StopComm;
  Self.Close;
end;


procedure TForm10.tmr1Timer(Sender: TObject);
var
x,y:OleVariant;
isfind:Integer;
begin
   begin
     isfind:=Plug.FindColor(370,350,430,351,'AE3D2B',0.9,2,X,Y);
      if isfind=1 then
      begin
        leftclick;
        Sleep(30);
        leftclick;
      end;
      Sleep(20);
   end;
end;

end.



好了 就說這么多了,可能有的地方?jīng)]說全,下次再補補吧,好晚了,明天還要出差。

其實這個只是最最簡單的硬件控制方案了,呵呵,無奈水平有限只能做個這個出來了,以后有時間再研究了!


                                                                                                                                              By   lxm

                                                                                                                                               QQ:455832194



 

 

 

 

 

關(guān)閉窗口

相關(guān)文章

主站蜘蛛池模板: 久久久精品一区二区三区四季av | www九色 | 九九热在线精品视频 | 第一区在线观看免费国语入口 | 欧美精品在线观看 | 久久伊人一区二区 | xxxxxx国产| 中文字幕一区二区三区乱码在线 | 在线国产小视频 | 亚洲精品一区二区三区中文字幕 | 99久久精品一区二区毛片吞精 | 91精品国产91久久久久久 | 亚洲国产精品99久久久久久久久 | 久久三级影院 | 午夜一级大片 | 精品www| 在线播放国产一区二区三区 | 一区二区三区四区av | a级大片免费观看 | 91在线中文字幕 | 一区二区三区中文字幕 | 视频一区二区三区中文字幕 | 久久福利 | 国产精品美女www爽爽爽视频 | 古装三级在线播放 | www.青娱乐| 日韩精品在线观看一区二区 | 国产精品免费大片 | 久久黄色网 | 免费视频一区 | www.4虎影院 国产999精品久久久影片官网 | 天天躁日日躁性色aⅴ电影 免费在线观看成年人视频 国产欧美精品 | 亚洲国产情侣 | 亚洲国产精品区 | 97影院2| 亚洲欧美在线一区 | 亚洲午夜精品久久久久久app | 亚洲精品国产成人 | 久艹av | 国产欧美日韩久久久 | 国产精品免费高清 |