PC機之間通訊

2021-04-24 03:20:43 字數 2496 閱讀 9312

code   segment

assume  cs: code

start:

;初始化波特率除數暫存器

mov dx , 3fbh        ;指向線路控制暫存器

mov al , 80h           ;位7置1

out dx , al              ;傳送此位元組

mov dx , 3f9h         ;指向波特率除數的最高有效位

mov al , 0                 ; 1200 bps對應的最高有效位

out dx , al              ;傳送此位元組

dec dx                       ;指向波特率除數的最低有效位

mov al , 60h             ; 1200 bps對應的最低有效位

out dx , al               ;傳送此位元組

;初始化線路控制暫存器:

mov al , 1bh            ;資料長度為8位 , 1個奇偶校驗位 , 偶校驗 , 1個停止位

mov dx , 3fbh         ;指向線路控制暫存器

out dx , al               ;傳送此位元組

;初始化中斷允許暫存器

mov dx ,  3f9h         ;指向中斷允許暫存器

mov al ,  0                 ;禁止所有中斷

out dx , al               ;傳送位元組

read:      ;線路狀態檢測迴圈

mov dx , 3fdh        ;指向線路狀態暫存器

in al , dx                  ;取狀態位元組

test al , 1eh           ;檢查錯誤

jnz error                ;若出錯則轉錯誤處理例程

test al , 01h            ;測試是否已收到資料

jnz receive            ;轉接收例程

test al , 20h           ;測試是否可以傳送字元

jnz  send                 ;若是**送例程

jmp read                 ;迴圈檢測

send:       ;傳送字元(來自鍵盤):

mov ah , 1               ;bios功能用以檢測是否有字元可讀

int 16h                     ;bios鍵盤中斷

jz  read                   ;若無擊鍵則返回迴圈

mov ah , 0               ;bios功能用於取擊鍵碼

int 16h                     ;擊鍵碼現在al中

cmp al , 03h           ;檢測ctrl+c

jz exit                     ;若是 , 轉exit處結束程式

mov dx , 3f8h        ;指向傳送保持暫存器

out dx , al             ;傳送字元

jmp  read               ;返回迴圈

receive:        ;接收資料(在螢幕上顯示):

mov dx , 3f8h       ;接收資料暫存器

in  al , dx               ;取新收到的字元

cmp al , 03h           ;檢測ctrl+c

jz  exit                     ;若是 , 轉exit處結束程式

mov dl , al            ;準備顯示字元

mov ah , 2               ;用於顯示字元的dos中斷

int 21h                     ;顯示字元

cmp al , 0dh          ;判斷剛才收到的字元是否為回車

jnz read                 ;不是,轉線路檢測迴圈

mov dl , 0ah         ;若是,則加顯示乙個換行符

mov ah , 2

int 21h

jmp read                ;返回線路檢測迴圈

error:           ;出錯處理,顯示乙個提示

push cs

pop ds

mov dx , offset error_message

mov ah , 9

int 21h        

exit:                ;程式退出

mov ah , 4ch

int 21h

error_message db 0ah , 'error!$'         ;定義出錯時顯示的提示

code    ends

end   start

微控制器 串列埠與PC通訊

先通過串列埠除錯工具即pc傳送字元給微控制器,微控制器接收資料後再發給pc,再次通過串列埠除錯工具觀察傳送結果,即實現了pc到微控制器的收發 由於本地 需要安裝虛擬串列埠,pc用com1口,mcu的compim設為com2,波特率均為9600 org 0000h ajmp main org 0023...

PC機串列埠通訊的工作原理

pc機串列埠通訊的工作原理是什麼 串列埠是計算機上一種非常通用裝置通訊的協議 不要與通用序列匯流排universal serial bus或者usb混淆 大多數計算機包含兩個基於rs232的串列埠。串列埠同時也是儀器儀表裝置通用的通訊協議 很多gpib相容的裝置也帶有rs 232口。同時,串列埠通訊...

微控制器和PC機之間的連線程式

pc計算機與微控制器串列埠通訊源程式下面是乙個微控制器與pc機通訊的程式,pc機程式用c語言來編寫,微控制器程式用組合語言來編寫1.pc機程式設計pc採用toubrc進行編寫。程式如下 include defineport0x3f8 利用串列埠1進行通訊 intch 15 main charc cl...