串行接口应用实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(一)8251 串行接口应用实验
一、实验目的
1、掌握8251的工作方式。
2、学习串行通讯的有关知识。
二、实验设备
1、TDN86/88教学实验系统一台。
2、示波器一台。
3、一组排线。
三、实验内容及步骤
1、系统中的8251芯片
系统装有一片8251芯片,并和标准RS-232C接口连接好,如下图所示。
该电路用来完成同PC微机的联机以及串行监控操作的实现,其端口地址为:
数据口:C0H 控制口:C1H
2、实验单元中的8251
这片8251芯片用于各种串行口实验,连线见下图,其端口地址为:
数据口:80H 控制口:81H
3、8251串行接口应用实验
本实验中,串行传输的数据格式规定如下:
(1)一位逻辑‘0’的起始位,8位数据位(由低位开始传输),1位逻辑‘1’停止位。
(2)传输波特率9600baut。
数据信号的串行输出送示波器,可观察数据波形。
与示波器连线如下:
8251 示波器
TxD _____________ +
GND_____________ -
4、实验程序,见13-1.ASM
CODE SEGMENT
ASSUME CS:CODE
START: CALL INIT ;初始化8253和8251
A1: CALL SEND ;向串口送55H
A2: MOV CX,0200H ;定时时间到,再发送下一个数据
LOOP A2
JMP A1 ;重复送数
INIT: MOV AL,76H ;8253的计数器1工作在方式3,送出方波信号,作为8251收发时钟
OUT 43H,AL
MOV AL,0CH ;方波频率为153.6KHz
OUT 41H,AL
MOV AL,00H
OUT 41H,AL
CALL RESET ;复位8251,即向控制口送3个0,一个40H
CALL DELAY ;8251工作速度慢,每送一个控制字,等待一会儿
MOV AL,7EH ;置异步方式:1个停止位,偶校验,字符长为8位,波特率因子为16
OUT 81H,AL ;控制口
CALL DELAY
MOV AL,31H ;RTS输出0,使CTS输入0
OUT 81H,AL ;清除错误标志,并使TxEN置1,允许发送
CALL DELAY
RET
RESET: MOV AL,00H ;复位8251
OUT 81H,AL
CALL DELAY
OUT 80H,AL
CALL DELAY
OUT 80H,AL
CALL DELAY
MOV AL,40H
OUT 81H,AL
RET
DELAY: PUSH CX ;延时子程序
MOV CX,6000H
A3: LOOP A3
POP CX
RET
SEND: PUSH AX ;发送55H
MOV AL,31H
OUT 81H,AL
POP AX
MOV AL,55H
OUT 80H,AL
RET
CODE ENDS
END START
5、实验步骤
(1)将示波器与8251的TxD、GND排针引脚相连接。
(2)输入程序并检查无误,经汇编、连接后装入系统。
(3)运行程序,在示波器上观察数据波形。
(4)改变发送的数,运行程序,观察相应波形。
四、思考题
8251对收发时钟有何特殊要求?
(二)双机通讯实验
一、实验目的
了解8251在半双工双机通讯情况下的软件编制和硬件连接技术。
二、实验设备
1、TDN86/88微机教学系统两台。
2、一组排线。
三、实验内容
用排线将两台仪器相连,具体连线如下图所示。
其中一号机用作接收机,二号机用作发送机。
实验目的是将二号机中的3000~3009H十个单元中的代码传送到一号机的3000~3009H 单元中,1、2号机各自的实验程序如下:
一号机实验程序,见14-1.ASM
CODE SEGMENT
ASSUME CS:CODE
START: MOV AL,76H
OUT 43H,AL
MOV AL,0CH
OUT 41H,AL
MOV AL,00H
OUT 41H,AL
CLI
CALL INIT
CALL DELAY
MOV AL,7EH
OUT 81H,AL
CALL DELAY
MOV AL,34H ;清除出错标志,允许接收
OUT 81H,AL
CALL DELAY
MOV AX,0152H ;显示‘R’
INT 10H
MOV CX,000AH
A1: IN AL,81H
AND AL,02H
JZ A1
IN AL,80H
AND AL,7FH
MOV [DI],AL
INC DI
LOOP A1
MOV AL,00H
MOV SI,300AH
MOV [SI],AL
MOV AH,06H
MOV BX,3000H
INT 10H
STI
A2: JMP A2
INIT: MOV AL,00H
OUT 81H,AL
CALL DELAY
;OUT 81H,AL
;CALL DELAY
;OUT 81H,AL
;CALL DELAY
OUT 80H,AL
CALL DELAY
OUT 80H,AL
CALL DELAY
MOV AL,40H
OUT 81H,AL
RET
DALLY : PUSH CX
MOV CX,5000H
A3: LOOP A3
POP CX
RET
CODE ENDS
END START
;二号机实验程序,见14-2.ASM CODE SEGMENT
ASSUME CS:CODE
START: MOV AL,76H
OUT 43H,AL
MOV AL,0CH
OUT 41H,AL
MOV AL,00H
OUT 41H,AL
CALL INIT
CALL DELAY
OUT 81H,AL
CALL DELAY
; MOV AL,34H
MOV AL,31H ;允许发送
OUT 81H,AL
CALL DELAY
MOV DI,3000H
MOV CX,000AH
A1: MOV AL,[DI]
CALL SEND
CALL DELAY
INC DI
LOOP A1
A2: JMP A2 ;键入CTRL-BREAK退出
INIT: MOV AL,00H
OUT 81H,AL
CALL DELAY
;OUT 81H,AL
;CALL DELAY
;OUT 81H,AL
;CALL DELAY
OUT 80H,AL
CALL DELAY
OUT 80H,AL
CALL DELAY
MOV AL,40H
OUT 81H,AL
RET
DALLY : PUSH CX
MOV CX,5000H
A4: LOOP A4
POP CX
RET
SEND: PUSH AX
MOV AL,31H
OUT 81H,AL
POP AX
OUT 80H,AL
A3: IN AL,81H
AND AL,01H
JZ A3
RET
CODE ENDS
END START
四、实验步骤
(1)写出程序的流程图。
(2)按图将1、2号机连接起来。
(3)输入程序,并要求2号机用E命令在3000~3009H填入10个字符,
如:30 31 32 33 34 35 36 37 38 39
(4)先运行1号机程序,等待接收数据,然后运行2号机程序,当数据传送完毕时,1号机显示:R0123456789,用CTRL+C返回监控。
(5)检查1号机的3000~3009H,应和2号机一致。
(三) 串口自发自收实验
一、实验目的
掌握8251串行通讯方式的硬件接口电路以及软件编程。
二、实验设备
TDN88教学实验系统一台
三、实验内容及步骤
实验规定串行通讯的数据格式如下:
一个字有一个逻辑“0”起始位,8位ASCII码数据位,一位逻辑“1”停止位,传输波特率为9600baut。
实验接线如图所示:
实验用8251 TxD_______RxD
实验程序如下:见14-3.ASM
STACK SEGMENT STACK
DW 64 DUP(?)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE
START: MOV AL,76H
OUT 43H,AL
MOV AL,0CH
OUT 41H,AL
MOV AL,00H
OUT 41H,AL
CALL INIT
CALL DALLY
MOV AL,7EH
OUT 81H,AL
CALL DALLY
MOV AL,34H
OUT 81H,AL
CALL DALLY
MOV DI,3000H
MOV SI,4000H
MOV CX,000AH
A1: MOV AL,[SI]
PUSH AX
MOV AL,37H
OUT 81H,AL
POP AX
OUT 80H,AL
A2: IN AL,81H
AND AL,01H
JZ A2
CALL DALLY
A3: IN AL,81H
AND AL,02H
JZ A3
IN AL,80H
MOV [DI],AL
INC DI
INC SI
LOOP A1
A4: JMP A4
INIT: MOV AL,00H
OUT 81H,AL
CALL DALLY
OUT 81H,AL
CALL DALLY
OUT 81H,AL
CALL DALLY
OUT 81H,AL
CALL DALLY
OUT 80H,AL
CALL DALLY
MOV AL,40H
OUT 81H,AL
RET
DALLY: PUSH CX
MOV CX,3000H
A5: PUSH AX
POP AX
LOOP A5
POP CX
RET
CODE ENDS
END START
四、实验步骤
(1)按图将TxD和RxD短接。
(2)输入程序并检查无误,经汇编、连接后装入系统。
(3)用E命令在4000~400A单元赋值。
(4)运行程序,用D命令观察3000~300A单元内容和4000~400A单元内容是否一致。
五、思考题
使两机分别工作在中断方式下,画出流程图,并编制程序。
附录1 串行通讯有关知识。
1、定义:
通讯双方按照一位一位方式进行数据传输。
2、电路实现原理:
发送方:首先将待发送的并行数据送发送缓存器,以后,每来一个TxC时钟,
输出端TxD就有一位数据出现。
接收方:每来一个RxD时钟,锁存一位数据,前一次接收的数据向左移动一位。
接收到一个字节后,送接收缓冲器锁存。
3、工作方式:
同步方式:让收发双方使用同一个时钟工作,为此只需用一根连线将TxC和RxC 连起来。
发送方在时钟的上升沿发送数据,接收方在时钟的下降沿即位信号的中间
接收数据,双方以01111110作为起始定位,接收方检测到此信号后开始接收数据块。
异步方式:收发方各自采用相近的时钟工作,只要能正确接收一个字符的数据即可。
无数据时,发送方输出高电平,有数据时,依次送低电平的起始位、数据位、
高电平的结束位。
见下图:
附录2 8251A串行接口芯片
1、内部结构见下图:
2、方式字见下图:
3、命令控制字见下图:
4、状态字如下:。