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

正文內(nèi)容

delphi串口通信編程-wenkub.com

2025-07-12 22:36 本頁(yè)面
   

【正文】 字符串“ 123木頭人!”中, Delphi判斷的字符總數(shù)是多少?字節(jié)數(shù)又是多少?如果將此字符串由 RS232傳送出去,則在線路上流動(dòng)的字節(jié)是多少? 請(qǐng)以匯編語(yǔ)言實(shí)現(xiàn)一段串口通信程序。 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。 //低速寫端口過(guò)程 procedure PortWriteWordLS(Addr:Word。Value:Word):Word。assembler。 const Delay=150。 asm mov dx,ax in ax,dx end。 asm mov dx,ax in al,dx end。 end。 //將 $20寫入 $20端口 PortData:=Port[$20]。 //一個(gè)字 Asm MOV AL, QuitFlag MOV BX, OutBuf MOV DL, OutBuf {出錯(cuò) } End。 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。 Begin asm MOV EAX,X ADD EAX,Y MOV Result,EAX end。 Begin Result:=X+Y。 Var X, Y, Z:Integer。 ( 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。 IntVar:Integer。 ?DW(定義字):該指令產(chǎn)生一序列字,每個(gè)操作數(shù)可以是常量表達(dá)式( 16位),或者地址表達(dá)式。 end。 發(fā)送數(shù)據(jù)給內(nèi)存時(shí),一個(gè)信號(hào)置于控制總線的寫 入線上,地址放在地址總線上,并將數(shù)據(jù)入在數(shù) 據(jù)總線上,然后發(fā)到內(nèi)存。 偏移量可以保存在 AX、 BX、 CX和 DX寄存器中的任何一個(gè)寄存器里,或者保存在專門為作偏移量的一些寄存器里。 第五章 嵌入式匯編語(yǔ)言開發(fā)通信程序 1. PC系統(tǒng)及體系結(jié)構(gòu) 2. Delphi中的嵌入式匯編語(yǔ)言 3. 嵌入式匯編的通信編程例子 PC系統(tǒng)及體系結(jié)構(gòu) ?寄存器 ?總線結(jié)構(gòu)和主內(nèi)存訪問(wèn) ?I/O尋址 寄存器 Intel CPU內(nèi)在 4個(gè)主要的 16位寄存器,即所謂的 AX、 BX、 CX和 DX。 WriteFile(FHandle,bytesend,count,nil)。),GENERIC_READ or GENERIC_WRITE, 0, nil, PEN_EXISTING,FILE_ATTRIBUTE_NORMAL, 0)。 count,i:dword。 ByteSend[1]:=46。 :=temp。 :=temp。 instrW:=。instrW:Widestring。 :=inttostr(length(InstrA))。 InstrW:=。 multiuser servers and multilanguage applications Var InstrW:WideString。 { now run the thread } end。 var SecondProcess: TMyThread。 ? Resume:執(zhí)行程序代碼。 Tthread類中常用的方法 ? Create:建立線程。 dwFunc:指定串口必須完成的工作 ? CLRDTR:將 DTR線路降成低電壓 ? CLRRTS:將 RTS線路降成低電壓 ? SETDTR:將 DTR線路升成高電壓 ? SETRTS:將 RTS線路升成高電壓 ? SETXOFF:當(dāng)接收到 Xoff字符時(shí)激活傳輸操作 ? SETXON:當(dāng)接收到 Xon字符時(shí)激活傳輸操作 ? SETBREAK:設(shè)置通信狀態(tài)為中斷(送出 BREAK信號(hào)) ? CLRBREAK:清除 BREAK信號(hào),使傳輸動(dòng)作繼續(xù) GetCommModemStatus 取得串口數(shù)字輸入線路電壓狀態(tài)可用該函數(shù) BOOL GetCommModemStatus( HANDLE hFile, // 通訊設(shè)備的句柄 LPDWORD lpModemStat // 控制寄存器中數(shù)值的地址 )。 //取長(zhǎng)度 readfile(FHandle,dat1,length,flag,nil)。 if flag0 then if dat1[0]=chr($fe) then stepno:=1。 flag:dword。 WriteFile(FHandle,dat,strlen,strlen,nil)。 xx:=0。 dat[1] := chr($1B)。 strlen:DWord。 := 8。 GetCommState(FHandle, FDCB)。 DCB = _DCB。 //表示輸入結(jié)束的字符 EvtChar: CHAR。 //0,1,2:1,2 XonChar: CHAR。 //傳送 XON閾值 XoffLim: Word。 //DCB結(jié)構(gòu)的長(zhǎng)度 BaudRate: DWORD。 if FHandleINVALID_HANDLE_VALUE then showmessage(?串口打開成功!’ ) Else showmessage(?串口打開失??!’ ); CloseHandle(FHandle)。 ComName:array[0..4] of char。在打開設(shè)備時(shí),此參數(shù)設(shè)定為 OPEN_EXISTING ? dwAttrsAndFlags :文件屬性及相關(guān)標(biāo)志。以串口通信來(lái)說(shuō),就是 COM COM2等 ? dwDesiredAccess :讀寫模式設(shè)備。 校驗(yàn)錯(cuò)誤 指數(shù)據(jù)在傳輸中被破壞,至少可以說(shuō)明設(shè) 備在奇偶校驗(yàn)位類型設(shè)置不同或者字長(zhǎng)不 同。 ? CRC(C yclic Redundancy Check Code循環(huán)冗余校驗(yàn)碼) 將欲傳輸?shù)臄?shù)據(jù)塊視為一堆連續(xù)位所構(gòu)成的一個(gè)整數(shù)值,并將此數(shù)值除一個(gè)特定的除數(shù)。 跳線:欲將數(shù)據(jù)從一個(gè)地方傳送至另一個(gè)地方,其實(shí)只要使用第 2引腳、第 3引腳與第 5引腳就可以形成一個(gè)最簡(jiǎn)單的通信線路。 硬件握手用到 DSR、 CTS、 DTR、 RTS4條硬件線路,其中 DTR、 RTS指的是計(jì)算機(jī)上的 RS232端;而 DSR、CTS則是指被控制的設(shè)備端。 握手控制可以具休分為硬件握手和軟件握手。 握手 握手信號(hào):提供一種控制數(shù)據(jù)流的方法,即接收設(shè)備可以控制發(fā)送設(shè)備的數(shù)據(jù)發(fā)送。 起始位及停止位 ?異步串行傳輸時(shí)需要 ?當(dāng)發(fā)送端要開始傳送數(shù)據(jù)時(shí),便將傳輸線上的電壓由低電位提升至高電位,而當(dāng)傳送結(jié)束后,再將電壓降至低電壓。數(shù)據(jù)候鏈路釋放后, Modem和 DTE返回到初始狀態(tài)。 ?DTE的通信控制軟件在檢測(cè)到振鈴指示后,開始通過(guò)計(jì) 算機(jī)振鈴指示的 ON和 OFF狀態(tài)的變化次數(shù)來(lái)進(jìn)行計(jì)數(shù)。 USB特性:低價(jià)位,熱連接,單一的連接頭方式,連接數(shù)多,線上供電,不占系統(tǒng)資源,錯(cuò)誤檢測(cè)與復(fù)原,節(jié)省能源,支持四種傳輸(巨量、實(shí)時(shí)、中斷及控制 4種傳輸模式),速度較快( 12M bps/RS232最快 115bps) IEEE1394 IEEE1394(也稱 FireWire,火線 )與 USB一樣擁有即插即用的功能,也是用于解決計(jì)算機(jī)與外圍設(shè)備復(fù)雜的連接問(wèn)題,并且也是使用串行通信的傳輸方式。 通常不是 8位就是 7位。 在通信領(lǐng)域,常常把這種類型的資料叫做 二進(jìn)制數(shù)據(jù)。這些數(shù)值的范圍通常在 0127或 0255范圍。 ? 異步方式:以字符為傳送單位,傳送的字符之間有無(wú)規(guī)律的間隔,這樣可能使接收設(shè)備不能正常接收數(shù)據(jù),因?yàn)槊拷邮胀暌粋€(gè)字符都不能確切地知道下一個(gè)接收的字符從何時(shí)開始。(通過(guò)加開始位和停止位實(shí)現(xiàn))傳輸效率低,成本也低。 7位: ASCII碼,每個(gè)字節(jié)留一個(gè)備用位 8位:前 128個(gè)遵循 ASCII碼規(guī)則,其余的128個(gè)用來(lái)做擴(kuò)展字符、數(shù)字符號(hào)、圖形字符等編碼。 幀 幀:在串行異步通信情況下,構(gòu)成一個(gè)字節(jié)的那些數(shù)據(jù)單元被稱為數(shù)據(jù)位,在數(shù)據(jù)位的前、后要加上起始位、停止位和奇偶校驗(yàn)位。 串行通信 ?RS232串行通信 ?RS485串行通信 ?USB接口 ?IEEE1394 RS232串行通信 RS232的通信端口是每臺(tái)計(jì)算機(jī)上的必要配置, 通常含有 COM!和 COM2兩個(gè)端口。 IEEE1394的傳輸速度是 400Mbps,而且速度還向 1000Mbps邁進(jìn) USB與 IEEE1394的比較 比較項(xiàng)目 USB IEEE1394 應(yīng)用 低速設(shè)備 高速設(shè)備 帶寬 ( Mbps) ,12 100,200,400 電纜長(zhǎng)度 5米 電纜 4線 6線 即插即用 支持 支持 硬件基礎(chǔ)知識(shí) PC機(jī)的 RS232接口名稱尚未統(tǒng)一,有多個(gè)名稱: RS232口、串口、通信口、 COM口、
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1