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

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

?? main.pas

?? CH372的單片機編程,VC編程,VB編程,dephi編程
?? 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一区二区三区免费野_久草精品视频
国产很黄免费观看久久| 亚洲韩国精品一区| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 成人一区二区三区视频在线观看 | www一区二区| 久久99在线观看| 久久伊人中文字幕| 粉嫩在线一区二区三区视频| 欧美韩日一区二区三区| 成人午夜看片网址| 亚洲男同性视频| 欧美色倩网站大全免费| 久久精品国产在热久久| 久久久99久久| 91啪亚洲精品| 午夜国产精品一区| 精品日产卡一卡二卡麻豆| 国产精品 日产精品 欧美精品| 国产片一区二区三区| 91麻豆国产福利精品| 亚洲国产精品嫩草影院| 日韩欧美国产综合在线一区二区三区| 国产呦萝稀缺另类资源| 中文字幕一区二区三区色视频| 欧美自拍偷拍午夜视频| 麻豆精品新av中文字幕| 国产精品二区一区二区aⅴ污介绍| 日本福利一区二区| 免费xxxx性欧美18vr| 国产精品美女久久久久久久 | 亚洲视频你懂的| 91精品综合久久久久久| 丰满岳乱妇一区二区三区| 亚洲成人av一区二区三区| 国产三级一区二区| 欧美日韩一区 二区 三区 久久精品| 麻豆国产精品777777在线| 中文字幕中文字幕一区二区| 欧美精品tushy高清| www.亚洲色图.com| 老司机免费视频一区二区三区| 国产精品人人做人人爽人人添 | 美女视频黄 久久| 亚洲欧美激情插| 26uuu久久天堂性欧美| 欧美视频一区二| 懂色av中文字幕一区二区三区| 亚洲国产精品久久久男人的天堂 | 亚洲欧美一区二区三区极速播放 | 亚洲一区二区3| 欧美激情在线一区二区| 日韩丝袜情趣美女图片| 欧美三级视频在线播放| 99久久婷婷国产| 麻豆精品视频在线观看视频| 亚洲愉拍自拍另类高清精品| 亚洲国产精品国自产拍av| 91精品国产免费久久综合| 91啦中文在线观看| 国产精品资源网| 免费在线观看一区| 亚洲一区二区在线观看视频| 欧美国产1区2区| 久久精品人人做人人爽人人| 日韩欧美国产不卡| 日韩一区二区免费在线电影| 欧美日韩精品免费| 在线一区二区观看| 91网站视频在线观看| 成人不卡免费av| 大胆欧美人体老妇| 国产超碰在线一区| 国产成人亚洲精品青草天美| 国产毛片精品一区| 国产一本一道久久香蕉| 国产原创一区二区| 国产精品77777| 国产aⅴ综合色| 国产成人综合网| 国产91色综合久久免费分享| 国产老肥熟一区二区三区| 国产在线播精品第三| 国产成人精品三级| 成人美女视频在线看| 粉嫩13p一区二区三区| 国产iv一区二区三区| 高清国产一区二区三区| 成人自拍视频在线观看| 91一区二区在线观看| 91久久人澡人人添人人爽欧美| 在线中文字幕一区| 在线播放欧美女士性生活| 欧美剧情片在线观看| 欧美一区二区成人6969| 欧美xxxxx牲另类人与| 久久久精品黄色| 国产精品视频线看| 一区二区三区视频在线观看| 亚洲bdsm女犯bdsm网站| 美女在线一区二区| 国产精品1024久久| 91福利在线观看| 91精品国产综合久久精品麻豆| 日韩一区二区免费电影| 国产欧美精品日韩区二区麻豆天美 | 国产一区二区在线观看免费| 国产91丝袜在线18| 在线精品视频免费观看| 日韩欧美一二区| 国产精品理伦片| 亚洲成人资源网| 国产九色sp调教91| 欧日韩精品视频| 欧美mv和日韩mv的网站| 国产精品成人一区二区艾草| 亚洲第一av色| 国产成人免费av在线| 欧美综合在线视频| 精品伦理精品一区| 亚洲老司机在线| 蜜臀a∨国产成人精品| 成年人午夜久久久| 欧美一区在线视频| 国产精品第五页| 久久国产精品99久久人人澡| 成人av先锋影音| 日韩一区二区三区视频在线观看| 中文字幕不卡在线| 久久成人羞羞网站| 91丝袜高跟美女视频| 欧美电视剧在线观看完整版| 亚洲另类春色校园小说| 韩国女主播一区二区三区| 在线视频中文字幕一区二区| 久久色在线观看| 午夜精品福利一区二区三区蜜桃| 国产高清久久久久| 日韩三级av在线播放| 一区二区三区不卡视频| 成人免费视频国产在线观看| 欧美一级久久久| 一区二区在线观看视频在线观看| 国产一区二区三区电影在线观看| 欧美三级在线视频| 亚洲免费观看高清完整版在线观看| 九九九精品视频| 337p亚洲精品色噜噜噜| 一区二区理论电影在线观看| 成人午夜电影久久影院| 欧美大胆人体bbbb| 午夜国产精品影院在线观看| 色婷婷综合久久久中文一区二区| 国产日产亚洲精品系列| 激情综合色综合久久综合| 欧美乱熟臀69xxxxxx| 樱花影视一区二区| 国产寡妇亲子伦一区二区| 亚洲精品一区二区三区精华液 | 激情小说欧美图片| 日韩女优毛片在线| 久久超碰97中文字幕| 欧美一区二区三区电影| 日韩精品91亚洲二区在线观看| 欧美日韩一区成人| 性欧美大战久久久久久久久| 欧美在线不卡一区| 亚洲国产精品麻豆| 欧美高清dvd| 免费在线观看不卡| 精品蜜桃在线看| 国产风韵犹存在线视精品| 久久综合国产精品| 国产激情视频一区二区三区欧美| 国产欧美日韩在线视频| 风流少妇一区二区| 中文字幕一区二区三区在线不卡 | 亚洲国产日韩精品| 欧美图片一区二区三区| 日韩理论电影院| 成人黄色小视频| 樱桃视频在线观看一区| 色婷婷av一区二区三区之一色屋| 日韩欧美一区二区久久婷婷| 国产一区二区精品久久91| 欧美mv和日韩mv的网站| 韩国成人福利片在线播放| 国产欧美一区二区精品秋霞影院| 国精品**一区二区三区在线蜜桃| 91精品婷婷国产综合久久| 一区二区三区四区不卡在线| 欧美中文字幕亚洲一区二区va在线| 中文字幕日韩精品一区| a级精品国产片在线观看| 洋洋av久久久久久久一区| 日本久久精品电影| 亚洲自拍偷拍九九九| www国产精品av| 国产成人午夜精品影院观看视频| 国产视频911| 成人一级片网址|