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

实验7串行接口输入输出实验

北京林业大学11学年—12学年第 2 学期计算机组成原理实验任务书专业名称:计算机科学与技术实验学时: 2课程名称:计算机组成原理任课教师:张海燕实验题目:实验七串行接口输入输出实验实验环境:TEC-XP+教学实验系统、PC机实验内容1.串行接口输入输出;2.串行接口扩展。

实验目的学习串行口的正确设置与使用。

实验要求1.实验之前认真预习,明确实验的目的和具体实验内容,做好实验之前的必要准备。

2.想好实验的操作步骤,明确通过实验到底可以学习哪些知识,想一想怎么样有意识地提高教学实验的真正效果;3.在教学实验过程中,要爱护教学实验设备,记录实验步骤中的数据和运算结果,仔细分析遇到的现象与问题,找出解决问题的办法,有意识地提高自己创新思维能力。

4.实验之后认真写出实验报告,重点在于预习时准备的内容,实验数据,运算结果的分析讨论,实验过程、遇到的现象和解决问题的办法,自己的收获体会,对改进教学实验安排的建议等。

善于总结和发现问题,写好实验报告是培养实际工作能力非常重要的一个环节,应给以足够的重视。

必要知识串行接口是计算机主机和某些设备之间实现通信,硬件造价比较低廉、标准化程度比较高的一种输入输出接口线路,缺点是通信的速度比较低。

从在程序中使用串行接口芯片的角度看,接口芯片内有用户可以访问的4个寄存器,分别是接收CPU送来数据的输出数据缓冲寄存器,向CPU提供数据的输入数据缓冲寄存器,接收CPU发来的控制命令的控制寄存器,向CPU提供接口运行状态的状态寄存器,必须有办法区分这4个寄存器。

接口芯片中还有执行数据串行和并行转换的电路,接口识别电路等。

串行接口用于执行数据的输入输出操作。

一次输入或输出操作通常需要两个操作步骤完成,第一步是为接口芯片提供入出端口地址,即把指令寄存器低位字节的内容(8位的IO端口地址)经过内部总线和运算器部件写进地址寄存器AR,第二步是执行输入或输出操作,若执行输入指令IN,则应从接口芯片读出一个8位的数据并经过数据总线DB和内部总线IB写进寄存器堆中的R0寄存器,若执行OUT指令,则需要把R0寄存器的内容经过内部总线IB和数据总线DB写入接口芯片。

接口芯片与输入输出设备之间的数据传送过程无需另外管理,会自动完成。

教学计算机使用8位的IO端口地址,安排在IN和OUT指令的低位字节,指令的高8位用作指令操作码,16为的指令编码全部占满,已经不能再指定要使用的通用寄存器,最终决定用对IN和OUT指令默认使用运算器中的R0完成输入输出操作。

IO地址端口的高4为(最高一位的值一定为1)用于通过译码电路产生接口芯片的8个片选信号,低4位用于选择一个芯片内最多16个寄存器。

教学计算机中,只为每个串行口芯片地址分配了两个地址,第一路串行接口的端口地址为80H/81H,第二路串行接口的端口地址可以由用户从90/91~F0/F1这8对中选择,把译码器的一个输出连接到接口芯片的片选信号引脚。

两个端口地址如何能够按照选择接口芯片内的4个寄存器呢?请注意,4个寄存器中的两个只用于输入,仅对IN 指令有用,另外两个只用于输出,仅对OUT指令有用。

2个端口地址和2条输入输出指令有如下4种组合,分别实现如下4项功能:IN 80:完成从接口芯片输入数据缓冲器读出8位数据并传送到R0寄存器低位字节;OUT 80:完成把R0寄存器低位字节的8位数据写入到接口芯片的输出数据缓冲器;IN 81:完成从接口芯片状态寄存器读出8位接口状态信息并传送到R0寄存器低位字节;OUT 81:完成把R0寄存器低位字节的8位命令信息写入到接口芯片的命令寄存器。

可以看到,偶数地址用于输入输出数据,奇数地址用于输入输出状态或命令信息。

实验说明1.TEC-XP+配置了两个串行接口COM1 和COM2,其中COM1 口是系统默认的串行口,加电复位后,监控程序对其进行初始化,并通过该口与PC 机或终端相连;而COM2 口,留给用户扩展用。

2.查阅有关书籍,了解串行通信接口芯片8251 的工作原理;了解8251 复位、初始化、数据传输的过程。

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

3.在使用COM2 口时,需要将两片8251 芯片之间的插针用短路子短接(出厂时已短接),这样才能为COM2 正常工作提供所需的控制信号和数据;另外,还需要为其分配数据口地址和控制口地址。

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

4.COM1口的初始化操作已经编写完毕。

注意:对COM1口进行操作时,通过地址80输入输出数据,通过地址81接收状态信息。

在对COM2进行操作时,需要先设置COM2的地址,可选择标有“I/O /CS”的7 个插孔中的任一个地址范围。

例如选择90~9F,则对COM2口进行操作时,通过地址90输入输出数据,通过地址91接收状态信息。

例如选择A0~AF,则对COM2进行操作时,通过地址A0输入输出数据,通过地址A1接收状态信息。

其他地址范围亦然。

实验注意事项1.连接电源线和通讯线前TEC-XP+实验系统的电源开关一定要处于断开状态,否则可能会对TEC-XP+实验系统上的芯片和PC机的串口造成损害。

2.六个黑色控制开关的功能示意图如下:(开关拨到上方表示为1,拨到下方为0,x表示任意)单步手动置指令组合逻辑联机8位FPGA上面下面连续从内存读指令微程序脱机16位MACH3.几种常用的工作方式(开关拨到上方表示为1,拨到下方为0,x表示任意)4.在拔插实验箱上的任何器件和连线时,都要关闭实验箱电源,否则可能会烧坏实验箱的器件。

实验步骤一.硬件连接1.在断电状态下,取出TEC-XP+实验系统,将桌子上的串口线连接到TEC-XP+实验系统的串口(离电源接口远的);连接电源,将电源线的连到TEC-XP+实验系统的电源接口。

2.将TEC-XP+实验系统左下方的六个黑色的控制机器运行状态的开关置于正确的位置,在这个实验中开关应置为001100。

3.打开电源,船形开关和5V 电源指示灯亮。

二.仿真终端软件的操作步骤1.在D盘下建立你的工作目录,目录的命名:你的名字的汉语拼音的首字母,例如你叫张三,则你的目录为zs。

2.将C:\tec-xp\pcec目录的拷贝到你的目录下。

3.双击,出现如图1所示的界面:图1 选择串口的界面4.系统默认选择串口1,直接按回车后出现如图2所示的界面:图2 选择参数的界面5.图2是系统设定的一些传输参数,直接回车。

按一下TEC-XP+实验系统的“RESET”按钮放开后再按一下“START”按钮,出现界面如图3所示:图3 启动界面此时表明TEC-XP+机器联机通讯正常。

三、串行接口输入输出设计一个小程序, 用次数控制在终端屏幕上输出20H个可打印字符。

(1)在命令行提示符状态下输入:A 2020↙屏幕将显示:2020:从地址2020H 开始输入下列程序:2020:MVRD R2,0020 ;送入输出字符个数2022:MVRD R0,0030 ;“0”字符的ASCII 码送寄存器R02024:OUT 80 ;输出保存在R0 低位字节的字符2025:DEC R2 ;输出字符个数减12026:JRZ 202E ;判10 个字符输出完否,已完,则转到程序结束处2027:PUSH R0 ;未完,保存R0 的值到堆栈中2028:IN 81 ;查询接口状态,判字符串行输出完成否,2029:SHR R0202A:JRNC 2028;未完成, 则循环等待202B:POP R0 ;已完成, 准备输出下一字符并从堆栈恢复R0 的值202C:INC R0 ;得到下一个要输出的字符202D:JR 2024 ;转去输出字符202E:RET202F:↙(2)用“G”命令运行程序,记录运行结果。

(3)将上述程序中的2028:IN 812029:SHR R0202A:JRNC 20283条语句修改为3条MVRR R0,R0语句再次运行该程序,查看会出现什么现象,记录运行结果,解释为什么会如此?四、串行接口扩展1.将8251芯片插入实验箱右上角SIO2 8251上,为扩展I/O 口选择一个地址:将与COM2 口相连的SIO2 8251 左上方的/CS 与标有I/O /CS的插孔中地址为A0~AF 的一个相连;2.将教学机COM1 口与一台PC 机(A机)相连,在PC机(A机)上启动PCEC16.EXE;3.断开COM1 与A机的串口线,将其连接到另一台PC 机(B机)的串口,同样启动PCEC16.EXE;4.用另一根串口线将COM2 口和A机相连;5.在与COM1 相连的PCEC 上输入程序,这是主PCEC 可以输入输出,和COM2 连接的是从PCEC只作输出;6.用A命令编程进行COM2 口的操作。

(1)程序1:COM2 口初始化在命令行提示符状态下输入:A 2000↙从2000H 单元开始输入下面的程序2000:MVRD R0,004E ;给R0 赋值004E2002:OUT A1 ;将R0 的值输出到COM2 口的8251 中的寄存器中2003:MVRD R0,0037 ;给R0 赋值00372005:OUT A1 ;将R0 的值输出到COM2 口的8251 中的寄存器中2006:RET在命令行提示符状态下输入G 2000 运行初始化程序,完成对COM2 口的初始化。

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

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

(2)程序2:从COM2 口输入数据,然后在与COM1 口相连的PC上显示出数据。

在命令行提示符状态下输入:A 2040↙从2040H 单元开始输入下面的程序2040:IN A1 ;判键盘上是否按了一个键,2041:SHR R0 ;即串行口是否有了输入的字符2042:SHR R02043:JRNC 2040 ;没有输入则循环测试2044:IN A0 ;从COM2 口读入字符到R02045:OUT 80 ;将该字符从COM1 口输出2046:RET2047:↙使用G命令运行该程序,要求记录:⏹从与COM1口相连的PC机的键盘上输入字符,两个PC机的屏幕显示分别是什么?⏹从与COM2口相连的PC机的键盘上输入字符,两个PC机的屏幕显示分别是什么?(3)程序3:从COM1 口接收数据,发送到与COM2 口相连的PC 机上回显。

相关主题