(一)8251 串行接口应用实验

 

一、实验目的

1、掌握8251的工作方式。

2、学习串行通讯的有关知识。

二、实验设备

1TDN86/88教学实验系统一台。

2、示波器一台。

3一组排线

三、实验内容及步骤

1、系统中的8251芯片

系统装有一片8251芯片,并和标准RS-232C接口连接好,如下图所示。

该电路用来完成同PC微机的联机以及串行监控操作的实现,其端口地址为:

数据口:C0H    控制口:C1H

 

2、实验单元中的8251

这片8251芯片用于各种串行口实验,连线见下图,其端口地址为:

数据口:80H    控制口:81H

 

38251串行接口应用实验

本实验中,串行传输的数据格式规定如下:

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)将示波器与8251TxDGND排针引脚相连接。

2)输入程序并检查无误,经汇编、连接后装入系统。

3)运行程序,在示波器上观察数据波形。

4)改变发送的数,运行程序,观察相应波形。

四、思考题

    8251对收发时钟有何特殊要求?

 

(二)双机通讯实验

一、实验目的

了解8251在半双工双机通讯情况下的软件编制和硬件连接技术。

二、实验设备

1TDN86/88微机教学系统两台。

2一组排线

三、实验内容

    用排线将两台仪器相连,具体连线如下图所示。

其中一号机用作接收机,二号机用作发送机。实验目的是将二号机

中的30003009H十个单元中的代码传送到一号机的30003009H

单元中,12号机各自的实验程序如下:

一号机实验程序,见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 DI,3000H

    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

    MOV AL,7EH

    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)按图将12号机连接起来。

3)输入程序,并要求2号机用E命令在30003009H填入10个字符,

如:30 31 32 33 34 35 36 37 38 39

4)先运行1号机程序,等待接收数据,然后运行2号机程序,当数据

传送完毕时,1号机显示:R0123456789,用CTRL+C返回监控。

5)检查1号机的30003009H,应和2机一致

 

() 串口自发自收实验

一、实验目的

掌握8251串行通讯方式的硬件接口电路以及软件编程。

二、实验设备

TDN88教学实验系统一台

三、实验内容及步骤

实验规定串行通讯的数据格式如下:

一个字有一个逻辑“0”起始位,8ASCII码数据位,一位逻辑“1

停止位,传输波特率为9600baut。实验接线如图所示:

     实验用8251     TxD_______RxD

 

实验程序如下:见143.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)按图将TxDRxD短接。

2)输入程序并检查无误,经汇编、连接后装入系统。

3)用E命令在4000400A单元赋值。

4)运行程序,用D命令观察3000300A单元内容和4000400A单元内容是否一致。

 

五、思考题

使两机分别工作在中断方式下,画出流程图,并编制程序。

 

 

附录1  串行通讯有关知识。

 

1、定义:

通讯双方按照一位一位方式进行数据传输。

2、电路实现原理:

  发送方:首先将待发送的并行数据送发送缓存器,以后,每来一个TxC时钟,

输出端TxD就有一位数据出现。

  接收方:每来一个RxD时钟,锁存一位数据,前一次接收的数据向左移动一位。

接收到一个字节后,送接收缓冲器锁存。

3、工作方式:

  同步方式:让收发双方使用同一个时钟工作,为此只需用一根连线将TxCRxC

连起来。发送方在时钟的上升沿发送数据,接收方在时钟的下降沿即位信号的中间

接收数据,双方以01111110作为起始定位,接收方检测到此信号后开始接收数据块。

  异步方式:收发方各自采用相近的时钟工作,只要能正确接收一个字符的数据即

可。无数据时,发送方输出高电平,有数据时,依次送低电平的起始位、数据位、

高电平的结束位。见下图:

附录2   8251A串行接口芯片

1、内部结构见下图:

2方式字见下图

3、命令控制字见下图

4、状态字如下: