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

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
本科实验报告 实验名称: 计算机原理与应用实验三 课程名称: 计算机原理与应用 实验时间: 任课教师: 实验地点: 实验教师: 实验类型: ■ 原理验证 □ 综合设计 □ 自主创新 学生姓名: 学号/班级: 组 号: 学 院: 同组搭档: 专 业: 成 绩: 实验三 串行通信 一、实验目的 了解串行通信的基本原理。 掌握串行接口芯片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,只写) 用来设置哪些中断源

文档评论(0)

586334000 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档