亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
欧美在线观看视频一区二区 | 亚洲成人av电影在线| 一区二区三区免费观看| 美女免费视频一区二区| 99精品桃花视频在线观看| 日韩午夜中文字幕| 亚洲乱码一区二区三区在线观看| 免费成人在线网站| 欧美在线制服丝袜| 国产精品入口麻豆原神| 日本成人在线电影网| 99精品久久久久久| 日本一区二区三区国色天香| 视频一区视频二区在线观看| 99在线精品视频| 久久精品无码一区二区三区| 日本欧美肥老太交大片| 欧美视频在线播放| 免费观看在线色综合| 色播五月激情综合网| 精品国产乱码久久久久久蜜臀 | 97精品久久久午夜一区二区三区 | 欧美视频一区在线观看| 国产精品国产三级国产有无不卡| 国产一区二区视频在线| 51精品国自产在线| 亚洲成人综合视频| 在线精品视频一区二区三四 | 亚洲综合丁香婷婷六月香| 懂色av一区二区三区蜜臀 | 久久国产精品99精品国产| 欧美视频三区在线播放| 日韩美女视频一区| 成人性视频免费网站| 国产丝袜在线精品| 国产一区二三区| 久久一留热品黄| 国产精品综合二区| 国产无一区二区| 国产精品亚洲综合一区在线观看| 久久久亚洲欧洲日产国码αv| 久久99精品国产91久久来源| 日韩区在线观看| 激情图片小说一区| 久久精品在线观看| 成人福利在线看| 日韩理论片网站| 在线观看成人免费视频| 亚洲成a人片综合在线| 777久久久精品| 久久精品国产精品亚洲精品| 久久综合久久综合九色| 国产99久久久国产精品潘金| 1024亚洲合集| 欧美视频你懂的| 老色鬼精品视频在线观看播放| 日韩精品一区二| 成人理论电影网| 夜夜精品浪潮av一区二区三区| 欧美丰满美乳xxx高潮www| 久久精品久久综合| 国产精品无人区| 欧美图区在线视频| 韩国精品主播一区二区在线观看 | 99国产精品一区| 亚洲一区二区三区三| 欧美一区二区免费视频| 国产福利一区在线| 伊人一区二区三区| 精品嫩草影院久久| 91精品国产乱| 成人av免费在线播放| 亚洲国产精品一区二区久久恐怖片 | 91欧美一区二区| 美腿丝袜亚洲三区| 亚洲欧洲精品一区二区精品久久久| 欧美性极品少妇| 国产成人在线影院| 亚洲国产wwwccc36天堂| 国产夜色精品一区二区av| 91激情在线视频| 国产老女人精品毛片久久| 亚洲影视资源网| 日本一区二区久久| 91精品国产综合久久精品| 丰满放荡岳乱妇91ww| 日韩精品一区第一页| 18涩涩午夜精品.www| 精品国产一区二区三区久久影院| 色噜噜久久综合| 成人性视频免费网站| 久久不见久久见免费视频1| 亚洲精品视频在线看| 久久先锋影音av| 欧美一级在线免费| 欧美日韩视频不卡| 日本韩国欧美一区二区三区| 国产成人一区二区精品非洲| 美女视频免费一区| 日韩激情视频网站| 亚洲午夜精品在线| 日韩理论片一区二区| 日本一区二区在线不卡| 精品免费国产一区二区三区四区| 欧美三级电影网站| 色婷婷国产精品| av男人天堂一区| 福利一区二区在线观看| 国内精品视频666| 美女一区二区视频| 日本不卡视频一二三区| 国产综合久久久久久鬼色| 日本午夜一本久久久综合| 亚洲成人手机在线| 午夜影视日本亚洲欧洲精品| 中文字幕综合网| 亚洲视频一区二区在线观看| 中文字幕一区二区三区不卡| 日本一区二区久久| 国产精品青草综合久久久久99| 久久久精品蜜桃| 国产欧美日韩在线观看| 欧美国产1区2区| 国产精品不卡一区二区三区| 国产精品的网站| 亚洲伦理在线免费看| 亚洲狠狠丁香婷婷综合久久久| 亚洲欧美国产高清| 亚洲一线二线三线视频| 亚洲福利视频一区| 日本不卡视频一二三区| 激情综合网天天干| 国产 日韩 欧美大片| 99精品视频在线观看免费| 色婷婷av一区二区| 欧美日韩一区高清| 日韩欧美黄色影院| 国产日韩欧美一区二区三区综合| 国产精品久久毛片a| 亚洲精品国产一区二区精华液| 亚洲韩国精品一区| 美女国产一区二区| 国产不卡视频在线观看| 99久久99久久综合| 欧美日韩二区三区| 精品嫩草影院久久| 亚洲欧洲精品一区二区三区| 亚洲高清三级视频| 国产麻豆精品theporn| 99久久国产综合色|国产精品| 欧美日韩精品电影| 久久精品亚洲精品国产欧美kt∨| 亚洲少妇最新在线视频| 奇米影视一区二区三区| 国产成人综合自拍| 26uuu另类欧美亚洲曰本| 中文字幕一区二区三区视频 | 中文字幕字幕中文在线中不卡视频| 亚洲午夜激情av| 国产精品一区二区男女羞羞无遮挡| 99热99精品| 精品免费一区二区三区| 一区二区三区成人| 国产在线视频一区二区三区| 在线免费观看不卡av| 久久午夜老司机| 偷窥少妇高潮呻吟av久久免费| 国产成人综合在线观看| 欧美一区二区三区思思人| 国产精品午夜久久| 久久99国产精品免费| 在线看日韩精品电影| 亚洲国产电影在线观看| 蜜臀久久99精品久久久久宅男 | 国产精品正在播放| 欧美精品一卡二卡| 亚洲欧美激情一区二区| 国产精品99久久久久久有的能看| 欧美日韩大陆一区二区| 亚洲人成伊人成综合网小说| 国产精品一级二级三级| 日韩视频123| 丝袜美腿高跟呻吟高潮一区| 91免费在线看| 国产精品国产三级国产aⅴ原创| 久久99精品久久久久久国产越南 | 亚洲国产精品精华液网站| 成人开心网精品视频| 久久久不卡影院| 理论电影国产精品| 日韩一级片在线播放| 日韩精品亚洲一区二区三区免费| 在线欧美小视频| 亚洲精品高清视频在线观看| 成人一区二区三区| 国产亚洲欧美日韩俺去了| 国内偷窥港台综合视频在线播放| 欧美一区二区大片| 免费观看在线综合| 日韩欧美不卡一区|