(8251A)串行接口实验报告

发布时间:2024-11-21

浙江工业大学计算机学院

实 验 报 告

实验名称 定时/计数器(8253) 姓 名

学 号 班 级 教 师 日 期 2014.11.2

◆实验目的和要求

1、了解串行通讯的基本原理。

2、掌握串行接口芯片8251的工作原理和编程方法。

◆实验设备(环境)及要求

PC机一台,TPC-USB平台、8253芯片、8251A芯片

◆实验内容

从键盘输入一个字符,将其ASCII码加 1 后串行发送出去,再从串行口接收回来在屏幕上显示,实现自发自收。收发均采用查询方式。

◆实验步骤

1)按图4.1连接好电路,(8251插在通用插座上)。其中8253计数器用于产生8251的发送和接收时钟,TxD和RxD连在一起。图示电路8251的控制口地址为2B9H,数据口地址为2B8H。2、8253计数器的计数初值=时钟频率/(波特率×波特率因子),这里的时钟频率接1MHz,波特率若选1200,波特率因子若选16,则计数器初值为52。

图4.1 TPC-USB平台串行实验连接

2)根据流程图4.2,编程并运行,观察实验结果。

图4.2 TPC-USB平台串行实验流程

◆实验结果

在键盘上输入一个字符在屏幕上显示出来,随后即在屏幕上输出一个刚刚输入的数的ASIIC码加1的字符。

◆讨论和分析

(1)实验结果分析:

在8253、8251A的初始化工作完成以后,读入状态字,检测是否已准备发送字符,确定准备好以后,通过mov ah,01 int 21h语句从键盘上输入一个数字,在执行加1操作以后,通过out dx,al语句将数据发送出去,然后又读入状态字,检测是否已准备接收字符,确定准备好以后,通过mov dx,2B8h in al,dx读入刚刚发送出去的字符,通过mov dl,al mov ah,02 int 21h语句在屏幕上显示刚刚接收的字符,实现自发自收的功能。 (2)实验总结及需要注意的问题:

首先在连线方面,刚开始的时候根据实验指导的实验连接各个引脚,在连接8251A芯片的10、13号引脚的时候碰到了问题,指导书上连接的是IOW、IOR,而我们在TPC-USB平台上只找到了IOW、IOR,于是刚开始我们先把IOW、IOR经过一个非门,然后再接到10、13号引脚,结果答案总是错误,最后在检查线路的时候我们试着直接接到IOW、IOR,不使用非门,结果就正确了。

在代码方面,由于这次的实验思路比较清晰,根据代码编写步骤没有出现什么问题。

◆实验主要代码

data segment

mes1 db 'you can play a key on the keybord!',0dh,0ah,24h mes2 dd mes1 data ends code segment

assume cs:code,ds:data start: mov ax,data mov ds,ax

mov dx,283h ;设置8253计数器0工作方式 mov al,16h out dx,al mov dx,280h

mov al,52 ;给8253计数器0送初值 out dx,al

mov dx,2b9H ;开始初始化8251 xor al,al

mov cx,03 ;向8251控制端口送3个0 预处理 delay:

call out1 ;连续发送3个0

loop delay

mov al,40h ;向8251控制端口送40H,使其复位 call out1

mov al,4eh ;设置为1个停止位,8个数据位,波特率因子为16 call out1

mov al,27h call out1

lds dx,mes2 mov ah,09 int 21h waiti:

mov dx,2b9H

in al,dx test al,01 jz waiti mov ah,01 int 21h

cmp al,27 jz exit mov dx,2B8H

inc al out dx,al ;向8251送操作控制字允许其发送和接收 ;显示提示输入信息 ;读入状态字

;检查TXRDY是否为1,发送是否准备好 ;还没准备好,继续等待 ;是1,则从键盘上读一字符 ;判断输入的是否为ESC ;若是,则结束 ;将键盘读入字符的ASCII码加1 ;将数据发送

mov cx,40h s51:

loop s51 ;延时 next:

mov dx,2B9H

in al,dx test al,02 jz next mov dx,2B8h

in al,dx mov dl,al

mov ah,02 int 21h

jmp waiti exit:

mov ah,4ch int 21h

out1 proc near out dx,al push cx mov cx,40h gg:

;读入状态字

;检查RXRDY,接收是否准备好 ;没有,等待 准备好,接收刚刚发送出去的数据;将接收到的字符显示在屏幕上 ;继续循环 ;退出程序 ;向外发送一字节的子程序 ;

loop gg ;延时 pop cx ret out1 endp code ends end start

(8251A)串行接口实验报告.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219