微机实验--串口通信(内环自发自收)

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

不多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

  • 17
    点赞
  • 75
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值