freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

delphi串口通信編程-閱讀頁

2024-08-03 22:36本頁面
  

【正文】 SecondProcess: TMyThread。 { create suspended secondprocess does not run yet } := tpLower。 { now run the thread } end。 UniCode UniCode涵蓋了世界上所有國(guó)家的字符碼,每個(gè)字符用一個(gè)唯一的內(nèi)碼來表示,其特點(diǎn)是所有的字符以兩個(gè)字節(jié)表示,不僅中文使用兩個(gè)字節(jié),英文也使用兩個(gè)字節(jié) 串口通信過程中,如果傳送的是一個(gè)英文字節(jié)組成,只要一個(gè)字節(jié)就可以將信息傳送出去;如果傳送的是雙字節(jié)的字符(如中文),完整的字符傳送就必須是兩個(gè)字節(jié)。 multiuser servers and multilanguage applications Var InstrW:WideString。 Instr:string。 InstrW:=。 :=inttostr(length(Instr))。 :=inttostr(length(InstrA))。 現(xiàn) 象 ?純英文字符串使用三種字符串的計(jì)算結(jié)果相同,顯示出一樣的字符串長(zhǎng)度 ?純中文字符串時(shí), String和 ANSIString所呈現(xiàn)的結(jié)果一樣,但 WideString的字符串長(zhǎng)度只有它們的一半 ?中英文混合時(shí), String及 ANSIString所呈現(xiàn)的結(jié)果還是一樣,中文占兩個(gè)字符和英文占一個(gè)字符;但 WideString類型中英文和中文都只占一個(gè)字符, 結(jié) 論 ?Length函數(shù)在不同的類型下所作的計(jì)算是不一樣的 ?Delphi的確是以 String作為默認(rèn)的長(zhǎng)字符串類型 ?字符串的長(zhǎng)度計(jì)算可以用 WideString類型來進(jìn)行,在這種情況下,一個(gè)中英文字符均被計(jì)算為一個(gè)字符 ?實(shí)際所占的字節(jié)大小需要使用 String的類型來計(jì)算 字符編碼 一般的英文字符,可以使用 Ord取得其在ASCII表中的代表號(hào)碼;反過來說,如果想以一個(gè)號(hào)碼而得知其所代表的 ASCII字符是什么,則可以使用 chr函數(shù)來實(shí)現(xiàn)。instrW:Widestring。 temp:string。 instrW:=。 temp:=??。 :=temp。 temp:=??。 :=temp。 字節(jié)數(shù)據(jù)的傳送與接收 ?字節(jié)類型、聲明與傳送 /接收 ?動(dòng)態(tài)數(shù)組 數(shù)組名: Array[startIndex..EndIndex] of 類型 ByteSend:Array[0..9] of Byte。 ByteSend[1]:=46。 ….// 其他代碼 SetLength(ByteReceive,count) var ByteSend:array of byte。 count,i:dword。 begin FHandle := CreateFile(pchar(39。),GENERIC_READ or GENERIC_WRITE, 0, nil, PEN_EXISTING,FILE_ATTRIBUTE_NORMAL, 0)。 for i:=0 to 1 do ByteSend[i]:=StrtoInt([i])。 WriteFile(FHandle,bytesend,count,nil)。 closehandle(FHandle)。 第五章 嵌入式匯編語言開發(fā)通信程序 1. PC系統(tǒng)及體系結(jié)構(gòu) 2. Delphi中的嵌入式匯編語言 3. 嵌入式匯編的通信編程例子 PC系統(tǒng)及體系結(jié)構(gòu) ?寄存器 ?總線結(jié)構(gòu)和主內(nèi)存訪問 ?I/O尋址 寄存器 Intel CPU內(nèi)在 4個(gè)主要的 16位寄存器,即所謂的 AX、 BX、 CX和 DX。 通常將一個(gè) 16位數(shù)的低字節(jié)裝入 AL,高字節(jié)裝入 AH。 偏移量可以保存在 AX、 BX、 CX和 DX寄存器中的任何一個(gè)寄存器里,或者保存在專門為作偏移量的一些寄存器里。 PC機(jī)有 3組總線: ?數(shù)據(jù)總線 ?地址總線 ?控制總線 主內(nèi)存訪問 當(dāng)處理器需要讀內(nèi)存時(shí),它在地址總線上送出地 址并在控制總線的讀出線上置一個(gè)信號(hào)。 發(fā)送數(shù)據(jù)給內(nèi)存時(shí),一個(gè)信號(hào)置于控制總線的寫 入線上,地址放在地址總線上,并將數(shù)據(jù)入在數(shù) 據(jù)總線上,然后發(fā)到內(nèi)存。 begin asm MOV AL,$20 MOV DX, $20 MOV DX,al MOV DX, $20 IN AL,DX MOV PortData,AL。 end。 3)標(biāo)簽 標(biāo)簽沒有長(zhǎng)度限制,但在內(nèi)嵌匯編器中只有前 32個(gè)字符有效。 ?DW(定義字):該指令產(chǎn)生一序列字,每個(gè)操作數(shù)可以是常量表達(dá)式( 16位),或者地址表達(dá)式。 變量聲明 Var ByteVar:Byte。 IntVar:Integer。 操作數(shù) ?內(nèi)嵌匯編器的操作數(shù)可以是常量、寄存器、符號(hào)和運(yùn)算符 ?保留字 Var ch:char asm MOV Ch,1 {將 1裝入 CH寄存器 } MOV amp。 ( 2)表達(dá)式 1) Object Pascal與匯編表達(dá)式的不同 2) 表達(dá)式元素 3) 表達(dá)式類別 4) 表達(dá)式類型 1) Object Pascal與匯編表達(dá)式的不同 Object Pascal與匯編表達(dá)式的最大區(qū)別在于所有匯編的表達(dá)式必須分解成單獨(dú)的可以在編譯時(shí)計(jì)算的常量 Const X=10。 Var Z:Integer。 Var X, Y, Z:Integer。 2)表達(dá)式元素 ?常量 ?寄存器 ?符號(hào) 常量 內(nèi)嵌匯編器支持兩種類型的常量: ?數(shù)值常量 :32位,一般用十進(jìn)制,也支持二進(jìn)制(數(shù)據(jù)后加 B),八進(jìn)制( O),十六進(jìn)制( H或前加 $) ?字符串常量 :字符串必須包括在單引號(hào)或雙引號(hào)之間 寄存器 寄存器 保留字 32位通用寄存器 EAX EBX ECX EDX 32位指針或變址寄存器 ESP EBP ESI EDI 16位通用寄存器 AX BX CX DX 16位指針或變址寄存器 SP BP SI DI 低 8位寄存器 AL BL CL DL 16位段寄存器 CS DS SS ES 高 8位寄存器 AH BH CH DH 協(xié)處理器寄存器堆棧 ST 符號(hào) Delphi的內(nèi)嵌匯編器支持在匯編代碼中存取幾乎所有的 Object Pascal標(biāo)識(shí)符,此外還支持特殊符號(hào) Result,它對(duì)應(yīng)的是函數(shù)內(nèi)部的結(jié)果變量。 Begin Result:=X+Y。 Function Sum(X,Y:integer):Integer。 Begin asm MOV EAX,X ADD EAX,Y MOV Result,EAX end。 下述的符號(hào)不能在匯編語句中使用: ?標(biāo)準(zhǔn)過程和函數(shù)(例如 WriteLn和 Chr) ?Mem,MemW,MemL,Port和 PortW等特殊數(shù)組 ?字符串變量,浮點(diǎn)數(shù)和集合常量 ?沒有在當(dāng)前塊聲明的標(biāo)簽 ?在函數(shù)外的 Result符號(hào) 3)表達(dá)式類別 在內(nèi)嵌匯編程序中將表達(dá)式分為: 寄存器、內(nèi)存引用和立即數(shù) Const start=10。 Asm MOV EAX,start {MOV EAX,xxxx} MOV EAX,count {MOV EAX,[xxxx]} MOV ECX,[start] {MOV ECX,[xxxx]} MOV EDX,OFFSET count {MOV EDX,xxxx} End。 Var QuitFlag:Boolean。 //一個(gè)字 Asm MOV AL, QuitFlag MOV BX, OutBuf MOV DL, OutBuf {出錯(cuò) } End。這兩個(gè)一維數(shù)組的每個(gè)元素代表一個(gè)數(shù)據(jù)端口,它們的端口址址同它們的下標(biāo)是相對(duì)應(yīng)的。 //將 $20寫入 $20端口 PortData:=Port[$20]。 begin asm MOV AL,$20 //數(shù)據(jù) MOV DX, $20 //port地址 OUT DX,AL //將 $20寫入 $20端口 MOV DX, $20 IN AL,DX MOV PortData,AL。 end。assembler。 asm mov dx,ax in al,dx end。assembler。 asm mov dx,ax in ax,dx end。assembler。 const Delay=150。 //PortWriteByte 函數(shù) procedure PortWriteByte(Addr:Word。assembler。 asm xchg ax,dx out dx,al end。Value:Word):Word。register。 //低速寫端口過程 procedure PortWriteWordLS(Addr:Word。assembler。 const Delay=150 //依靠 CPU的速度和卡的速度 asm xchg ax,dx out dx,al mov ecx,delay 1: loop 1 xchg ah,al inc dx out dx,al end。 3. 請(qǐng)解釋流量控制,并描述流量控制的實(shí)現(xiàn)方法。 字符串“ 123木頭人!”中, Delphi判斷的字符總數(shù)是多少?字節(jié)數(shù)又是多少?如果將此字符串由 RS232傳送出去,則在線路上流動(dòng)的字節(jié)是多少? 請(qǐng)以匯編語言實(shí)現(xiàn)一段串口通
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1