南邮微机接口实验——测试微机系统串行口,串口通信外环自发自收

发送采用查询方式。接收采用中断方式。

发送的查询模式,要查询两个东西,一个是键盘缓冲区,一个是通信线状态寄存器。当键盘缓冲区有内容,读取出键盘缓冲区ASCII码,然后等待通讯线状态寄存器的D5位为1,即可将数据发送到发送保持寄存器(2F8H)。

接收采用中断方式。一旦接收到字符,即转入中断服务子程序。由于采用辅串口,中断类型码为0BH。进入中断服务子程序后读取接收缓冲寄存器内容,如果不是“Esc”即显示出来,否则设置标志flag为-1,退出。在主程序中检测flag为-1即退出程序。

程序开始的时候,首先初始化串口8250和中断8259A,保存原有中断向量0BH,并写入新的0BH向量入口地址。初始化8250的时候注意在中断允许寄存器开放接受中断,在MODEL控制寄存器使D3为1开放中断。

	.586
DATA SEGMENT USE16
OLD0B DD ?
FLAG DB 0
DATA ENDS

CODE SEGMENT USE16
	ASSUME CS:CODE,DS:DATA
BEG:MOV AX,DATA
	MOV DS,AX
	CLI
	CALL I8250
	CALL I8259A
	CALL RD0B
	CALL WRITE0B
	STI
	
SCA:CMP FLAG ,-1
	JE RETURN
	MOV AH,1
	INT 16H
	JZ SCA
	MOV DX,2FDH
	IN AL,DX
	TEST AL,20H
	JZ SCA
	MOV AH,0
	INT 16H
	AND AL,7FH
	MOV DX,2F8H
	OUT DX,AL
	CMP AL,1BH
	JNE SCA
TWA:MOV DX,2FDH
	IN AL,DX
	TEST AL,40H
	JZ TWA
RETURN:CALL RESET
	MOV AH,4CH
	INT 21H
	
SERVICE PROC
	PUSHA
	PUSH DS
	MOV AX,DATA
	MOV DS,AX
	MOV DX,2F8H
	IN AL,DX
	AND AL,7FH
	CMP AL,1BH
	JE NEXT
	MOV AH,2
	MOV DL,AL
	INT 21H
	JMP EXIT
NEXT:MOV FLAG ,-1
EXIT:MOV AL,20H
	OUT 20H,AL
	POP DS
	POPA
	IRET
SERVICE ENDP
	
	
I8250 PROC
	MOV DX,2FBH
	MOV AL,80H
	OUT DX,AL
	MOV DX,2F9H
	MOV AL,00H
	OUT DX,AL
	MOV DX,2F8H
	MOV AL,60H
	OUT DX,AL
	MOV DX,2FBH
	MOV AL,03H
	OUT DX,AL
	MOV DX,2F9H
	MOV AL,01H
	OUT DX,AL
	MOV DX,2FCH
	MOV AL,0BH
	OUT DX,AL
	RET
I8250 ENDP

I8259A PROC
	IN AL,21H
	AND AL,11110111B
	OUT 21H,AL
	RET
I8259A ENDP

RD0B PROC
	MOV AX,350BH
	INT 21H
	MOV WORD PTR OLD0B,BX
	MOV WORD PTR OLD0B+2,ES
	RET
RD0B ENDP

WRITE0B PROC
	PUSH DS
	MOV AX,CODE
	MOV DS,AX
	MOV DX,OFFSET SERVICE
	MOV AX,250BH
	INT 21H
	POP DS
	RET
WRITE0B ENDP

RESET PROC 
	IN AL,21H
	OR AL,00001000B
	OUT 21H,AL
	MOV DX,WORD PTR OLD0B
	MOV DS,WORD PTR OLD0B+2
	MOV AX,250BH
	INT 21H
	RET
RESET ENDP

CODE ENDS
	END BEG


  • 15
    点赞
  • 144
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值