首页 计算机学院微机接口实验指导

计算机学院微机接口实验指导

举报
开通vip

计算机学院微机接口实验指导计算机学院微机接口实验指导 实 验 注 意 事 项 1. 根据教材和实验指导,先预习实验内容; 2. 进入实验室,需遵守实验室的规章制度; 3. 在实验室一定要注意用电安全,爱护实验设备; 4. 每次进实验室,请自觉穿上鞋套; 5. 实验完成后需经老师验收方可离开; 6. 离开时请带自己的所有物品(包括一些废弃物); 7. 按时上交实验报告,实验报告用统一的实验报告纸或A4纸。 8. 在安排的时间因事没有做的实验,不统一安排时间补做,自己 找合适的时间来补。 实验一 汇编语言程序设计实验 ...

计算机学院微机接口实验指导
计算机学院微机接口实验指导 实 验 注 意 事 项 1. 根据教材和实验指导,先预习实验内容; 2. 进入实验室,需遵守实验室的规章 制度 关于办公室下班关闭电源制度矿山事故隐患举报和奖励制度制度下载人事管理制度doc盘点制度下载 ; 3. 在实验室一定要注意用电安全,爱护实验设备; 4. 每次进实验室,请自觉穿上鞋套; 5. 实验完成后需经老师验收方可离开; 6. 离开时请带自己的所有物品(包括一些废弃物); 7. 按时上交 实验报告 化学实验报告单总流体力学实验报告观察种子结构实验报告观察种子结构实验报告单观察种子的结构实验报告单 ,实验 报告 软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载 用统一的实验报告纸或A4纸。 8. 在安排的时间因事没有做的实验,不统一安排时间补做,自己 找合适的时间来补。 实验一 汇编语言程序设计实验 一、 实验目的 熟悉汇编语言程序设计及TD-PITE80X86实验环境的使用。 二、 实验设备 PC机一台,TD-PITE实验装置或TD-PITC实验装置一套。 三、 实验内容 1. 冒泡排序法 在数据区中存放着一组数,数据的个数就是数据缓冲区的长度,要求采用冒泡法对该数据区中的数据按递增(或递减)关系排序。 设计思想: (1)从最后一个数(或第一个数)开始,依次把相邻的两个数进行比较,即第N个数与第N-1个数比较,第N-1个数与第N-2个数比较等等;若第N-1个数大于第N个数,则两者交换,否则不交换,直到N个数的相邻两个数都比较完为止。此时,N个数中的最小数将被排在N个数的最前列。 (2)对剩下的N-1个数重复(1)这一步,找到N-1个数中的最小数。 (3)再重复(2),直到N个数全部排列好为止。 实验程序示例 SSTACK SEGMENT STACK DW 64 DUP(?) SSTACK ENDS DATA SEGMENT ARRY1 DB 。。。。。。 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK START: 。。。。。。 MOV AX,4C00H INT 21H ;程序终止 CODE ENDS END START 2.在数据段的3000H开始的存储单元中写入“0-9”的ASCII码值,将它们传送到同一段的4000H开始的存储单元中。 3.在数据段定义一个16位二进制数,将它转换为十进制ASCII码,并存入数据段。 4.在数据段定义5个字节的16进制数据,转换为它们的ASCII码,并显示在屏幕上。 5.在数据段定义10个无符号数据,求出其中的最大和最小值,并显示。 四、 实验步骤 (1)完成汇编程序格式,编写实验程序。 (2)编译、链接无误后装入系统。 (3)先运行程序,待程序运行停止。 (4)通过键入D命令查看程序运行的结果。 (5)可以反复测试几组数据,观察结果,验证程序的正确性。 实验二 8259中断控制实验 一、 实验目的 1. 掌握8259中断控制器的工作原理。 2. 学习8259的应用编程方法。 3. 掌握8259级联方式的使用方法。 二、 实验设备 PC机一台,TD-PITE实验装置或TD-PITC实验装置一套。 三、 实验内容及步骤 1. 中断控制器8259简介 在Intel 386EX芯片中集成有中断控制单元(ICU),该单元包含有两个级联中断控制器,一个为主控制器,一个为从控制器。该中断控制单元就功能而言与工业上 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 的82C59A是一致的,操作方法也相同。从片的INT连接到主片的IR2信号上构成两片8259的级联。 在TD-PITE实验系统中,将主控制器的IR6、IR7以及从控制器的IR1开放出来供实验使用,主片8259的IR4供系统串口使用。8259的内部连接及外部管脚引出如图2.1: 图2。1 8259内部连续及外部管脚引出图 表2.1列出了中断控制单元的寄存器相关信息。 表2.1 ICU寄存器列表 寄存器 口地址 功能描述 ICW1(主) ICW1(从) (只写) 0020H 00A0H 初始化命令字1: 决定中断请求信号为电平触发还是边沿触发。 ICW2(主) ICW2(从) (只写) 0021H 00A1H 初始化命令字2: 包含了8259的基址中断向量号,基址中断向量是IR0的向量号,基址加1就是IR1的向量号,依此类推。 ICW3(主) (只写) 0021H 初始化命令字3: 用于识别从8259设备连接到主控制器的IR信号,内部的从8259连接到主8259的IR2信号上。 ICW3(从) (只写) 00A1H 初始化命令字3: 表明内部从控制器级联到主片的IR2信号上。 ICW4(主) ICW4(从) (只写) 0021H 00A1H 初始化命令字4: 选择特殊全嵌套或全嵌套模式,使能中断自动结束方式。 OCW1(主) OCW1(从) (读/写) 0021H 00A1H 操作命令字1: 中断屏蔽操作寄存器,可屏蔽相应的中断信号。 OCW2(主) OCW2(从) (只写) 0020H 00A0H 操作命令字2: 改变中断优先级和发送中断结束命令。 OCW3(主) OCW3(从) (只写) 0020H 00A0H 操作命令字3: 使能特殊屏蔽方式,设置中断查询方式,允许读出中断请求寄存器和当前中断服务寄存器。 IRR(主) IRR(从) (只读) 0020H 00A0H 中断请求: 指出挂起的中断请求。 ISR(主) ISR(从) (只读) 0020H 00A0H 当前中断服务: 指出当前正在被服务的中断请求。 POLL(主) POLL(从) (只读) 0020H 0021H 00A0H 00A1H 查询状态字: 表明连接到8259上的设备是否需要服务,如果有中断请求,该字表明当前优先级最高的中断请求。 初始化命令字1寄存器(ICW1)说明见图2.2所示。 图2.2 初始化命令字1寄存器 初始化命令字2寄存器(ICW2)说明见图2.3所示。 图2.3 初始化命令字2寄存器 初始化命令字3寄存器(ICW3)说明,主片见图2.4,从片见图2.5。 图2.4 主片初始化命令字3寄存器 图2.5 从片初始化命令字3寄存器 初始化命令字4寄存器(ICW4)说明见图2.6。 图2.6 初始化命令字4寄存器 操作命令字1寄存器(OCW1)说明见图2.7。 图2.7 操作命令字1寄存器 操作命令字2寄存器(OCW2)说明如图2.8所示。 图2.8 操作命令字2寄存器 操作命令字3寄存器(OCW3)说明如图2.9所示。 图2.9 操作命令字3寄存器 查询状态字(POLL)说明如图2.10所示。 图2.10 程序状态字寄存器 在对8259进行编程时,首先必须进行初始化。一般先使用CLI指令将所有的可屏蔽中断禁止,然后写入初始化命令字。8259有一个状态机控制对寄存器的访问,不正确的初始化顺序会造成异常初始化。在初始化主片8259时,写入初始化命令字的顺序是:ICW1、ICW2、ICW3、然后是ICW4,初始化从片8259的顺序与初始化主片8259的顺序是相同的。 系统启动时,主片8259已被初始化,且4号中断源(IR4)提供给与PC联机的串口通信使用,其它中断源被屏蔽。中断矢量地址与中断号之间的关系如下表所示: 主片中断序号 0 1 2 3 4 5 6 7 功能调用 08H 09H 0AH 0BH 0CH 0DH 0EH 0FH 矢量地址 20H~23H 24H~27H 28H~2BH 2CH~2FH 30H~33H 34H~37H 38H~3BH 3CH~3FH 说明 未开放 未开放 未开放 未开放 串口 未开放 可用 可用 从片中断序号 0 1 2 3 4 5 6 7 功能调用 30H 31H 32H 33H 34H 35H 36H 37H 矢量地址 C0H~C3H C4H~C7H C8H~CBH CCH~CFH D0H~D3H D4H~D7H D8H~DBH DCH~DFH 说明 未开放 可用 未开放 未开放 未开放 未开放 未开放 未开放 2. 8259单中断实验 实验接线图如图2.11所示,单次脉冲输出与主片8259的IR7相连,每按动一次单次脉冲,产生一次外部中断,在显示屏上输出一个字符“7”。 2.11 8259单中断实验接线图 实验程序示例 SSTACK SEGMENT STACK DW 32 DUP(?) SSTACK ENDS CODE SEGMENT ASSUME CS:CODE START: PUSH DS MOV AX, 0000H MOV DS, AX ;取中断入口地址 ;中断矢量地址 …… ;填IRQ7的偏移矢量 ;段地址 ;填IRQ7的段地址矢量 CLI POP DS …… ;初始化主片8259 STI AA1: NOP JMP AA1 MIR7: STI CALL DELAY …… ; 有中断就在屏幕显示一个字符 IRET CODE ENDS END START 实验步骤 (1)按图2.11连接实验线路。 (2)编写实验程序,经编译、链接无误后装入系统。 (3)运行程序,重复按单次脉冲开关KK1+,显示屏会显示字符相应字符,说明响应了中断。 3. 8259级联实验 实验接线图如图2.12所示,KK1+连接到主片8259的IR7上,KK2+连接到从片8259的IR1上,当按一次KK1+时,显示屏上显示字符“M7”,按一次KK2+时,显示字符“S1”。编写程序。 图2.12 8259级联实验 实验程序示例 SSTACK SEGMENT STACK DW 32 DUP(?) SSTACK ENDS CODE SEGMENT ASSUME CS:CODE START: ;取中断入口地址 …… ;中断矢量地址 ;填IRQ7的偏移矢量 ;段地址 ;填IRQ7的段地址矢量 …… ;初始化主片8259 …… ;初始化从片8259 STI AA1: NOP JMP AA1 MIR7: CALL DELAY …… ;主片有中断显示字符 IRET SIR1: CALL DELAY …… ;从片有中断显示字符 IRET CODE ENDS END START 实验步骤 (1)按图2.12连接实验线路。 (2)输入程序,编译、链接无误后装入系统。 (3)运行程序,按动KK1+或KK2+,观察实验结果,验证实验程序的正确性。 (4)若同时按下KK1+和KK2+,观察实验结果,解释实验现象。 实验三 8254定时/计数器应用实验 一、 实验目的 1. 掌握8254的工作方式及应用编程。 2. 掌握8254典型应用电路的接法。 二、 实验设备 PC机一台,TD-PITE实验装置或TD-PITC实验装置一套,示波器一台。 三、 实验内容 计数应用实验。编写程序,应用8254的计数功能,使用单次脉冲模拟计数,使每当按动‘KK1+’N次后,产生一次计数中断,并在屏幕上显示一个字符。 四、 实验原理 8254是Intel公司生产的可编程间隔定时器。是8253的改进型,比8253具有更优良的性能。8254具有以下基本功能: (1)有3个独立的16位计数器。 (2)每个计数器可按二进制或十进制(BCD)计数。 (3)每个计数器可编程工作于6种不同工作方式。 (4)8254每个计数器允许的最高计数频率为10MHz(8253为2MHz)。 (5)8254有读回命令(8253没有),除了可以读出当前计数单元的内容外,还可以读出状态寄存器的内容。 (6)计数脉冲可以是有规律的时钟信号,也可以是随机信号。计数初值公式为: n=fCLKi÷fOUTi、其中fCLKi是输入时钟脉冲的频率,fOUTi是输出波形的频率。 图3.1是8254的内部结构框图和引脚图,它是由与CPU的接口、内部控制电路和三个计数器组成。8254的工作方式如下述: (1)方式0:计数到0结束输出正跃变信号方式。 (2)方式1:硬件可重触发单稳方式。 (3)方式2:频率发生器方式。 (4)方式3:方波发生器。 (5)方式4:软件触发选通方式。 (6)方式5:硬件触发选通方式。 图3.1 8254的内部接口和引脚 8254的控制字有两个:一个用来设置计数器的工作方式,称为方式控制字;另一个用来设置读回命令,称为读回控制字。这两个控制字共用一个地址,由标识位来区分。控制字格式如表3.1—3.3所示。 表3.1 8254的方式控制字格式 D7 D6 D5 D4 D3 D2 D1 D0 计数器选择 读/写格式选择 工作方式选择 计数码制选择 00-计数器0 01-计数器1 10-计数器2 11-读出控制 字标志 00-锁存计数值 01-读/写低8位 10-读/写高8位 11-先读/写低8位 再读/写高8位 000-方式0 001-方式1 010-方式2 011-方式3 100-方式4 101-方式5 0-二进制数 1-十进制数 表3.2 8254读出控制字格式 D7 D6 D5 D4 D3 D2 D1 D0 1 1 0-锁存计数值 0-锁存状态信息 计数器选择(同方式控制字) 0 表3.3 8254状态字格式 D7 D6 D5 D4 D3 D2 D1 D0 OUT引脚现行状态 1-高电平 0-低电平 计数初值是否装入 1-无效计数 0-计数有效 计数器方式(同方式控制字) 8254实验单元电路图如下图所示: 图3.2 8254实验电路原理图 五、 实验步骤 1. 计数应用实验 编写程序,将8254的计数器0设置为方式3,计数值为十进制数4,用单次脉冲KK1+作为CLK0时钟,OUT0连接MIR7,每当KK1+按动5次后产生中断请求,在屏幕上显示字符。 实验步骤: 1.实验接线如图3.3所示。 2.编写实验程序,经编译、链接无误后装入系统。 3.运行程序,按动KK1+产生单次脉冲,观察实验现象。 4.改变计数值,验证8254的计数功能。 图3.3 8254计数应用实验接线图 实验程序示例 A8254 EQU 06C0H B8254 EQU 06C2H C8254 EQU 06C4H CON8254 EQU 06C6H SSTACK SEGMENT STACK DW 32 DUP(?) SSTACK ENDS CODE SEGMENT ASSUME CS:CODE, SS:SSTACK START: ;8259 …… ;中断8259初始化 ;8254 …… ;计数器8254初始化 STI AA1: JMP AA1 IRQ7: …… ;中断服务程序 IRET CODE ENDS END START 2.定时应用实验 利用8254的2个计数器T0、T1,将系统主时钟1MHZ分频成1HZ(可用LED灯观察)。 实验步骤: 1.参考图3.3,自行修改实验电路。 2.编写实验程序,经编译、链接无误后装入系统。 3.运行程序,观察实验现象。 4.改变计数值,验证8254的定时功能。 实验四 8255并行接口实验 一、 实验目的 1. 学习并掌握8255的工作方式及其应用。 2. 掌握8255典型应用电路的接法。 二、 实验设备 PC机一台,TD-PITE实验装置或TD-PITC实验装置一套。 三、 实验内容 1. 基本输入输出实验。编写程序,使8255的A口为输入,B口为输出,完成拨动开关到数据灯的数据传输。要求只要开关拨动,数据灯的显示就发生相应改变。 2. 流水灯显示实验。编写程序,使8255的A口和B口均为输出,数据灯D7~D0由左向右,每次仅亮一个灯,循环显示,D15~D8与D7~D0正相反,由右向左,每次仅点亮一个灯,循环显示。 3.驱动数码管显示字符”0-9”。编写程序,选择一个或多个数码管来显示0到9十个数字字符。 四、 实验原理 图4.1 8255内部结构及外部引脚图 并行接口是以数据的字节为单位与I/O设备或被控制对象之间传递信息。CPU和接口之间的数据传送总是并行的,即可以同时传递8位、16位或32位等。8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种方式下工作:方式0--基本输入/输出方式、方式1--选通输入/输出方式、方式2--双向选通工作方式。8255的内部结构及引脚如图4. 1所示,8255工作方式控制字和C口按位置位/复位控制字格式如图4. 2所示。 图4. 2 8255控制字格式 8255实验单元电路图如图4. 3所示: 图4. 3 8255实验单元电路图 五、 实验步骤 1. 基本输入输出实验 本实验使8255端口A工作在方式0并作为输入口,端口B工作在方式0并作为输出口。用一组开关信号接入端口A,端口B输出线接至一组数据灯上,然后通过对8255芯片编程来实现输入输出功能。具体实验步骤如下述: (1)实验接线图如图4.34所示,按图连接实验线路图。 (2)编写实验程序,经编译、连接无误后装入系统。 (3)运行程序,改变拨动开关,同时观察LED显示,验证程序功能。 图4. 4 8255基本输入输出实验接线图 2. 流水灯显示实验 使8255的A口和B口均为输出,数据灯D7~D0由左向右,每次仅亮一个灯,循环显示,D15~D8与D7~D0正相反,由右向左,每次仅点亮一个灯,循环显示。实验接线图如图4. 5所示。实验步骤如下所述: (1)按图4. 5连接实验线路图。 (2)编写实验程序,经编译、链接无误后装入系统。 (3)运行程序,观察LED灯的显示,验证程序功能。 (4)自己改变流水灯的方式,编写程序。 图4. 5 8255流水灯实验接线图 3. 驱动数码管显示“0-9” (1)根据要求,自行连接实验线路图。 (2)编写实验程序,经编译、链接无误后装入系统。 (3)运行程序,观察数码管的显示,验证程序功能。 (4)改变数码管的显示方式,编写程序。 实验五 8251串行接口应用实验 一、 实验目的 1. 掌握8251的工作方式及应用。 2. 了解有关串口通讯的知识。 二、 实验设备 PC机两台,TD-PITE实验装置或TD-PITC实验装置两套。 三、 实验内容 1. 自收自发实验,将3000H起始的10个单元中的初始数据发送到串口,然后自接收并保存到4000H起始的内存单元中。 2. 双机通讯实验,本实验需要两台实验装置,其中一台作为接收机,一台作为发送机,发送机将3000H~3009H内存单元中共10个数发送到接收机,接收机将接收到的数据直接在屏幕上输出显示。 四、 实验原理 1. 8251的基本性能 8251是可编程的串行通信接口,可以管理信号变化范围很大的串行数据通信。有下列基本性能: (1)通过编程,可以工作在同步方式,也可以工作在异步方式。 (2)同步方式下,波特率为0~64K,异步方式下,波特率为0~19.2K。 (3)在同步方式时,可以用5~8位来代表字符,内部或外部同步,可自动插入同步字符。 (4)在异步方式时,也使用5~8位来代表字符,自动为每个数据增加1个启动位,并能够根据编程为每个数据增加1个、1.5个或2个停止位。 (5)具有奇偶、溢出和帧错误检测能力。 (6)全双工,双缓冲器发送和接收器。 注意,8251尽管通过了RS-232规定的基本控制信号,但并没有提供规定的全部信号。 2. 8251的内部结构及外部引脚 8251的内部结构图如图5.1所示,可以看出,8251有7个主要部分,即数据总线缓冲器、读/写控制逻辑电路、调制/解调控制电路、发送缓冲器、发送控制电路、接收缓冲器和接收控制电路,图中还标识出了每个部分对外的引脚。 8251的外部引脚如图5.2所示,共28个引脚,每个引脚信号的输入输出方式如图中的箭头方向所示。 图5.1 8251内部结构图 图5.2 8251外部引脚图 3. 8251在异步方式下的TXD信号上的数据传输格式 图5.3 示意了8251工作在异步方式下的TXD信号上的数据传输格式。数据位与停止位的位数可以由编程指定。 图5.3 8251工作在异步方式下TXD信号的数据传输格式 4. 8251的编程 对8251的编程就是对8251的寄存器的操作,下面分别给出8251的几个寄存器的格式。 (1)方式控制字 方式控制字用来指定通信方式及其方式下的数据格式,具体各位的定义如图5.4所示。 D7 D6 D5 D4 D3 D2 D1 D0 SCS/S2 ESD/S1 EP PEN L2 L1 B2 B1 同步/停止位 奇偶校验 字符长度 波特率系数 同步(D1D0=00) X0=内同步 X1=外同步 0X=双同步 1X=单同步 异步(D1D0≠0) 00=不用 01=1位 10=1.5位 11=2位 X0=无校验 01=奇校验 11=偶校验 00=5位 01=6位 10=7位 11=8位 异步 00=不用 01=01 10=16 11=64 同步 00=同步方式标志 图5.4 8251方式控制字 (2)命令控制字 命令控制字用于指定8251进行某种操作(如发送、接收、内部复位和检测同步字符等)或处于某种工作状态,以便接收或发送数据。图5.5所示的是8251命令控制字各位的定义。 D7 D6 D5 D4 D3 D2 D1 D0 EH IR RTS ER SBRK RxE DTR TxEN 进入搜索 1=允许搜索 内部复位 1=使8251返回方式控制字 请求发送 1=使RTS输出0 错误标志复位使错误标志PE、OE、FE复位 发中止字符 1=使TXD为低0=正常工作 接收允许 1=允许 0=禁止 数据终端准备好 1=使DTR输出0 发送允许 1=允许 0=禁止 图5.5 8251命令控制字格式 (3)状态字 CPU通过状态字来了解8251当前的工作状态,以决定下一步的操作,8251的状态字如图5.6所示。 D7 D6 D5 D4 D3 D2 D1 D0 DSR SYNDET FE OE PE TxE RxRDY TxRDY 数据装置就绪: 当DSR输入为0时,该位为1 同步检测 帧错误:该标志仅用于异步方式,当在任一字符的结尾没有检测到有效的停止位时,该位置1。此标志由命令控制字中的位4复位。 溢出错误:在下一个字符变为可用前,CPU没有把字符读走,此标志置1。此错误出现时上一字符已丢失。 奇偶错误: 当检测到奇偶错误时此位置1。 发送器空 接收就绪为1表明接收到一个字符。 发送就绪为1表明发送缓冲器空。 图5.6 8251状态字格式 (4)系统初始化 8251的初始化和操作流程如图5.7所示。 图5.7 8251初始化 流程图 破产流程图 免费下载数据库流程图下载数据库流程图下载研究框架流程图下载流程图下载word 5. 8251实验单元电路图 图5.8 8251实验单元电路图 五、 实验步骤 1. 自收自发实验 通过自收自发实验,可以验证硬件及软件设计,常用于自测试。具体实验步骤如下: (1)参考实验接线图如图5.9所示,按图连接实验线路。 (2)编写实验程序,编译、链接无误后装入系统。 (3)使用E命令更改4000H起始的10个单元中的数据。 (4)运行实验程序,待程序运行停止。 (5)查看3000H起始的10个单元中的数据,与初始化的数据进行比较,验证程序功能。 实验参考例程 M8251_DATA EQU 0600H ;端口定义 M8251_CON EQU 0602H M8254_2 EQU 06C4H M8254_CON EQU 06C6H SSTACK SEGMENT STACK DW 64 DUP(?) SSTACK ENDS CODE SEGMENT ASSUME CS:CODE START: MOV AX, 0000H MOV DS, AX ;初始化8254,得到收发时钟 …… ;复位8251 CALL INIT CALL DALLY ;8251方式字 …… 图5.9 自收自发实验接线图 ;8251控制字 …… …… ;发送数据 …… ;判断发送缓冲是否为空 …… ;判断是否接收到数据 …… ;读取接收到的数据 MOV AX,4C00H INT 21H ;程序终止 INIT PROC NEAR ;复位8251子程序 …… RET INIT ENDP …… ;延时子程序 CODE ENDS END START 2. 双机通讯实验 使用两台实验装置,一台为发送机,一台为接收机,进行两机间的串行通讯。实验步骤如下: 图5.10 双机通讯实验接线图 (1)按图5.10连接实验线路。 (2)为两台机器分别编写实验程序,编译、链接后装入系统。 (3)为发送机初始化发送数据。在发送机3000H~3009H内存单元写入ASCII值:30,31,32,33,34,35,36,37,38,39共10个数。 (4)首先运行接收机上的程序,等待接收数据,然后运行发送机上的程序,将数据发送到串口。 (5)观察接收机端屏幕上的显示是否与发送机端初始的数据相同,验证程序功能。 屏幕将会显示字符:0123456789 实验参考例程(接收机) M8251_DATA EQU 0600H M8251_CON EQU 0602H M8254_2 EQU 06C4H M8254_CON EQU 06C6H SSTACK SEGMENT STACK DW 64 DUP(?) SSTACK ENDS CODE SEGMENT ASSUME CS:CODE START: …… ;初始化8254 CLI CALL INIT ;复位8251 CALL DALLY …… ;写8251方式字 MOV AX, 0152H ;输出显示字符 'R' INT 10H MOV DI, 3000H MOV CX, 000AH A1: …… ;查询状态口 …… ;读取数据 …… ;输出显示接收到的数据 STI A2: JMP A2 INIT PROC NEAR ;复位8251子程序 …… RET INIT ENDP …… ;延时子程序 CODE ENDS END START 实验参考程序(发送机) M8251_DATA EQU 0600H M8251_CON EQU 0602H M8254_2 EQU 06C4H M8254_CON EQU 06C6H SSTACK SEGMENT STACK DW 64 DUP(?) SSTACK ENDS CODE SEGMENT ASSUME CS:CODE START: …… ;初始化8254, 得到收发时钟 CALL INIT ;复位8251 CALL DALLY …… ;8251方式字 CALL DALLY …… ;8251控制字 CALL DALLY …… ;发送数据 A2: JMP A2 INIT PROC NEAR ;复位8251子程序 …… RET INIT ENDP SEND PROC NEAR ;数据发送子程序 …… RET SEND ENDP …… ;延时子程序 CODE ENDS END START 附录 系统编程信息 附1 地址分配情况 1. 系统内存分配 系统内存分配情况如附图1-1所示。系统内存分为程序存储器和数据存储器,程序存储器为一片128KB的FLASH ROM,数据存储器为一片128KB的SRAM。 附图1-1 系统内存分配 2. 系统编址 采用内存与IO独立编址形式,内存地址空间和外设地址空间是相对独立的。内存地址是连续的1M字节,从00000H~FFFFFH。外设的地址范围从0000H~FFFFH,总共64K字节。 (1)存储器编制 存储器编址情况见下表。 附表1-1 存储器编址 信号线 编址空间 系统程序存储器 E0000H~FFFFFH 系统数据存储器 00000H~1FFFFH 扩展存储器 MY0 80000H~9FFFFH MY1 A0000H~BFFFFH 即 SRAM空间:00000H~1FFFFH共128K 其中:00000H~00FFFH为4K系统区 01000H~1FFFFH为124K用户使用区 FALSH空间:0E0000H~0FFFFFH共128K 其中:0E0000H~0EFFFFH为64K供用户使用区 0F0000H~0FFFFH为64K系统监控区 (2)输入/输出接口编址 输入/输出接口编址见下表。 附表1-2 输入/输出接口编址 信号线 编址空间 主片8259 20H、21H 从片8259 A0H、A1H 扩展I/O接口 IOY0 0600H~063FH IOY1 0640H~067FH IOY2 0680H~06BFH IOY3 06C0H~06FFH 附2 常用BIOS及DOS功能调用说明 附表2-1 INT 03H使用说明 入口:无 功能:程序终止 附表2-2 INT 10H 使用说明 入口:AH=01H,AL=数据 功能:写AL中的数据到屏上 入口:AH=06H,DS:BX=字串首址,且字串尾用00H填充 功能:显示一字串,直到遇到00H为止 附表2-3 INT 16H 使用说明 入口:AH=00H 功能:读键盘缓冲到AL中,读指针移动,ZF=1无键值,ZF=0有键值 入口:AH=01H 功能:检测键盘缓冲,并送到AL中,读指针不动,ZF=1无键值,ZF=0有键值 附表2-4 INT 21H使用说明 入口:AH=00H或AH=4CH 功能:程序终止 入口:AH=01H 功能:读键盘输入到AL中并回显 入口:AH=02H,DL=数据 功能:写DL中的数据到显示屏 入口:AH=08H 功能:读键盘输入到AL中无回显 入口:AH=09H,DS:DX=字符串首地址,字符串以 '$' 结束 功能:显示字符串,直到遇到 '$' 为止 入口:AH=0AH,DS:DX=缓冲区首地址,(DS:DX)=缓冲区最大字符数, (DS:DX+1)=实际输入字符数,(DS:DX+2)=输入字符串起始地址 功能:读键盘输入的字符串到DS:DX指定缓冲区中并以回车结束 附3 Debug调试命令 Wmd86软件输出区集成有Debug调试,点击调试标签,进入Debug状态,会出现命令提示符“>”,主要命令叙述如下: A 进入小汇编 格式:A[段址:][偏移量] A段址:偏移量——从段址:偏移量构成的实际地址单元起填充汇编程序的目标代码; A偏移量——从默认的段址与给定的偏移量构成的实际地址单元起填充汇编程序目标代码; A——从默认段址:默认偏移量构成的实际地址单元起填充汇编程序的目标代码; 输入上述命令后,屏幕显示地址信息,即可输入源程序。若直接回车,则退出命令。汇编程序输入时,数据一律为十六进制数,且省略H后缀。[m]类操作一定要在[ ]之前标注W(字)或B(字节)。如:MOV B[2010], AX,MOV W[2010], AX。 例:在“>”提示符下键入A2000,此时默认的段址CS为0000,规定偏移量IP为2000,屏幕显示与操作为: 附表3-1 小汇编操作示例 显示内容 键入内容 0000:2000 MOV AX, 1234 0000:2003 INC AX 0000:2004 DEC AX 0000:2005 JMP 2000 0000:2007 B 断点设置 在系统提示符下,键入B,系统提示[i]:,等待输入断点地址。输入断点地址后回车,系统继续提示[i+1]:。若直接键入回车,则结束该命令。系统允许设置最多10个断点,断点的清除只能是通过系统复位或重新上电来实现。例: 附表3-2 B命令示例 显示内容 键入内容 > B [0]: 2009 [1]: D 显示一段地址单元中的数据 格式:D[[段址:]起始地址,[尾地址]] D命令执行后屏幕上显示一段地址单元中的数据,在显示过程中,可用Ctrl+S来暂停显示,用任意键继续;也可用Ctrl+C终止数据显示,返回监控状态。 E编辑指定地址单元中的数据 格式:E[[段址:]偏移量] 该命令执行后,则按字节显示或修改数据,可通过“空格”键进入下一高地址单元数据的修改,使用“-”键则进入下一低地址单元进行数据的修改,并可填入新的数据来修改地址单元的内容。若输入回车,则结束E命令。例: 附表3-3 E命令示例 显示内容 键入内容 > E3500 0000:3500 00_ 05 空格 0000:3501 01_ 空格 0000:3502 02_ - 0000:3501 01_ G运行程序 格式:G=[段址:]偏移量 G[=[段址:]偏移量] 其中G格式表示无断点连续运行程序,GB格式表示带断点连续运行程序,连续运行过程中,当遇到断点或按下Ctrl+C键时,终止程序运行。 M数据块搬移 格式:M源地址,尾地址 目标地址 R寄存器或片内RAM区显示与修改 格式:R或R寄存器名 R操作后,屏幕显示:CS=XXXX DS=XXXX IP=XXXX AX=XXXX F=XXXX 若需要显示并修改特定寄存器内容,则选择R寄存器名操作。如RAX,则显示:AX=XXXX,键入回车键,结束该命令。若输入四位十六进制数并回车,则将该数填入寄存器AX中,并结束该命令。 T单步运行指定的程序 格式:T[=[段址:]偏移量] 每次按照指定的地址或IP/PC指示的地址,单步执行一条指令后则显示运行后的CPU寄存器情况。 U反汇编 格式:U[[段址:]起始地址[,尾地址]] _1307170732.vsd S7 S6 S5 S4 S3 S2 S1 0 7 0 S7-S3:0表示无8259被连接到主片上 1表示有8259被连接到主片上 S2:0表示内部从片没被使用 1表示内部从片被级联到主片的IR2上 S1:0表示无8259通过IR1连接到主片上 1表示有8259通过IR1连接到主片上 ICW3(主片) _1307170765.vsd R SL EOI 0 0 L2 L1 L0 7 0 OCW2 R SL EOI 命令 0 0 0 取消优先级自动循环 * 0 0 1 � _1309084072.vsd 双向数据总线 数据 总线 缓冲 器 D0-D7 RD WR A1 A0 RESET CS 读/写 控制 逻辑 A组 控制 部件 8位内总线 B组 控制 部件 A口 (8位) C口 (高4位) C口 (低4位) B口 (8位) I/O I/O I/O I/O PA7-PA0 PC7-PC4 PC3-PC0 PB7-PB0 PA3 PA2 PA1 PA0 RD CS GND A1 A0 PC7 PC6 PC5 PC4 PC0 PC1 PC2 PC3 PB0 PB1 PB2 PA4 PA5 PA6 PA7 WR RESET D0 D1 D2 D3 D4 D5 D6 D7 VCC PB7 PB6 PB5 PB4 PB3 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 8255 _1309085524.vsd 0 ESMM SMM 0 1 P RR RIS 7 0 OCW3 ESMM SMM 0 0 无影响 0 1 无影响 1 0 禁止特殊屏蔽模式 1 1 使能特殊屏蔽模式 P:设置该位使8259工作在中断查询方式 RR RIS 0 0 无影响 0 1 无影响 1 0 读中断请求寄存器IRR 1 1 读当前中断服务寄存器ISR _1307171030.vsd 数据总线 缓冲器 读/写控制逻辑电路 调制/解调控制电路 发送 缓冲器 并→串 转换 发送控制电路 接收 缓冲器 串→并 转换 接收控制电路 D7~D0 RESET CLK C/D# RD# WR# CS# DSR# DTR# CTS# RTS# RxRDY RxC SYNDET TxC RxD TxE TxRDY TxD 内 部 总 线 _1307171054.vsd 系统RESET 初始化 输入方式指令 异步? 输入第1个同步字符 1个同步字符? 输入第2个同步字符 输入命令指令 复位? 传送数据 完成? Y Y Y Y N N N N _1307171696.vsd 系统程序区128K 用户堆栈区 用户程序区 系统堆栈区 DEBUG系统数据区 BIOS系统数据区 中断矢量区 0000:0000H 0000:1000H 2000:0000H 0000:0000H~03FFH 0000:0400H~04FFH 0000:0500H~06FFH 0000:0700H~0FFFH E000:0000H~F000:FFFFH 124K _1307170786.vsd INT - - - - L2 L1 L0 7 0 POLL INT:0=无请求 1=连接在8259上的设备请求服务 L2、L1、L0:当INT为1时,这些位指出了需要服务的最高优先级的IR;当INT为0时这些位不确定。 _1307170748.vsd 0 0 0 SNFM 0 0 AEOI 1 7 0 ICW4 SNFM:0=选择全嵌套模式 1=选择特殊全嵌套模式,仅主8259能够工作在特殊全嵌套模式 AEOI:0=禁止中断自动结束 1=使能中断自动结束,仅主8259能够工作在中断自动结束方式 _1307170755.vsd M7 M6 M5 M4 M3 M2 M1 M0 7 0 OCW1 M7--M0:0=对应IR信号上的中断请求得到允许 1=对应IR信号上的中断请求被屏蔽 注意:设置屏蔽位不影响各自中断挂起位 _1307170740.vsd 0 0 0 0 0 0 1 0 7 0 ICW3(从片) _1307170705.vsd 0 0 0 1 LS 0 0 1 7 0 0:边沿触发 1:电平触发 ICW1 _1307170723.vsd T7 T6 T5 T4 T3 0 0 0 7 0 ICW2 中断向量地址 _1095317697.vsd _1301819176.vsd D2 D3 RxD GND D4 D5 D6 D7 TxC# WR# CS# C/D# RD# RxRDY D0 D1 Vcc RxC# DTR# RTS# DSR# RESET CLK TxD TxE CTS# SYNDET/BD TxRDY 1 14 28 15 8251 _1307170681.vsd 主片8259A 从片8259A INT INT CAS2:0 CAS2:0 IR2 IR4 IR6 IR7 IR1 INTR (内核) 串口0 MIR6 MIR7 SIR1 _1179295229.vsd _1095316771.vsd
本文档为【计算机学院微机接口实验指导】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_637593
暂无简介~
格式:doc
大小:838KB
软件:Word
页数:28
分类:互联网
上传时间:2013-04-27
浏览量:6