8251 串行接口应用实验 您所在的位置:网站首页 零售业的发展现状及对策论文怎么写 8251 串行接口应用实验

8251 串行接口应用实验

#8251 串行接口应用实验| 来源: 网络整理| 查看: 265

一、实验目的:

1、掌握 8251 的工作方式及应用。

2、了解有关串口通讯的知识。

二、实验内容与要求:

1. 数据信号的串行传输实验,循环向串口发送一个数,使用示波器测量 TXD 引脚上的波形,以了解串行传输的数据格式。

2.自收自发实验,将3000H起始的10个单元中的初始数据发送到串口,然后自接收并保存到4000H起始的内存单元中。

3. 双机通讯实验,本实验需要两台实验装置,其中一台作为接收机,一台作为发送机,发送机将 3000H~3009H内存单元中共10个数发送到接收机,接收机将接收到的数据直接在屏幕上输出显示。

三、实验步骤:

1.数据信号的串行传输

(1)按图连接实验接线。

(2)编写实验程序,经编译、链接无误后装入系统。

(3)运行程序,用示波器观察波形

2.自收自发实验

通过自收自发实验,可以验证硬件及软件设计,常用于自测试。具体实验步骤如下:

(1)连接实验线路。

(2)编写实验程序,编译、链接无误后装入系统。

(3)使用E命令更改4000H起始的10 个单元中的数据。

(4)运行实验程序,待程序运行停止。

(5)查看3000H起始的10 个单元中的数据,与初始化的数据进行比较,验证程序功能

3.双机通讯实验

使用两台实验装置,一台为发送机,一台为接收机,进行两机间的串行通讯。实验步骤如下:

(1)连接实验线路。

(2)为两台机器分别编写实验程序,编译、链接后装入系统。

(3)为发送机初始化发送数据。在发送机3000H~3009H内存单元写入ASCII 值:30,31,32,33,34,35,36,37,38,39 共10个数。

(4)首先运行接收机上的程序,等待接收数据,然后运行发送机上的程序,将数据发送到串口。

(5)观察接收机端屏幕上的显示是否与发送机端初始的数据相同,验证程序功能。

四、电路连接

1.数据信号的串行传输

2.自收自发实验

3.双机通讯实验

五、代码设计

1.8254的计数初值的计算

MOV AL, 0B6H            ; 8254, 设置通讯时钟         MOV DX, M8254_CON         OUT DX, AL         MOV AL, 1BH         MOV DX, M8254_2         OUT DX, AL         MOV AL, 3AH         OUT DX, AL

0B6H=10 11 011 0:计数器2,先读写低字节,后读写高字节,方式3,二进制计数

2.8251方式字

        MOV AL, 7EH         MOV DX, M8251_CON       ; 写8251方式字         OUT DX, AL

写入8251方式字7EH=01 11 11 1 0B

3.8251控制字

        MOV AL, 34H         OUT DX, AL              ; 写8251控制字

写入8251控制字34H=00110110B

六、实验现象

1.数据信号的串行传输

起始位0,8位数据:10101010,由于发送的数据是从低到高,所以实际数据是01010101,即55H。无校验位。

2.自收自发实验

3.双机通讯实验

 

七、源代码

1.数据信号的串行传输

;========================================================== ; 文件名: A82511.ASM ; 功能描述: 研究了解串行传输的数据格式 ;========================================================== IOY0            EQU  0600H        ;IOY0起始地址 IOY1            EQU  0640H        ;IOY1起始地址 M8251_DATA  EQU IOY0+00H*2 M8251_CON   EQU IOY0+01H*2 M8254_2     EQU IOY1+02H*2 M8254_CON   EQU IOY1+03H*2 SSTACK  SEGMENT STACK         DW 64 DUP(?) SSTACK  ENDS CODE    SEGMENT         ASSUME CS:CODE START:  CALL INIT A1:     CALL SEND         MOV CX, 0001H A2:     MOV AX, 0F00H A3:     DEC AX         JNZ A3         LOOP A2         JMP A1      INIT:   MOV AL, 0B6H            ; 8254, 设置通讯时钟         MOV DX, M8254_CON         OUT DX, AL         MOV AL, 1BH         MOV DX, M8254_2         OUT DX, AL         MOV AL, 3AH         OUT DX, AL         CALL RESET              ; 对8251进行初始化         CALL DALLY         MOV AL, 7EH         MOV DX, M8251_CON       ; 写8251方式字         OUT DX, AL         CALL DALLY         MOV AL, 34H         OUT DX, AL              ; 写8251控制字         CALL DALLY         RET RESET:  MOV AL, 00H             ; 初始化8251子程序         MOV DX, M8251_CON       ; 控制寄存器         OUT DX, AL         CALL DALLY         OUT DX, AL         CALL DALLY         OUT DX, AL         CALL DALLY         MOV AL, 40H         OUT DX, AL         RET DALLY:  PUSH CX         MOV CX, 5000H A4:     PUSH AX         POP AX         LOOP A4         POP CX         RET SEND:   PUSH AX         PUSH DX         MOV AL, 31H         MOV DX, M8251_CON         OUT DX, AL         MOV AL, 55H         MOV DX, M8251_DATA          ; 发送数据55H         OUT DX, AL         POP DX         POP AX         RET CODE    ENDS         END START

2. 自收自发实验

;=========================================================== ; 文件名: A82512.ASM ; 功能描述: 自收自发实验程序, 源地址4000H, 目的地址3000H ;=========================================================== IOY0 EQU 0600H ;IOY0起始地址 IOY1 EQU 0640H ;IOY1起始地址 M8251_DATA EQU IOY0+00H*2 M8251_CON EQU IOY0+01H*2 M8254_2 EQU IOY1+02H*2 M8254_CON EQU IOY1+03H*2 SSTACK SEGMENT STACK DW 64 DUP(?) SSTACK ENDS CODE SEGMENT ASSUME CS:CODE START: MOV AX, 0000H MOV DS, AX ;初始化8254,得到收发时钟 MOV AL, 0B6H MOV DX, M8254_CON OUT DX, AL MOV AL, 0CH MOV DX, M8254_2 OUT DX, AL MOV AL, 00H OUT DX, AL ;复位8251 CALL INIT CALL DALLY ;8251方式字 MOV AL,7EH MOV DX, M8251_CON OUT DX, AL CALL DALLY ;8251控制字 MOV AL, 34H OUT DX, AL CALL DALLY MOV DI, 3000H MOV SI, 4000H MOV CX, 000AH A1: MOV AL, [SI] PUSH AX MOV AL, 37H MOV DX, M8251_CON OUT DX, AL POP AX MOV DX, M8251_DATA OUT DX, AL ;发送数据 MOV DX, M8251_CON A2: IN AL, DX ;判断发送缓冲是否为空 AND AL, 01H JZ A2 CALL DALLY A3: IN AL, DX ;判断是否接收到数据 AND AL, 02H JZ A3 MOV DX, M8251_DATA IN AL, DX ;读取接收到的数据 MOV [DI], AL INC DI INC SI LOOP A1 MOV AX,4C00H INT 21H ;程序终止 INIT: MOV AL, 00H ;复位8251子程序 MOV DX, M8251_CON OUT DX, AL CALL DALLY OUT DX, AL CALL DALLY OUT DX, AL CALL DALLY MOV AL, 40H OUT DX, AL RET DALLY: PUSH CX MOV CX,3000H A5: PUSH AX POP AX LOOP A5 POP CX RET CODE ENDS END START

3.双机通讯实验

;======================================================== ; 文件名: A82513.ASM ; 功能描述: 接收机接收程序 ;======================================================== IOY0 EQU 0600H ;IOY0起始地址 IOY1 EQU 0640H ;IOY1起始地址 M8251_DATA EQU IOY0+00H*2 M8251_CON EQU IOY0+01H*2 M8254_2 EQU IOY1+02H*2 M8254_CON EQU IOY1+03H*2 SSTACK SEGMENT STACK DW 64 DUP(?) SSTACK ENDS CODE SEGMENT ASSUME CS:CODE START: MOV AL, 0B6H ;初始化8254 MOV DX, M8254_CON OUT DX, AL MOV AL, 0CH MOV DX, M8254_2 OUT DX, AL MOV AL, 00H OUT DX, AL ;CLI CALL INIT ;复位8251 CALL DALLY MOV AL, 7EH MOV DX, M8251_CON OUT DX, AL CALL DALLY MOV AL, 34H OUT DX, AL CALL DALLY MOV AX, 0152H ;输出显示字符R INT 10H MOV DI, 3000H MOV CX, 000AH A1: MOV DX,M8251_CON IN AL, DX AND AL, 02H JZ A1 MOV DX, M8251_DATA IN AL, DX 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 ;复位8251子程序 MOV DX, M8251_CON OUT DX, AL CALL DALLY OUT DX, AL CALL DALLY OUT DX, AL CALL DALLY MOV AL, 40H OUT DX, AL RET DALLY: PUSH CX MOV CX, 3000H A3: PUSH AX POP AX LOOP A3 POP CX RET CODE ENDS END START ;========================================================= ; 文件名: A82514.ASM ; 功能描述: 发送机的发送程序 ;========================================================= IOY0 EQU 0600H ;IOY0起始地址 IOY1 EQU 0640H ;IOY1起始地址 M8251_DATA EQU IOY0+00H*2 M8251_CON EQU IOY0+01H*2 M8254_2 EQU IOY1+02H*2 M8254_CON EQU IOY1+03H*2 SSTACK SEGMENT STACK DW 64 DUP(?) SSTACK ENDS CODE SEGMENT ASSUME CS:CODE START: MOV AL, 0B6H ;初始化8254, 得到收发时钟 MOV DX, M8254_CON OUT DX, AL MOV AL, 0CH MOV DX, M8254_2 OUT DX, AL MOV AL, 00H OUT DX, AL CALL INIT ;复位8251 CALL DALLY MOV AL, 7EH MOV DX, M8251_CON OUT DX, AL ;8251方式字 CALL DALLY MOV AL, 34H OUT DX, AL ;8251控制字 CALL DALLY MOV DI, 3000H MOV CX, 000AH A1: MOV AL, [DI] CALL SEND CALL DALLY INC DI LOOP A1 A2: JMP A2 INIT: MOV AL, 00H ;复位8251子程序 MOV DX, M8251_CON OUT DX, AL CALL DALLY OUT DX, AL CALL DALLY OUT DX, AL CALL DALLY MOV AL, 40H OUT DX, AL RET DALLY: PUSH CX MOV CX, 3000H A4: PUSH AX POP AX LOOP A4 POP CX RET SEND: PUSH DX ;数据发送子程序 PUSH AX MOV AL, 31H MOV DX, M8251_CON OUT DX, AL POP AX MOV DX, M8251_DATA OUT DX, AL MOV DX, M8251_CON A3: IN AL, DX AND AL, 01H JZ A3 POP DX RET CODE ENDS END START



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有