8251串行通讯实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
8251串行通讯实验
一.基本实验内容:
实现二台PC机之间的双机通讯。即甲机输入的键值发送到乙机CRT上显示,反之亦然。二原理图及连线:
1.8251CS连208~20FH (波特率2400)
2.9芯电缆对接二机的RS-232口
三.参考程序
D8251 EQU 208H
Z8251 EQU 20aH
DATA SEGMENT
MESS DB '按下!后返回DOS.',0DH,0AH,'$'
DATA ENDS
STACK SEGMENT
STA DW 32 DUP()
TOP DW
STACK ENDS
CODE SEGMENT
MAIN PROC FAR
ASSUME CS:CODE,DS:DATA,SS:STACK
START:
MOV DX,Z8251 ;初始化8251
MOV AL,40H
OUT DX,AL
MOV CX,1000h
LOOP $
MOV AL,0CEH ;设置为8个数据位,两个停止位波特率因子为16 OUT DX,AL ;无奇偶校验位
MOV CX,1000h
LOOP $
MOV AL,25H ;设为请求发送,允许发送,允许接收状态
OUT DX,AL
MOV CX,1000h
LOOP $
;NIT 8251 END
REC: MOV DX,Z8251
MOV AH,02H
WAIT9: IN AL,DX ;有数据送到吗
AND AL,AH
JZ SEND ;没有数据送到则跳转至发送
MOV DX,D8251 ;有数据送到则从数据缓冲区读入
IN AL,DX
MOV DL,AL
MOV AH,02H ;显示在屏幕上
INT 21H
CMP AL,'!'
JE ED ;接收到结束符则返回DOS
JMP REC ;不是结束符则继续接收
ED: MOV AX,4C00H
INT 21H
SEND: MOV CX,1000h
LOOP $
MOV DX,Z8251
MOV AH,01H
WAIT8: IN AL,DX
AND AL,AH
JZ WAIT8 ;发送缓冲器不空则等待
MOV DL,0FFH
MOV AH,06H
INT 21H
JZ REC ;无键按下则跳回"接收"处
MOV DX,D8251 ;有键按下则发送相应字符
OUT DX,AL
CMP AL,'!' ;是结束字符则返回DOS
JE ED1
JMP REC ;不是结束字符则跳回"接收"处ED1: MOV AX,4C00H
INT 21H
MAIN ENDP
CODE ENDS
END START
四.思考内容:
如何用8253产生串行通讯所需的波特率。