亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? main.pas

?? CH372/CH375的delphi開發源代碼
?? PAS
字號:
unit Main;

interface

uses
  Windows, SysUtils, Variants, Classes, Forms, StdCtrls, Controls;

type
  TFrmMain = class(TForm)


    Label1: TLabel;
    Label2: TLabel;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    Button6: TButton;
    Button7: TButton;
    Button8: TButton;
    Button9: TButton;
    Button10: TButton;
    Button11: TButton;
    Button12: TButton;
    Button13: TButton;
    Button14: TButton;
    Button15: TButton;
    Button16: TButton;
    Button17: TButton;
    Button18: TButton;
    Button19: TButton;
    Button20: TButton;
    Button21: TButton;
    Button22: TButton;
    Button23: TButton;
    Button24: TButton;
    Button25: TButton;
    Button26: TButton;
    Button27: TButton;
    Button28: TButton;
    Button29: TButton;
    Button30: TButton;
    Button31: TButton;
    Button32: TButton;
    Button33: TButton;
    Button34: TButton;
    Button35: TButton;
    Button36: TButton;
    Button37: TButton;
    Button38: TButton;
    Button39: TButton;
    Button40: TButton;
    Button41: TButton;
    Button42: TButton;
    Button43: TButton;
    Button44: TButton;
    Button45: TButton;
    Button46: TButton;
    Button47: TButton;
    Button48: TButton;
    Button49: TButton;
    Button50: TButton;
    Button51: TButton;
    Button52: TButton;
    Button53: TButton;
    Button54: TButton;
    Button55: TButton;
    Button56: TButton;
    Button57: TButton;
    Button58: TButton;
    Button59: TButton;
    Button60: TButton;
    Button61: TButton;
    Button62: TButton;
    Button63: TButton;
    Button64: TButton;
    Button65: TButton;
    Button66: TButton;
    Button67: TButton;
    Button68: TButton;
    Button69: TButton;
    Button70: TButton;
    Button71: TButton;
    Button72: TButton;
    Button73: TButton;
    devstatue: TLabel;
    pnpproce: TButton;
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure Button8Click(Sender: TObject);
    procedure Button9Click(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure FormKeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure pnpproceKeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    //function mInterruptEvent(mBuffer:pbytearray):cardinal;                //中斷服務程序
    //procedure mCallInt();
  private
    { Private declarations }
  public

    { Public declarations }
  end;

var
  FrmMain: TFrmMain;
  mKeyNo :cardinal=0;  //模擬按鍵號
  const WM_KEYDOWN=$100;
        WM_KEYUP=$101;

implementation
uses CH375dll,unit1,EnterDate;
{$R *.dfm}

//iBuffer 指向一個緩沖區,提供當前的中斷特征數據
//******建議此程序不要設置斷點******
 // 中斷服務程序
procedure mInterruptEvent(mBuffer:pbytearray );stdcall;  // 指向一個緩沖區,提供當前的中斷特征數據
begin
    // CH371產生中斷后,產生一個消息通知主程序
    If mBuffer[0] = 1 Then        // 檢查中斷特征數據
        begin
        mKeyCode := mBuffer[1] And $3F; //取鍵值
        PostMessage(frmmain.Handle, $100, 1, 0); // 中斷特征數據為1則相應鍵號按鈕被按下
        end
    Else
        If mBuffer[0] = 2 Then
         PostMessage(frmmain.Handle, $101, 1, 0); // 中斷特征數據為2則相應鍵號按鍵被釋放
end;

procedure mCallInt() ;
var  x:boolean;
begin
    x:= CH375SetIntRoutine(mIndex,mInterruptEvent);    //調用中斷子程序
    If x =false Then
    begin
        MessageBox(frmmain.Handle,'無法調用中斷', mCaptionInform, MB_OK + MB_ICONERROR );
        Exit;
    End;
end;

// 以下測試PC機與單片機之間的USB通訊,僅作演示,本身沒有意義
procedure TestCommunication();
var     mLength : cardinal;
begin

    mDemoReq.mCommandCode := DEF_CMD_TEST_DATA;    // 測試命令,將PC機發來的所有數據取反后返回
    mDemoReq.mCommandCodeNot := $FF - DEF_CMD_TEST_DATA;
    mDemoReq.mParameter[0] := $5A;  // 任意的測試數據,返回后將按位取反
    mDemoReq.mParameter[1] := $96;  // 任意的測試數據,返回后將按位取反
    mDemoReq.mParameter[2] := $F3;  // 任意的測試數據,返回后將按位取反
    mDemoReq.mParameter[3] := $4C;  // 任意的測試數據,返回后將按位取反
    mDemoReq.mParameter[4] := $39;  // 任意的測試數據,返回后將按位取反
    mLength := CONST_CMD_LEN;       // 命令包的長度
    If CH375WriteData(mIndex,@mDemoReq,@mLength) Then        // 通過CH375發送命令數據,成功
    begin
      mLength := mCH375_PACKET_LENGTH;
      If (CH375ReadData(mIndex,@mDemoReq, @mLength)) Then        // 通過CH375接收應答數據,成功
        begin
          If (mLength = CONST_CMD_LEN) Then
            begin
              If (mDemoReq.mCommandCode <> ($FF - DEF_CMD_TEST_DATA))
                 Or (mDemoReq.mParameter[0] <> ($FF - $5A))
                 Or (mDemoReq.mParameter[1] <> ($FF - $96)) Then
                  application.MessageBox ('通過USB傳輸的數據有錯誤', mCaptionInform, Mb_ok+ MB_ICONEXCLAMATION);
            end
          Else  application.MessageBox ( 'CH375數據測試返回的長度錯誤',  mCaptionInform,mb_ok+ MB_ICONEXCLAMATION);
        end
      Else  application.MessageBox ( 'CH375ReadData 失敗',  mCaptionInform,mb_ok+ MB_ICONEXCLAMATION);
    end
    Else  application.MessageBox ( 'CH375WriteData 失敗',  mCaptionInform,mb_ok+ MB_ICONEXCLAMATION);

end;

//設備事件通知回調程序,將事件消息發送到指定控件的消息處理過程中處理.
Procedure NotifyRoutine(iEventStatus:cardinal );stdcall;
begin
    PostMessage(frmmain.pnpproce.Handle ,WM_KEYUP,iEventStatus,0);
end;

//插拔事件處理過程
procedure TFrmMain.pnpproceKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
var
    iEventStatus:cardinal;
    statue:longbool;
begin
    iEventStatus := Key;   //插拔事件代碼
    statue:=FALSE;
    If (iEventStatus = CH375_DEVICE_ARRIVAL) Then
    begin
        if(mOpen=-1) then //設備還沒打開
        begin
            mOpen := CH375OpenDevice(mIndex);                  //窗體加載時打開設備
            If (mOpen = -1) Then
            begin
                Application.MessageBox('無法打開CH375設備', '信息提示',0);
                Exit;
            End;
            CH375SetTimeout( mIndex, 3000, 3000 );  // 設置USB數據讀寫的超時,超過3000mS未完成讀寫將強制返回,避免一直等待下去
            TestCommunication();
            mCallInt ;  //調用中斷程序
        end;
        frmmain.devstatue.Caption := '**CH372/CH375設備已插上';
        statue:=TRUE;
    end
    Else
    begin
        If (iEventStatus = CH375_DEVICE_REMOVE) Then
        begin
            if(mOpen<>-1) then
            begin
                CH375CloseDevice (mIndex);     //設備拔出,關閉設備句柄
                mOpen :=-1;
            end;
            devstatue.Caption := '**CH372/CH375設備已拔出';
            statue:=FALSE;
        End;
    end;
    //設備打開,按鈕可用;設備沒打開,按鈕禁用
    //LED1...LED8
    frmmain.Button1.Enabled := statue;
    frmmain.Button2.Enabled := statue;
    frmmain.Button3.Enabled := statue;
    frmmain.Button4.Enabled := statue;
    frmmain.Button5.Enabled := statue;
    frmmain.Button6.Enabled := statue;
    frmmain.Button7.Enabled := statue;
    frmmain.Button8.Enabled := statue;
    //命令按鈕
    frmmain.Button9.Enabled := statue;
end;

procedure TFrmMain.FormCreate(Sender: TObject);

begin
    mCaptionInform:= '信息提示';

    //設置設備插拔監視
    if(CH375SetDeviceNotify(mIndex,'',NotifyRoutine)=FALSE) then
        Application.MessageBox(  '設置監視CH372/CH375設備插拔失敗', mCaptionInform, 0);

    mOpen := CH375OpenDevice(mIndex);                  //窗體加載時打開設備
    If mOpen = -1 Then
    begin
      //application.MessageBox( '無法打開CH375設備',mCaptionInform,MB_OK + MB_ICONEXCLAMATION);
      //halt(0);    //關閉程序
      NotifyRoutine( CH375_DEVICE_REMOVE);  //作設備拔出處理
      exit;
    End;



    CH375SetTimeout( mIndex, 3000, 3000 );  // 設置USB數據讀寫的超時,超過3000mS未完成讀寫將強制返回,避免一直等待下去

    //測試PC機與單片機之間的USB通訊,僅作演示,本身沒有意義
    TestCommunication();

//下面加載中斷服務程序 , 中斷服務程序是在應用層執行的, 其線程優先級是THREAD_PRIORITY_TIME_CRITICAL
//當單片機有事需要通知計算機時 , 可以用CMD_WR_USB_DATA5命令寫入中斷特征數據, 計算機的mInterruptEvent線程將會收到該中斷特征數據
//然后mInterruptEvent線程向主程序發出消息進行處理,mInterruptEvent線程相當于中斷服務程序,代替主程序定時查詢單片機

    mCallInt ;  //調用中斷程序
    NotifyRoutine(CH375_DEVICE_ARRIVAL);    //作設備插入處理
end;

procedure TFrmMain.FormClose(Sender: TObject; var Action: TCloseAction);
begin
   CH375SetDeviceNotify(mIndex,'',mPCH375_NOTIFY_ROUTINE(0));     //取消息設備挺拔通知
   CH375SetIntRoutine(mIndex,TiIntRoutine(0));                    //取消中斷上傳
   CH375CloseDevice (mIndex);       //程序退出前關閉設備
   halt(0);
end;

procedure TFrmMain.FormDestroy(Sender: TObject);
begin
    CH375CloseDevice (mIndex);  //程序中斷關閉設備
end;

procedure TFrmMain.Button1Click(Sender: TObject);  //數碼管按鈕1
var
  f: TEnterDlg;
begin
  index:=0;
  f := TEnterDlg.Create(Self);  //數據輸入框顯示
  f.ShowModal;
end;

procedure TFrmMain.Button2Click(Sender: TObject);  //數碼管按鈕2
var
  f: TEnterDlg;
begin
  index:=1;
  f := TEnterDlg.Create(Self);  //數據輸入框顯示
  f.ShowModal;
end;

procedure TFrmMain.Button3Click(Sender: TObject);   //數碼管按鈕3
var
  f: TEnterDlg;
begin
  index:=2;
  f := TEnterDlg.Create(Self);  //數據輸入框顯示
  f.ShowModal;

end;

procedure TFrmMain.Button4Click(Sender: TObject); //數碼管按鈕4
var
  f: TEnterDlg;
begin
  index:=3;
  f := TEnterDlg.Create(Self);  //數據輸入框顯示
  f.ShowModal;
end;

procedure TFrmMain.Button5Click(Sender: TObject); //數碼管按鈕5
var
  f: TEnterDlg;
begin
  index:=4;
  f := TEnterDlg.Create(Self);  //數據輸入框顯示
  f.ShowModal;

end;

procedure TFrmMain.Button6Click(Sender: TObject); //數碼管按鈕6
var
  f: TEnterDlg;
begin
  index:=5;
  f := TEnterDlg.Create(Self);  //數據輸入框顯示
  f.ShowModal;
end;

procedure TFrmMain.Button7Click(Sender: TObject);  //數碼管按鈕7
var
  f: TEnterDlg;
begin
  index:=6;
  f := TEnterDlg.Create(Self);  //數據輸入框顯示
  f.ShowModal;
end;

procedure TFrmMain.Button8Click(Sender: TObject); //數碼管按鈕8
var
  f: TEnterDlg;
begin
  index:=7;
  f := TEnterDlg.Create(Self);  //數據輸入框顯示
  f.ShowModal;

end;

procedure TFrmMain.Button9Click(Sender: TObject);
var
  f: TEnterDlg;
begin
  index:=-1;                    //識別命令按鈕序號
  f := TEnterDlg.Create(Self);  //數據輸入框顯示
  f.ShowModal;
end;

//模擬鍵盤區中按鍵按下事件
//同步按鍵顯示,鍵被按下時顯示◎,否則顯示鍵號
procedure TFrmMain.FormKeyDown(Sender: TObject; var Key: Word;
                                           Shift: TShiftState);
begin
    If Key = 1 Then                // 鍵被按下,下面是先釋放原按鍵再讀取新按鍵值
        begin
        mSyncKeyboard($FF);        // 釋放上次的按鍵
        mSyncKeyboard(mKeyCode);   //根據鍵值作同步顯示
        end;

end;

//模擬鍵盤區中按鍵按下事件
//同步按鍵顯示,鍵被按下時顯示◎,否則顯示鍵號
procedure TFrmMain.FormKeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
   If Key = 1 Then
      mSyncKeyboard($FF);   // 鍵盤按鍵松開
end;


end.





?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色94色欧美sute亚洲线路二 | 日韩 欧美一区二区三区| 国产午夜精品在线观看| 日韩欧美不卡在线观看视频| 制服丝袜日韩国产| 日韩一级视频免费观看在线| 欧美一级搡bbbb搡bbbb| 日韩精品影音先锋| 久久影院视频免费| 国产午夜亚洲精品羞羞网站| 国产精品国产自产拍高清av | 日韩精品亚洲专区| 麻豆91精品91久久久的内涵| 久久国内精品自在自线400部| 蜜臂av日日欢夜夜爽一区| 久久国产精品99久久人人澡| 国内精品不卡在线| 成人黄色片在线观看| 色网站国产精品| 欧美吻胸吃奶大尺度电影| 91精品国产91综合久久蜜臀| 欧美电视剧免费全集观看| 久久久久高清精品| 亚洲丝袜制服诱惑| 日韩精品1区2区3区| 国产美女视频一区| 99久久综合色| 91精品国产一区二区人妖| 久久久久88色偷偷免费| 亚洲欧洲制服丝袜| 久久精品噜噜噜成人88aⅴ| 成人免费电影视频| 4438x亚洲最大成人网| 日本一区二区综合亚洲| 一区二区三区精品视频| 日韩中文字幕麻豆| 99久久99久久精品免费观看 | 欧美大胆人体bbbb| 亚洲欧洲av一区二区三区久久| 亚洲综合小说图片| 国产一区二区三区四| 欧美三级在线看| 国产日韩av一区二区| 亚洲成人av一区二区| 成人av电影在线| 日韩欧美一二区| 一区二区三区中文字幕在线观看| 久久精品72免费观看| 99久久久精品免费观看国产蜜| 欧美一级二级在线观看| 亚洲免费在线看| 成人免费视频播放| 精品乱人伦一区二区三区| 一区二区三区成人在线视频| 丁香婷婷综合网| 日韩精品一区二区三区四区 | 亚洲乱码国产乱码精品精小说 | 成人精品一区二区三区四区| 日韩精品一区在线观看| 午夜精品久久久久| 欧美在线视频日韩| 综合久久综合久久| 99国产精品国产精品久久| 久久九九久精品国产免费直播| 热久久国产精品| 91.com在线观看| 五月天激情综合| 欧美吻胸吃奶大尺度电影| 亚洲免费视频成人| 日本精品一级二级| 亚洲欧美日韩人成在线播放| 99久久国产综合色|国产精品| 国产精品人成在线观看免费| 国产不卡视频一区二区三区| 国产亚洲欧美日韩在线一区| 国产一区二区三区四区五区美女| 日韩欧美成人一区| 国产真实乱偷精品视频免| 日韩一区二区在线播放| 美女一区二区视频| 精品国产乱码久久久久久影片| 蜜臀av一区二区在线免费观看| 宅男噜噜噜66一区二区66| 日韩高清在线观看| 欧美成人女星排名| 国产精品亚洲综合一区在线观看| 久久影院电视剧免费观看| 床上的激情91.| 亚洲视频在线一区观看| 欧美亚洲国产bt| 免费欧美高清视频| 国产亚洲精品资源在线26u| 国产成人精品网址| 一区二区三区精品| 91精品国产麻豆国产自产在线| 蜜桃av噜噜一区二区三区小说| 欧美大尺度电影在线| 成人国产免费视频| 亚洲一区日韩精品中文字幕| 欧美猛男男办公室激情| 久久国产三级精品| 中文字幕日韩av资源站| 欧美日韩国产在线观看| 热久久免费视频| 欧美精品一区二区三区在线 | 色婷婷综合久久久久中文一区二区 | 蜜臀av亚洲一区中文字幕| 久久久高清一区二区三区| 99精品一区二区| 日韩精品色哟哟| 综合分类小说区另类春色亚洲小说欧美| 在线观看91视频| 国产精品99精品久久免费| 一区二区三区成人| 亚洲精品在线一区二区| 色综合 综合色| 国产精品一区二区在线播放| 亚洲激情综合网| 欧美韩国日本一区| 欧美一区二区三区性视频| 成人av片在线观看| 韩国女主播一区二区三区| 一区二区三区四区视频精品免费 | 美女任你摸久久| 亚洲欧美视频在线观看| 欧美不卡一二三| 欧美撒尿777hd撒尿| 成人小视频在线| 久久99国产精品尤物| 亚洲一区二区三区影院| 中文字幕电影一区| 精品国产乱码久久| 欧美色涩在线第一页| eeuss鲁片一区二区三区| 麻豆成人在线观看| 三级成人在线视频| 亚洲一区二区视频在线观看| 中文字幕一区二区三区精华液| 欧美精品一区视频| 欧美日韩一级二级| 在线视频一区二区免费| 波多野洁衣一区| 国产成人在线色| 国产一区二区电影| 国产麻豆成人精品| 国产一区 二区| 国产精品99久久久久| 国产成人在线观看免费网站| 国内精品自线一区二区三区视频| 久久精品国产亚洲5555| 日韩国产欧美在线视频| 同产精品九九九| 亚洲v中文字幕| 日本成人超碰在线观看| 麻豆一区二区三区| 激情综合网av| 国产在线一区观看| 国产成人在线视频免费播放| 国产精品亚洲午夜一区二区三区 | 日本精品一级二级| 欧美日韩一区不卡| 91精品中文字幕一区二区三区| 日韩一区二区在线看| 日韩欧美色综合| 国产欧美综合在线| 国产精品国产精品国产专区不片| 国产精品美女www爽爽爽| 亚洲欧美在线另类| 综合久久综合久久| 亚洲成人资源在线| 美女视频黄a大片欧美| 国产精品一区二区你懂的| 91玉足脚交白嫩脚丫在线播放| 欧美视频一区在线观看| 日韩限制级电影在线观看| 久久久久国色av免费看影院| 亚洲天堂久久久久久久| 日本欧美在线观看| 成人精品在线视频观看| 欧美日韩国产美女| 欧美大尺度电影在线| 中文字幕在线观看一区二区| 视频一区视频二区中文| 国产二区国产一区在线观看| 在线观看视频一区二区| 欧美成人a在线| 亚洲欧美日韩国产综合在线| 美女爽到高潮91| 99久久精品免费看| 日韩视频在线永久播放| 亚洲欧美另类小说| 精品在线亚洲视频| 在线国产亚洲欧美| 欧美极品另类videosde| 亚洲电影你懂得| bt7086福利一区国产| 欧美成人国产一区二区| 亚洲卡通动漫在线| 国产精品影音先锋| 777a∨成人精品桃花网|