当前位置:文档之家› 实验四:串行接口输入输出实验

实验四:串行接口输入输出实验

实验四串行接口输入输出实验
一、实验目的
1、学习TEC-2000教学计算机I/O接口扩展的方法;
2、学习串行通信的基本知识,掌握串行通信接口的设置和使用方法。

二、实验说明
1、TEC-2000教学机配置了两个串行接口COM1和COM2,其中COM1口是系统默认的串行接口,上电复位后,监控程序对其进行初始化,并通过COM1与PC机终端相连,监控程序负责对COM1进行管理。

COM2口预留给实验者扩展使用,监控程序不对COM2进行任何处理,实验者需要对COM2进行初始化、使用和管理。

2、实验前查阅有关资料,了解可编程串行通信接口芯片8251的工作原理,了解8251复位、初始化、数据传输过程控制等方面的知识。

注意,①每次对8251复位后(即按了“RESET”键),都需要对其进行初始化,然后再进行正常的数据传输;②每次复位后,只能对8251进行1次初始化,多次初始化将导致串口工作不正常。

3、在使用COM2口时,需要将两片8251芯片之间的跳线短接(缺省状态),以便为COM2正常工作提供所需的控制信号和数据;此外,还需要为其分配端口地址。

教学机已将COM2口的C/(/D)与地址总线的最低位A0相连,但片选信号/CS未连,只引出1个插孔,实验时,应将该插孔与标有“I/O /CS”的7个插孔中的1个相连。

三、实验内容
1、为扩展I/O口选择一个地址,即将8251的/CS与标有I/O /CS的一排插孔中的一个相连。

2、将COM2口与终端或另一台运行有PCEC16的PC机的串口相连。

3、用监控程序的A命令,编写一段小程序,先初始化COM2口,再向COM2口发送一些字符,也可从COM2口接收一些字符,或实现两个串口的通信。

四、实验要求
应了解监控程序的A命令只支持基本指令,扩展指令应用E命令将指令代码写入到相应的存储单元中。

五、实验步骤
1、为扩展I/O接口选择一个地址,将8251的/CS与标有I/O /CS的插孔中地址为90~9F的插孔相连;
2、将教学机COM1口与微机PC1相连,在PC1上运行PCEC16.EXE,进入联机状态后保持PCEC的运行状态;
3、断开教学机COM1与PC1的串口线,将其连接到另一台微机PC2的串口上,在PC2上运行PCEC16.EXE联机;
4、用另一条串口线将PC1与教学机的COM2接口相连。

5、与COM1相连的PC2作为主PC,在主PC2上输入程序,和COM2连接的从PC1只作数据输入输出;
6、在主PC上用A、E命令编程对实验机的COM2口进行操作。

1)程序1:初始化COM2口
主PCEC在命令行提示符状态下输入:
A 2000
从2000H单元开始输入下面的程序:
2000:MVRD R0,004E ;给R0赋值004E(8251模式寄存器参数)
2002:OUT 91 ;将R0的值输出到COM2口中8251的模式寄存器(地址为0091H)
2003:MVRD R0,0037 ;给R0赋值0037(8251控制寄存器参数)
2005:OUT 91 ;将R0的值输出到COM2口中8251的控制寄存器(地址同为0091H)
2006:RET
在命令行提示符状态下输入G 2000运行初始化程序,完成对COM2口的初始化。

注意:每次按“RESET”按键后,在对COM2进行读写操作之前,都应运行该程序。

注意,按一次“RESET”按键后,只能对COM2口进行一次初始化操作。

2)程序2:从与COM2口相连的PC输入字符串,在与COM1口相连的PC上显示该字符串。

主PCEC在命令行提示符状态下输入:
A 2040
从2040H单元开始输入下面的程序:
2040:IN 91 ;判键盘上是否按了一个键(读8251状态寄存器,地址为0091H)
2041:SHR R0 ;即串行口是否有了输入的字符(判断D1位是否为1?)
2042:SHR R0
2043:JRNC 2040 ;没有输入则循环测试(D1=0则循环查询)
2044:IN 90 ;从COM2口读入字符到R0
2045:OUT 90 ;将该字符从COM2口输出回显
2046:OUT 80 ;将该字符从COM1口输出
2047:MVRD R1,00FF
2049:MVRD R2,000D
204B:AND R0,R1
204C:CMP R0,R2
204D:JRNZ 2040
204E:RET
204F:
运行该程序。

在命令行提示符状态下输入:
G 2040
从与COM2口相连的PC机键盘输入字符串,则在与COM1口相连的PC机的屏幕上显示,按回车键结束。

3)程序3:从与COM1口相连的PC输入字符串,在与COM2口相连的PC上显示该字符串。

主PCEC在命令行提示符状态下输入:
A 2060
从2060H单元开始输入下面的程序:
2060:IN 81 ;判键盘上是否按了一个键
2061:SHR R0 ;即串行口是否有了输入的字符
2062:SHR R0
2063:JRNC 2060 ;没有,则循环等待
2064:IN 80 ;接收字符
2065:OUT 80
2066:OUT 90 ;将从键盘输入的字符输出到另一串口(8251数据发送缓冲器的地址为0090H)2067:MVRD R1,00FF
2069:MVRD R2,000D
206B:AND R0,R1
206C CMP R0,R2
206D:JRNZ 2060
206E:RET
206F:
运行该程序,在命令行提示符状态下输入:
G 2060
从主PC机键盘输入字符串,在在与COM2口相连的从PC机的屏幕上显示,按回车键结束。

相关主题