(一)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 ;定时时间到,再发送下一个数据
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:
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
OUT
41H,AL
MOV
AL,00H
OUT
41H,AL
CLI
CALL
INIT
CALL
DELAY
MOV
OUT 81H,AL
CALL
DELAY
MOV
AL,34H
;清除出错标志,允许接收
OUT
81H,AL
CALL
DELAY
MOV
AX,0152H ;显示‘R’
INT
10H
MOV
DI,3000H
MOV
CX,000AH
A1: IN AL,81H
AND
AL,02H
JZ
A1
IN
AL,80H
AND
MOV
[DI],
INC
DI
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:
POP
CX
RET
CODE ENDS
END START
;二号机实验程序,见14-2.ASM
CODE SEGMENT
ASSUME
CS:CODE
START: MOV
AL,76H
OUT
43H,AL
MOV
OUT
41H,AL
MOV
AL,00H
OUT
41H,AL
CALL
INIT
CALL
DELAY
MOV
OUT
81H,AL
CALL
DELAY
; MOV
AL,34H
MOV
OUT
81H,AL
CALL
DELAY
MOV
DI,3000H
MOV
CX,000AH
A1: MOV
AL,[DI]
CALL
SEND
CALL
DELAY
INC
DI
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:
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
OUT
41H,AL
MOV
AL,00H
OUT
41H,AL
CALL
INIT
CALL
DALLY
MOV
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],
INC
DI
INC
SI
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
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、状态字如下: