实验三 串行通信

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

本科实验报告

实验名称:串行通信

课程名称:计算机原理与应用实验时间:2014/5/27 任课教师:马永锋实验地点:10-102

实验教师:京霞

实验类型:■原理验证□综合设计□自主创新

学生:晨

学号/班级:1120110334/05111103 组号:学院:信息与电子学院同组搭档:

专业:信息工程成绩:

一、实验目的

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

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

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

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

二、实验容及步骤

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

的端口地址为3F8H,并画出三线连接,七线连接通信接口的连线图,接口为标准RS—

232(25芯)插座。

2. 按图1连接好电路,其中8254计数器用于产生8251的发送和接收时钟,TXD和

RXD连在九针接口处。

串行通讯电路

3.连线:

CLK0/8254 接1M时钟

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

GATE0/8254 接+5V

OUT0 /8254 接TX/RXCLK/8251

CS/8254 接Y0/IO地址

CS/8251 接Y7/IO地址

RXD/8251 接TXD/九针接口

TXD/8251 接RXD/九针接口

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

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

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

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

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

三、编程提示

1、可以首先采用查询方式,实现单工PC机系统与实验系统的双机通信,之后再实现双工

方式通信;

2、再尝试实现利用中断方式,实现单工PC机系统与实验系统的双机通信,之后再实现双

工方式通信;

3、要求能实现字符和文件的传输;

4、程序流程图如图所示:

四、实验程序

1. 发送端程序:

;TRANSLATE FILES

stack segment para stack'stack'

db 256 dup(0)

stack ends

data segment

name0 db 64h

db 64h dup(?)

buff dw 64h dup(?) data ends

code segment para public 'code' start proc far

assume cs: code,ds:data,es:data push ds

mov ax,0

push ax

mov ax,data

mov ds,ax

mov dx,3fbh ;3fb ctrl register

mov al,80h ;

out dx,al ;给线路控制寄存器DLAB位置1

mov dx,3f8h

mov al,60h ;写除数因子低位

out dx,al

inc dx ;写除数因子高位

mov al,00

out dx,al ;写除数因子寄存器,1200baud

mov dx,3fbh

mov al,00011011b ;0寻址识别位,0禁止间断,**,11偶校验,1位停止位,8位数据

out dx,al

inc dx ;设置调制解调器控制寄存器MCR mov al,00001111b ;正常工作状态,引脚低电平

out dx,al

mov dx,3fdh ;线路状态寄存器

in al,dx

test al,20h ;判断是否显示好,发出数据

jz fa

tr:

mov ah,01h

int 21h

mov dx,3f8h

out dx,al

push bx

int 10h

pop bx

push cx

mov cx,0fh

gg:

nop

nop

nop

loop gg ;循环延迟

pop cx

jmp tr

start endp

code ends

end start

2. 接收端程序:

;TRANSLATE FILES

stack segment para stack'stack' db 256 dup(0)

stack ends

data segment

name0 db 64h

db 64h dup(?)

buff dw 64h dup(?)

data ends

code segment para public 'code'

相关文档
最新文档