双机串口通信.txt

来自「利用微机串口1(COM1」· 文本 代码 · 共 89 行

TXT
89
字号
.386
DATAS SEGMENT 
    
DATAS ENDS 

STACKS SEGMENT
    DW 200 DUP(0)
STACKS ENDS

CODES SEGMENT USE16
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
    MOV AX,DATAS
    MOV DS,AX

L1: 
     MOV  DX,3FBH       ;初始化传输线控制寄存器,使它对分频器进行写操作
     MOV  AL,10000011B
	 OUT  DX,AL
	 MOV  DX,3F8H       ;设计字符传送波特率为115200比特,
	 MOV  AL,01H
	 OUT  DX,AL
	 MOV  DX,3F9H        
	 MOV  AL,00H
	 OUT  DX,AL
	 MOV  DX,3FBH       ;初始化传输线控制寄存器,使它对读写缓冲器和中断允许寄存器进行写操作
	 MOV  AL,00000011B
	 OUT  DX,AL
	 MOV  DX, 3FAH      ;初始中断识别寄存器
     MOV  AL, 00H
     OUT  DX, AL	
       	    
;2,检查是否有间断点,有退出,否则继续
L2:  MOV  DX, 3FDH
     IN   AL, DX
     TEST  AL, 10H
     JNZ  EXIT 

;3,检查收缓冲器是否满,满,转L8,否则继续
L3:  TEST  AL, 01H
     JNZ  L8

;4,检查发送缓冲器是否空  不空,转L2,否则继续
L4:  TEST AL, 20H
     JZ  L2

;5,检查有键按下否,没有,转L2,否则继续
L5:  MOV  AH,1
     INT  16H
     JZ   L2

;6,检查按键是否为CTRL+C?否,送发送缓冲器,转L2,否则继续
     ;MOV AH,2
     ;INT 16H
     ;TEST AL,04H
     ;JZ  LL
     ;MOV AH,0
     ;INT 16H
L6:  CMP AL, 03H
     JZ  L7
     MOV  DX,3F8H
     OUT  DX,AL
     MOV  DL,AL
     MOV  AH,2
     INT  21H
     
     MOV  AH,0CH    ;清除键盘缓冲
     MOV  AL,01H
     INT  21H
     JMP  L2                             
;7,发送间断点,退出
L7:  MOV  DX, 3FBH
     MOV  AL, 43H
     OUT  DX, AL
     JMP  EXIT
     
;8,接收数据,显示,转L2
L8:  MOV  DX, 3F8H
     IN   AL, DX
     MOV  DL, AL
     MOV  AH, 2
     INT  21H
     JMP  L2
     
EXIT:
    MOV AH,4CH
    INT 21H
CODES ENDS
    END START

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?