欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

微机实验--串口通信

程序员文章站 2024-02-02 15:54:28
...

//
题目:
运用微机系统串行口知识,进行微机系统串行口的测试;完成硬件测试环境;编写程序对微机系统的串口进行自发自收的内环测试;数据发送从键盘输入,接受数据在屏幕上显示。

不多BB,直接上代码

.586
DATA SEGMENT USE16
BUF DB 30 DUP(?)
DATA ENDS

CODE SEGMENT USE16
    ASSUME CS:CODE, DS:DATA
START:
    MOV AX, DATA
    MOV DS, AX
    CALL I8250			; 8250初始化 
    MOV BX, OFFSET BUF
SEND:MOV DX, 3FDH
	IN AL, DX
	TEST AL, 20H
	JZ SEND
    MOV DX, 3F8H
    MOV AH, 1
    INT 21H
    CMP AL, '$'
    JZ COUT
    OUT DX, AL
RECE:MOV DX, 3FDH
	IN AL, DX
	TEST AL, 01H
	JZ RECE				; 判断一帧数据接收完整
	MOV DX, 3F8H
	IN AL, DX
	AND AL, 01111111B
	CMP AL, 03H
	JZ EXIT
	MOV [BX], AL
	INC BX
	JMP SEND
	
COUT:MOV AH, 2
    MOV DL, 0AH
    INT 21H				; 光标下移一行
    MOV BYTE PTR [BX+1], '$'
	MOV AH, 09H
	MOV DX, OFFSET BUF
	INT 21H			 	; 显示字符字符串
	
EXIT:MOV AH,4CH
    INT 21H				; 结束程序
    
I8250 PROC
    MOV DX, 3FBH
    MOV AL, 80H
    OUT DX, AL
    MOV DX, 3F9H
    MOV AL, 0
    OUT DX, AL
    MOV DX, 3F8H
    MOV AL, 30H
    OUT DX, AL
    MOV DX, 3FBH
    MOV AL, 0AH
    OUT DX, AL
    MOV DX, 3F9H
    MOV AL, 0
    OUT DX, AL
    MOV DX, 3FCH
    MOV AL, 10H
    OUT DX, AL
    RET			
I8250 ENDP
    
CODE ENDS
    END START

输入样例123$
输出样例123

相关标签: 汇编