北京理工大学微机原理实验报告三Word格式.docx
《北京理工大学微机原理实验报告三Word格式.docx》由会员分享,可在线阅读,更多相关《北京理工大学微机原理实验报告三Word格式.docx(11页珍藏版)》请在冰豆网上搜索。
组号:
学院:
同组搭档:
专业:
成绩:
实验三串行通信
一、实验目的
1、了解串行通信的基本原理。
2、掌握串行接口芯片8251的工作原理和编程方法。
3、掌握串行接口芯片8250的工作原理和编程方法。
4、掌握对串行接口芯片的初始化编程;
学会串行通信半双工和全双工的编程技巧。
二、实验内容与步骤
1、利用PC机系统的串行通信接口实现与实验系统的双机通信。
PC机的串行通信接口的端口地址为3F8H。
并画出三线连接。
七线连接通信接口的连线图。
接口为标准RS—232(25芯)插座。
2、按图1连接好电路,其中8254计数器用于产生8251的发生和接收时钟,TXD和RXD连在九针接口处。
3、接线:
4、8254计数器的计数初值=时钟频率/(波特率乘以波特率因子),这里的时钟频率接1MHz。
波特率若选1200,波特率因子若选16,则计数器初值为52.
5、设串行通信的波特率为1200,偶校验、数据位为7位,1位停止位。
利用查询方式实现单工通信。
要求发送方将任一文件传送到收方,收方收到后将源程序写入磁盘。
分别编写收方和发方的通信程序。
6、上述参数不变,用中断方式实现半双工通信,编写程序。
7、PC机寄存器的端口地址如下表所示
线路控制寄存器第七位DLAB=0
线路控制寄存器第七位DLAB=1
程序流程图如下图
三、实验过程
将实验板的USB接口与电脑1相连,打开HQFC软件,找到USB接口,进行编程,用于接收文件。
代码见四中的代码1。
再将实验板的PCI接口与电脑2相连,打开MASM软件,进行编程,用于发送文件。
代码见四中的代码2。
四、实验代码及注释
代码1:
DATASEGMENT
IO8254AEQU280H
IO8251AEQU2B8H
IO8251BEQU2B9H
DATAENDS
STACKSEGMENTPARASTACK
DB256DUP(0)
STACKENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
STACK
START:
MOVAX,DATA
MOVDS,AX
MOVDX,IO8254A+3
MOVAL,00010110B;
设置8254计数器0工作方式
OUTDX,AL
MOVDX,IO8254A
MOVAL,52;
给8254计数器0送初值
MOVDX,IO8251B;
对8251进行初始化
MOVAX,0
MOVCX,3
reset8251:
PUSHCX
MOVCX,40H;
向8251控制端口送40H,使其复位
LOOP$
POPCX
LOOPreset8251
MOVAL,40H
MOVCX,40H
MOVAL,5AH
MOVAL,27H
FOREVER:
从线路状态寄存器读状态
INAL,DX
TESTAL,38H;
检测是否为00111000
JNZERROR;
传输线状态寄存器全部都是0
TESTAL,02H;
检测接受数据是否准备好了
JNZRECEIVE;
等于0则表示数据没有准备好
TESTAL,01H;
数据没有准备好
JNZsend;
没有,则跳转等待
JMPFOREVER
send:
MOVAH,1;
检测键盘按下
INT16H
JZFOREVER;
有键盘按下
MOVAH,0;
读键盘
MOVDX,IO8251A;
将键盘的数据输出发送到缓冲器
CMPAL,03H
JZDONE
MOVDL,AL
MOVAH,02H
INT21H
CMPAL,0DH
JNZFOREVER
MOVDL,0AH
JMPFOREVER
RECEIVE:
接收数据
ANDAL,7FH;
最高位为停止位
CMPAL,03H;
JNZFOREVER
ERROR:
MOVDX,IO8251A
MOVDL,'
?
'
DONE:
MOVAH,4CH
CODEENDS
ENDSTART
代码2:
ASSUMECS:
CODE,SS:
MOVDX,3FBH
MOVAX,80H
MOVDX,3F8H
MOVAX,60H
MOVDX,3F9H
MOVAX,0AH
MOVDX,3FCH;
MOVAX,03H
MOVDX,3FDH;
TESTAL,1EH
JNZERROR;
TESTAL,20H;
MOVAH,1
JZFOREVER
MOVAH,0
MOVDX,3F8H
ANDAL,7FH
ENDSTAR
五、实验心得
这次实验难度较大,最后实现了两台电脑之间的文件传输。
通过这次实验,我了解了串行通信的基本原理,掌握了串行接口芯片8251的工作原理和编程方法,学会了串行通信半双工和全双工的编程技巧。