北理工计算机原理与应用实验,北理工计算机原理与应用实验三.docx

本文介绍了一项关于串行通信的实验,详细说明了实验目的、内容与步骤。实验涉及串行接口芯片8251和8250的原理与编程方法,包括初始化编程、半双工和全双工通信编程技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本科实验报告

实验名称: 计算机原理与应用实验三

课程名称:

计算机原理与应用

实验时间:

任课教师:

实验地点:

实验教师:

实验类型:

■ 原理验证

□ 综合设计

□ 自主创新

学生姓名:

学号/班级:

组 号:

学 院:

同组搭档:

专 业:

成 绩:

实验三 串行通信

一、实验目的

了解串行通信的基本原理。

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

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

掌握对串行接口芯片的初始化编程;学会串行通信半双工和全双工的编程技巧。

二、实验内容及步骤

1、利用PC 机系统的串行通信接口实现与实验系统的双机通信

PC 机的串行通信接口的端口地址为3F8H,并画出三线连接,七线连线通信接口的连线图,接口为标准RS-232(25 芯)插座。

2、连接电路

连接好电路,其中8254 计数器用于产生8251 的发送和接收时钟,TXD 和RXD 连在九针接口处。

3、接线

实现点到点的异步串行通信,需要利用串行接口将两台计算机直接连接起来,其中关键是将发送数据(TD)和接受数据(RD)交叉连接,其余连接要满足于控制信号。

CLK0 /8254接1M时钟

CLK /8251接1M时钟(系统已经连接,不用学生连接)

GATE0 /8254接+5V

0UT0 /8254接TX/RXCLK /8251

CS /8254接Y0 /IO 地址

CS /8251接Y7 /IO 地址

RXD /8251接TXD /九针接口

TXD /8251接RXD /九针接口

4、 设置计数器的值

8254 计数器的计数初值=时钟频率/(波特率×波特率因子),这里的时钟频率接1MHz,波特率若选1200,波特率因子若选16,则计数器初值为52。

5、数据要求

设串行通信的波特率为1200、偶校验、数据位为7 位、一位停止位,利用查询方式实现单工通信。要求发送方将任一文件传送到收方,收方收到后将源程序写入磁盘。分别编写收方和发方的通信程序。

6、半双工通信

上述参数不变,用中断方式实现半双工通信,编写程序。

7、PC 机寄存器的端口地址如下表所示

I/O端口

IN/OUT

寄存器名称

3F8 *

OUT

发送保持寄存器

3F8 *

IN

接收数据寄存器

3F8 **

OUT

波特率因子(LSB)

3F9 **

OUT

波特率因子(MSB)

3F9 *

OUT

中断允许寄存器

3FB

OUT

线路控制寄存器

3FA

IN

中断标志寄存器

3FC

OUT

MODEM控制寄存器

3FD

IN

线路状态寄存器

3FE

IN

MODEM状态寄存器

*线路控制寄存器第七位 DLAB=0

** 线路控制寄存器第七位 DLAB=1

8、线路控制寄存器(LCR,只写)

用来设置通信参数,初始化时必须设置,I/O端口地址3FBH或2FBH。

b7:DLAB位。置0为常态,置1访问DLL、DLM寄存器;

b6:中断控制位。置0禁止,置1允许;

b5,b4,b3:奇偶校验。

b2:停止位数。置0使用1位停止位,置1时,如果字符长度为5,使用1.5停止位,如果字符长度为6、7、8,使用2位停止位。

b1,b0:字符长度。

9、线路状态寄存器(LSR)

用于提供与线路有关的状态信息,使用中可能随时查询,I/O端口地址3FDH或2FDH。

b7:恒置0;

b6:发送保持移位寄存器空(TSRE);

b5:发送保持寄存器空(THRE),置1表示允许向THR输出数据;

b4:断点中断(BI);

b3:桢(字符)格式错(FE);

b2:奇偶校验错(PE)

b1:超载错误(OE)

b0:数据就绪(DR),置1表示RBR中有数据。

10、波特率因子寄存器(DLL、DLM,只写)

两个寄存器组成一个16位寄存器,存放一个波特率因子(分频值)。对1.8432MHz频率进行分配,从而得到用户需要的波特率。DLL存放波特率因子的低8位,DLM存放波特率因子的高8位。I/O端口地址3F8H/3F9H或2F8H/2F9H,典型的波特率因子值可以根据公式得到:

波特率因子=1843200/(波特率*16)

例如,对于4800的波特率:因子=1843200/(4800*16)=24(0x18);于是DLL应设置为0,DLM应设置为0x18。

11、接收缓冲寄存器(RBR,只读)

用来存放从线路上接收的有效字符,等待本地读取,I/O端口地址3F8H或2F8H。

12、发送保持寄存器(THR)

用来存放待发送的数据,与RBR使用同一I/O地址,但互不干扰。

13、中断允许寄存器(IER,只写)

用来设置哪些中断源

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值