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

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

?? main1.~pas

?? PC Host used for controlling and command exchanging to the SPI flash memory controller which enables
?? ~PAS
字號:
unit Main1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, CPDrv,
  ExtCtrls, Mask, Math;

type
  TForm1 = class(TForm)
    CommPortDriver1: TCommPortDriver;
    Button1: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Timer1: TTimer;
    Button2: TButton;
    Button3: TButton;
    Entrada: TEdit;
    Label4: TLabel;
    Label5: TLabel;
    Label3: TLabel;
    Label6: TLabel;
    Button4: TButton;
    OpenDialog1: TOpenDialog;
    SaveDialog1: TSaveDialog;
    Button5: TButton;
    Label7: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure CommPortDriver1ReceiveData(Sender: TObject; DataPtr: Pointer;
      DataSize: Cardinal);
    procedure Timer1Timer(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure EntradaChange(Sender: TObject);
    procedure EntradaKeyPress(Sender: TObject; var Key: Char);
    procedure Button4Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure CreateImgFile(BufSize:Integer);
    function OpenImgFile : boolean;
    procedure Button5Click(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  offset,loop,count,incount : integer;
  func_type: byte;
  TempChar:Pchar;
  InpFileSize,NumRead,pause:Cardinal;
  FileNameSave,FileNameOpen: String;
  ImageFileSave,ImageFileLoad: file;
  ImageBuffer,CompareBuffer : array[0..4*1024*1024] of byte;
  S_block_L , S_block_H : Byte;
  s: string;
  value: Array of String;
  Index: Integer;
  Next_Block,Page_Complete:boolean;
  NumBlocks:Integer;
//------------

implementation

{$R *.DFM}

const
  HexValues='0123456789ABCDEF';
function HexToInt(Hex: string): integer;
var
  i: integer;
begin
  Result := 0;
  case Length(Hex) of
    0: Result := 0;
    1..8: for i:=1 to Length(Hex) do
      Result := 16*Result + Pos(Upcase(Hex[i]), HexValues)-1;
    else for i:=1 to 8 do
      Result := 16*Result + Pos(Upcase(Hex[i]), HexValues)-1;
  end;
end;

function HexToInt64(Hex: string): int64;
var
  i: integer;
begin
  Result := 0;
  case Length(Hex) of
    0: Result := 0;
    1..16: for i:=1 to Length(Hex) do
      Result := 16*Result + Pos(Upcase(Hex[i]), HexValues)-1;
    else for i:=1 to 16 do
      Result := 16*Result + Pos(Upcase(Hex[i]), HexValues)-1;
  end;
end;


procedure TForm1.Button1Click(Sender: TObject);
var count : integer   ;
Inbuf : Pchar;
begin
CommPortDriver1.PollingDelay:=100;
func_type:=1;
Count:=0;
//incount:=1;
        try CommportDriver1.sendchar(#01);
        finally
        end;
 //       Timer1.Enabled:=True;
 label2.caption:='';
 label6.caption:='';
end;

procedure TForm1.Button2Click(Sender: TObject);
var count : integer   ;
begin
CommPortDriver1.PollingDelay:=100;
func_type:=2;
Count:=0;
//incount:=1;
        try CommportDriver1.sendchar(#02);
        finally
        end;
//        Timer1.Enabled:=True;
 label2.caption:='';
 label6.caption:='';
end;

procedure TForm1.Button3Click(Sender: TObject);
//var count : integer   ;
var
//S_block_L , S_block_H : Byte;
Readloop:Integer;
pause:cardinal;
//label read_block,wait;
begin
CommPortDriver1.PollingDelay:=100;
func_type:=3;
Count:=0;
offset:=0;
S_block_L:= HexToInt(Entrada.Text) and $00ff;
S_block_H:= swap(HexToInt(Entrada.Text) and $ff00);
Index:=Incount div 64;
Setlength(value,((64 * index)+1));
if SaveDialog1.Execute then
begin
        FilenameSave:=SaveDialog1.Filename;
        try
        begin
                while count < 3 do
                begin
                        case count of
                        0: CommportDriver1.sendbyte(6);
                        1: CommportDriver1.sendbyte(S_block_L);
                        2: CommportDriver1.sendbyte(S_block_H);
                        end;
                inc(count);
                end;
        end;
        finally;
        end;
CommportDriver1.sendbyte(3);
label2.caption:='';
label6.caption:='';
end;
end;

procedure TForm1.FormActivate(Sender: TObject);
begin
    CommPortDriver1.Connect;
    func_type:=0;
    Entrada.Text:='0000';
    Incount:=64;
end;


procedure TForm1.CommPortDriver1ReceiveData(Sender: TObject;
  DataPtr: Pointer; DataSize: Cardinal);
  var
  idx:integer;
  a:Extended;
begin
        CommPortDriver1.PausePolling;
        s := StringOfChar( #0, DataSize );
        move( DataPtr^, pchar(s)^, DataSize );
        Label6.Caption:= FloattoStr(DataSize);
        CommPortDriver1.FlushBuffers(true,true);
        case func_type of
        1: begin
                Loop:=1;
                Setlength(value,DataSize);
                While   Loop  < Datasize + 1  do
                Begin
                        value[Loop-1]:=Copy(S,Loop,1);
                        StrPCopy(TempChar,value[Loop-1]);
                        Label2.Caption:=Label2.Caption+inttohex(ord(TempChar^),2);
                        inc(Loop);
                end;
           end;
        2: begin
                        Setlength(value,DataSize);
                        value[0]:=Copy(S,1,1);
                        StrPCopy(TempChar,value[0]);
                        Label2.Caption:=Label2.Caption+inttohex(ord(TempChar^),2);
           end;
        3: begin
                        loop:=0;
                        While   Loop  < Datasize   do
                        Begin
                                value[Loop + (64 * offset)]:=Copy(S,(Loop+1),1);
                                StrPCopy(TempChar,value[Loop + (64 * offset)]);
                                ImageBuffer[Loop + (64 * offset)]:= ord(TempChar^);
                                Label2.Caption:=inttohex(ord(TempChar^),2);
                                Label3.Caption:=inttostr(loop+ (64 * offset));
                                inc(Loop);
                        end;
                        inc(offset);
            end;
        4: begin
   //                     loop:=0;
                        value[0]:=Copy(S,1,1);
                       // CommportDriver1.sendbyte(5);
                        if value[0] = chr($10) then
                        begin
//                                while  loop < 64 do
//                                begin
                                        CommportDriver1.sendbyte(ImageBuffer[loop + (offset *64)]);
                                        Label2.Caption:=inttohex(ord(ImageBuffer[loop + (offset *64)]),2);
                                        inc(loop);
//                                end;
                               if loop = 64 then
                               begin
                                        inc(offset);
                                        Loop:=0;
                               end;
                        end;
                        if value[0] = chr($13) then
                                        begin
                                        page_Complete:=true;
                                        Loop:=0;
                                        end
                                        else
                                        page_Complete:=false;
                        S:=' ';
           end;
           5: begin
                        value[0]:=Copy(S,1,1);
                        StrPCopy(TempChar,value[0]);
                        Label2.Caption:=inttohex(ord(TempChar^),2);
                        //if value[0] = chr($20) then
                       // begin
                        // Label2.Caption:='feito';
                      // end;
           end;
        end;

   if ((func_type=3) and (offset < Index))
   then
      CommportDriver1.sendbyte(3)
   else
            case func_type of
            3: CreateImgFile(64 * index);
            end;
   if ((func_type=4) and (offset <  Numblocks )) then
        begin
                if page_complete then
                begin
                        Page_Complete:=false;
                        Label7.Caption:=IntToStr(offset div 4);
                        CommportDriver1.sendbyte(5);
                        CommportDriver1.sendbyte(4);
                   end
                else
                begin

//                        CommportDriver1.sendbyte(4);
                end;
        end;
           CommPortDriver1.ContinuePolling;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
{        inc(count);
        label3.caption:=inttostr(count);
        if count = 100 then
        begin
           Count:=0;
           label2.caption:='';
           Timer1.Enabled:=False;
        End;   }
{        if (func_type = 3) and  (offset < (incount div 64)) then
        begin
                CommportDriver1.sendbyte(3);
                inc(offset);
                Timer1.Enabled:=true;
        end
        else
       }
{        inc(count);
        if count < Incount then
           CommportDriver1.sendbyte(3)
        else
        begin
                 Timer1.Enabled:=false;
                 Next_Block:=true;
        end;}
end;


procedure TForm1.EntradaChange(Sender: TObject);
begin
       incount:=(64 * HexToInt(Entrada.Text)) + 64;
       Label5.caption:=inttostr(incount);
end;

procedure TForm1.EntradaKeyPress(Sender: TObject; var Key: Char);
begin
  if not (Key in ['0'..'9','a'..'f','A'..'F',#8]) then
    Key := #0
end;

procedure TForm1.Button4Click(Sender: TObject);
var
Readloop:Integer;
pause:cardinal;
begin
CommPortDriver1.PollingDelay:=5;
func_type:=4;
Loop:=0;
Count:=0;
offset:=0;
page_complete:=false;
Index:=Incount div 64;
if OpenDialog1.Execute then
       begin
                FilenameOpen:=OpenDialog1.Filename;
                if (OpenImgFile) then
                begin
                        try
                        begin
                                while count < 3 do
                                begin
                                        case count of
                                        0: CommportDriver1.sendbyte(8);            // Avisa microcontolador que armazena tamanho
                                        1: CommportDriver1.sendbyte(S_block_L);    // do arquivo a ser gravado na Flash
                                        2: CommportDriver1.sendbyte(S_block_H);
                                        end;
                                        inc(count);
                                end;
                                CommportDriver1.sendbyte(7);                // Seta modo Page Program
                                CommportDriver1.sendbyte(5);
                                CommportDriver1.sendbyte(4);
                        end;
                        finally;
                        end;
                        label2.caption:='';
                        label6.caption:='';
                end;
       end;
end;

Procedure Tform1.CreateImgFile(BufSize:Integer);
begin
      AssignFile(ImageFileSave,FileNameSave);	{ Open output file }
      {$I-}
         Rewrite(ImageFileSave, 1);
      {$I+}
    if IOResult = 0 then
    begin
      BlockWrite(ImageFileSave, ImageBuffer, BufSize);
      CloseFile(ImageFileSave);
    End
    else
      MessageDlg('N鉶 pude gravar o arquivo !', mtWarning, [mbOk], 0);
end;

function TForm1.OpenImgFile : boolean;
var
      rslt: Boolean;
      L: Cardinal;
begin
      rslt:= False;
      AssignFile(ImageFileLoad,FileNameOpen);	{ Open output file }
      {I-}
      Reset(ImageFileLoad,1);
      {I+}
      if IOResult = 0 then
      begin
        InpFileSize:=FileSize(ImageFileLoad);
        Numblocks:= InpFileSize div 64;
        if InpFileSize mod 64 <> 0 then Numblocks := Numblocks + 1;
        S_block_L:= Numblocks and $00ff;
        S_block_H:= swap(Numblocks) and $ff00 ;
        Fillchar(ImageBuffer,4*1024*1024,$FF);
        BlockRead(ImageFileLoad, ImageBuffer,InpFileSize,NumRead);
        rslt:=true;
        CloseFile(ImageFileLoad);
      end
      else
      MessageDlg('N鉶 pude ler o arquivo !', mtWarning, [mbOk], 0);
      OpenImgFile:=Rslt;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
   New(TempChar);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
Dispose(TempChar);
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
func_type:=5;
CommPortDriver1.PollingDelay:=100;
CommportDriver1.sendbyte($c);
end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品久久久久久久久免费丝袜| 国产一区二区网址| 欧美一级一级性生活免费录像| 亚洲1区2区3区4区| 国产精品色噜噜| 91亚洲永久精品| 国产自产视频一区二区三区| 亚洲欧美另类小说| 精品福利一区二区三区免费视频| 麻豆freexxxx性91精品| 亚洲美腿欧美偷拍| 国产蜜臀97一区二区三区| 欧美精品aⅴ在线视频| 日av在线不卡| 亚洲永久免费av| 国产精品美女www爽爽爽| 精品久久久久久久久久久院品网 | 91视频精品在这里| 精品一区二区三区免费| 欧美tickle裸体挠脚心vk| 欧美日韩精品一区二区三区四区 | 亚洲色图欧美在线| 午夜视频一区二区| 亚洲国产精品二十页| 欧美成人艳星乳罩| 欧美久久久久久久久| 色视频一区二区| 99re66热这里只有精品3直播| 中文字幕一区在线观看视频| 精品国产网站在线观看| 成人av电影免费观看| 国产精品中文字幕日韩精品| 亚洲精品美腿丝袜| **欧美大码日韩| 91精品国产一区二区三区| 久久99精品一区二区三区三区| 欧美激情一区在线观看| 337p日本欧洲亚洲大胆精品| 精品卡一卡二卡三卡四在线| 91精品国产综合久久精品 | 亚洲无线码一区二区三区| 亚洲日本乱码在线观看| 国产三区在线成人av| 国产午夜亚洲精品午夜鲁丝片| 91九色最新地址| 色噜噜夜夜夜综合网| 色爱区综合激月婷婷| 国内精品伊人久久久久av一坑| 亚洲女同女同女同女同女同69| 91精品在线一区二区| 成人av小说网| 色狠狠色噜噜噜综合网| 欧美在线观看18| 制服丝袜中文字幕一区| 欧美一区二区三区小说| 精品久久久久一区| 国产欧美日韩久久| 欧美一级日韩免费不卡| 精品99999| 欧美精品久久天天躁| 亚洲精品中文在线| 亚洲成人av电影在线| 日韩国产欧美在线视频| 欧美aaa在线| 一区二区三区国产| 日韩专区欧美专区| 韩国精品一区二区| 成人污视频在线观看| 91久久精品网| 欧美成人猛片aaaaaaa| 中文字幕乱码亚洲精品一区 | 激情图片小说一区| 日欧美一区二区| 国产精品一区二区黑丝| 91天堂素人约啪| 5858s免费视频成人| 欧洲激情一区二区| 欧美成人性福生活免费看| 中文字幕在线不卡国产视频| 亚洲第一会所有码转帖| 国产精品18久久久久久久网站| 免费的国产精品| www.色精品| 日韩一区二区精品在线观看| 日本一区二区三区国色天香 | 天天爽夜夜爽夜夜爽精品视频| 亚洲人成7777| 亚洲三级在线播放| 毛片av一区二区| 久久精品国产一区二区| 日韩电影在线免费看| 日韩av网站在线观看| 国产福利一区在线观看| 欧美日韩一级二级| 久久精品亚洲乱码伦伦中文 | 在线日韩一区二区| 欧美精品一区二区三区蜜桃| 一片黄亚洲嫩模| 国产福利一区二区三区视频在线| 国产精品亚洲专一区二区三区| 韩国女主播成人在线观看| 欧美自拍偷拍一区| 欧美日韩不卡在线| 欧美一区二区成人6969| 亚洲欧洲三级电影| 国产成人在线视频网站| 制服.丝袜.亚洲.另类.中文| 亚洲视频中文字幕| 国产福利91精品一区二区三区| 成人在线视频一区二区| 精品日产卡一卡二卡麻豆| 亚洲男女一区二区三区| 国产精品亚洲成人| 日韩精品中午字幕| 天天色 色综合| 一本一本大道香蕉久在线精品 | 日韩一区二区在线看| 亚洲精品视频免费观看| 成人福利视频网站| 久久久久久久国产精品影院| 日本不卡视频一二三区| 国产成人在线视频网址| 精品久久久久久无| 九九久久精品视频| 亚洲柠檬福利资源导航| 99视频精品免费视频| 欧美激情一区在线观看| 国产精品一区一区| 精品国产成人系列| 中文字幕一区在线观看| 高清不卡一区二区| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 日韩精品1区2区3区| 成人综合婷婷国产精品久久免费| 91九色02白丝porn| 亚洲欧美aⅴ...| 色婷婷综合五月| 一区二区三区四区国产精品| 91麻豆精品秘密| 一区二区三区欧美亚洲| 国产一区二区三区国产| 欧美精品一区二区三区很污很色的 | 亚洲成av人片一区二区| 欧美日韩在线观看一区二区 | 亚洲欧美一区二区三区孕妇| 成人av在线资源网| 日韩一区在线播放| 色婷婷一区二区| 亚洲亚洲精品在线观看| 91麻豆精品国产91久久久久| 国产精品免费看片| 91在线一区二区三区| 亚洲自拍偷拍九九九| 91精品麻豆日日躁夜夜躁| 国产精品色婷婷| 色综合网站在线| 五月天视频一区| 精品国产一二三区| 精品对白一区国产伦| 国产成人精品免费视频网站| 中文字幕日韩一区二区| 韩日av一区二区| 制服丝袜亚洲精品中文字幕| 久久精品久久综合| 中文字幕精品三区| 欧洲一区二区三区在线| 蜜桃久久av一区| 中文字幕不卡在线观看| 日本韩国欧美在线| 国产精品网站在线观看| 精品在线免费视频| 中文字幕一区二区三区不卡 | 91麻豆精品在线观看| 日韩电影在线免费看| 中文字幕乱码亚洲精品一区 | 亚洲视频狠狠干| 欧美精品少妇一区二区三区| 韩国v欧美v亚洲v日本v| 国产精品成人一区二区三区夜夜夜| 国产精品996| 亚洲激情六月丁香| 日韩精品一区二区三区在线播放| 亚洲已满18点击进入久久| 欧美大片日本大片免费观看| 亚洲超碰精品一区二区| 亚洲精品一线二线三线| 91国在线观看| 国产在线不卡一卡二卡三卡四卡| 日韩一区二区三区在线| 99在线热播精品免费| 蜜臀久久久99精品久久久久久| 日韩一区和二区| 激情小说欧美图片| 2020国产精品自拍| 欧美性做爰猛烈叫床潮| 国产一区二区久久| 国产欧美一区二区三区鸳鸯浴| 国产91精品一区二区麻豆网站| 国产亚洲短视频| 99国内精品久久|