微机系统与接口技术实验指导书不含汇编打印精简本_第1页
微机系统与接口技术实验指导书不含汇编打印精简本_第2页
微机系统与接口技术实验指导书不含汇编打印精简本_第3页
微机系统与接口技术实验指导书不含汇编打印精简本_第4页
微机系统与接口技术实验指导书不含汇编打印精简本_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、微机系统与接口技术实验指导书李鹤喜张健金旺春五邑大学计算机学院2012-5目 录目 录I、系统认识实验2一、8255并行接口实验7二、8251串行接口应用实验12三、8254定时/计数器应用实验22四、8259中断控制实验27五、A/D转换实验35六、D/A转换实验38七、键盘扫描及显示设计实验41八、电子发声设计实验46、系统认识实验0.1 实验目的掌握TD系列微机原理及接口技术教学实验系统的操作,熟悉Wmd86联机集成开发调试软件的操作环境。0.2 实验设备PC机一台,TD-PITE实验装置或TD-PITC实验装置一套。0.3 实验内容编写实验程序,将00H0FH共16个数写入内存3000

2、H开始的连续16个存储单元中。0.4 实验步骤1. 运行Wmd86软件,进入Wmd86集成开发环境。2. 根据程序设计使用语言的不同,通过在“设置”下拉列表来选择需要使用的语言和寄存器类型,这里我们设置成“汇编语言”和“16位寄存器”,如图0-1、图0-2所示。设置选择后,下次再启动软件,语言环境保持这次的修改不变。本章选择16位寄存器。图0-1 语言环境设置界面图0-2 寄存器设置界面3. 语言和寄存器选择后,点击新建或按Ctrl+N组合键来新建一个文档,如图0-3所示。默认文件名为Wmd861。图0-3 新建文件界面4. 编写实验程序,如图0-4所示,并保存,此时系统会提示输入新的文件名,

3、输完后点击保存。图0-4 程序编辑界面5. 点击,编译文件,若程序编译无误,则可以继续点击进行链接,链接无误后方可以加载程序。编译、链接后输出如图0-5所示的输出信息。图0-5 编译输出信息界面6. 连接PC与实验系统的通讯电缆,打开实验系统电源。7. 编译、链接都正确并且上下位机通讯成功后,就可以下载程序,联机调试了。可以通过端口列表中的“端口测试”来检查通讯是否正常。点击下载程序。为编译、链接、下载组合按钮,通过该按钮可以将编译、链接、下载一次完成。下载成功后,在输出区的结果窗中会显示“加载成功!”,表示程序已正确下载。起始运行语句下会有一条绿色的背景。如图0-6所示。图0-6 加载成功显

4、示界面8. 将输出区切换到调试窗口,使用D0000:3000命令查看内存3000H起始地址的数据,如图0-7所示。存储器在初始状态时,默认数据为CC。图0-7 内存地址单元数据显示9. 点击按钮运行程序,待程序运行停止后,通过D0000:3000命令来观察程序运行结果。如图0-8所示。图0-8 运行程序后数据变化显示10. 也可以通过设置断点,断点显示如图0-9所示,然后运行程序,当遇到断点时程序会停下来,然后观察数据。可以使用E0000:3000来改变该地址单元的数据,如图0-10所示,输入11后,按“空格”键,可以接着输入第二个数,如22,结束输入按“回车”键。图0-9 断点设置显示 图0

5、-10 修改内存单元数据显示界面 实验例程文件名为Wmd861.asm。1.5 操作练习编写程序,将内存3500H单元开始的8个数据复制到3600H单元开始的数据区中。通过调试验证程序功能,使用E命令修改3500H单元开始的数据,运行程序后使用D命令查看3600H单元开始的数据。一、8255并行接口实验1.1 实验目的1. 学习并掌握8255的工作方式及其应用。2. 掌握8255典型应用电路的接法。3. 掌握程序固化及脱机运行程序的方法。1.2 实验设备PC机一台,TD-PITE实验装置或TD-PITC实验装置一套。1.3 实验内容1. 基本输入输出实验。编写程序,使8255的A口为输入,B口

6、为输出,完成拨动开关到数据灯的数据传输。要求只要开关拨动,数据灯的显示就发生相应改变。2. 流水灯显示实验。编写程序,使8255的A口和B口均为输出,数据灯D7D0由左向右,每次仅亮一个灯,循环显示,D15D8与D7D0正相反,由右向左,每次仅点亮一个灯,循环显示。1.4 实验原理图1-1 8255内部结构及外部引脚图并行接口是以数据的字节为单位与I/O设备或被控制对象之间传递信息。CPU和接口之间的数据传送总是并行的,即可以同时传递8位、16位或32位等。8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种方式

7、下工作:方式0-基本输入/输出方式、方式1-选通输入/输出方式、方式2-双向选通工作方式。8255的内部结构及引脚如图1-1所示,8255工作方式控制字和C口按位置位/复位控制字格式如图1-2所示。图1-2 8255控制字格式8255实验单元电路图如图1-3所示:图1-3 8255实验单元电路图1.5 实验步骤1. 基本输入输出实验本实验使8255端口A工作在方式0并作为输入口,端口B工作在方式0并作为输出口。用一组开关信号接入端口A,端口B输出线接至一组数据灯上,然后通过对8255芯片编程来实现输入输出功能。具体实验步骤如下述:(1)实验接线图如图1-4所示,按图连接实验线路图。(2)编写实

8、验程序,经编译、连接无误后装入系统。(3)运行程序,改变拨动开关,同时观察LED显示,验证程序功能。(4)点击“调试”下拉菜单中的“固化程序”项,将程序固化到系统存储器中。(5)将短路跳线JDBG的短路块短接到RUN端,然后按复位按键,观察程序是否正常运行;关闭实验箱电源,稍等后再次打开电源,看固化的程序是否运行,验证程序功能。(6)实验完毕后,请将短路跳线JDBG的短路块短接到DBG端。图1-4 8255基本输入输出实验接线图实验程序清单(A82551.ASM)SSTACKSEGMENT STACKDW 32 DUP(?)SSTACKENDSCODESEGMENTASSUME CS:CODE

9、START:MOV DX, 0646HMOV AL, 90HOUT DX, ALAA1:MOV DX, 0640HIN AL, DXCALL DELAYMOV DX, 0642HOUT DX, ALJMP AA1DELAY:PUSH CXMOV CX, 0F00HAA2:PUSH AXPOP AXLOOP AA2POP CXRETCODEENDSEND START2. 流水灯显示实验使8255的A口和B口均为输出,数据灯D7D0由左向右,每次仅亮一个灯,循环显示,D15D8与D7D0正相反,由右向左,每次仅点亮一个灯,循环显示。实验接线图如图4.35所示。实验步骤如下所述:(1)按图1-5连接

10、实验线路图。(2)编写实验程序,经编译、链接无误后装入系统。(3)运行程序,观察LED灯的显示,验证程序功能。(4)自己改变流水灯的方式,编写程序。(5)固化程序并脱机运行。图1-5 8255流水灯实验接线图实验程序清单(A82552.ASM)SSTACKSEGMENT STACKDW 32 DUP(?)SSTACKENDSCODESEGMENTASSUME CS:CODESTART:MOV DX, 0646HMOV AL, 80HOUT DX, ALMOV BX, 8001HAA1:MOV DX, 0640HMOV AL, BHOUT DX, ALROR BH, 1MOV DX, 0642H

11、MOV AL, BLOUT DX, ALROL BL, 1 CALL DELAYCALL DELAYJMP AA1DELAY:PUSH CXMOV CX, 0F000HAA2:PUSH AXPOP AXLOOP AA2POP CXRETCODEENDSEND START二、8251串行接口应用实验2.1 实验目的1. 掌握8251的工作方式及应用。2. 了解有关串口通讯的知识。2.2 实验设备PC机两台,TD-PITE实验装置或TD-PITC实验装置两套。2.3 实验内容1. 数据信号的串行传输实验,循环向串口发送一个数,使用示波器测量TXD引脚上的波形,以了解串行传输的数据格式。2. 自收自

12、发实验,将3000H起始的10个单元中的初始数据发送到串口,然后自接收并保存到4000H起始的内存单元中。3. 双机通讯实验,本实验需要两台实验装置,其中一台作为接收机,一台作为发送机,发送机将3000H3009H内存单元中共10个数发送到接收机,接收机将接收到的数据直接在屏幕上输出显示。2.4 实验原理1. 8251的基本性能8251是可编程的串行通信接口,可以管理信号变化范围很大的串行数据通信。有下列基本性能:(1)通过编程,可以工作在同步方式,也可以工作在异步方式。(2)同步方式下,波特率为064K,异步方式下,波特率为019.2K。(3)在同步方式时,可以用58位来代表字符,内部或外部

13、同步,可自动插入同步字符。(4)在异步方式时,也使用58位来代表字符,自动为每个数据增加1个启动位,并能够根据编程为每个数据增加1个、1.5个或2个停止位。(5)具有奇偶、溢出和帧错误检测能力。(6)全双工,双缓冲器发送和接收器。注意,8251尽管通过了RS-232规定的基本控制信号,但并没有提供规定的全部信号。2. 8251的内部结构及外部引脚8251的内部结构图如图2-1所示,可以看出,8251有7个主要部分,即数据总线缓冲器、读/写控制逻辑电路、调制/解调控制电路、发送缓冲器、发送控制电路、接收缓冲器和接收控制电路,图中还标识出了每个部分对外的引脚。8251的外部引脚如图2-2所示,共2

14、8个引脚,每个引脚信号的输入输出方式如图中的箭头方向所示。图2-1 8251内部结构图图4.37 8251外部引脚图3. 8251在异步方式下的TXD信号上的数据传输格式图2-3 示意了8251工作在异步方式下的TXD信号上的数据传输格式。数据位与停止位的位数可以由编程指定。图2-3 8251工作在异步方式下TXD信号的数据传输格式4. 8251的编程对8251的编程就是对8251的寄存器的操作,下面分别给出8251的几个寄存器的格式。(1)方式控制字方式控制字用来指定通信方式及其方式下的数据格式,具体各位的定义如图2-4所示。D7D6D5D4D3D2D1D0SCS/S2ESD/S1EPPEN

15、L2L1B2B1同步/停止位奇偶校验字符长度波特率系数同步(D1D000)X0内同步X1外同步0X双同步1X单同步异步(D1D00)00不用011位101.5位112位X0无校验01奇校验11偶校验005位016位107位118位异步00不用010110161164同步00同步方式标志图2-4 8251方式控制字(2)命令控制字命令控制字用于指定8251进行某种操作(如发送、接收、内部复位和检测同步字符等)或处于某种工作状态,以便接收或发送数据。图2-5所示的是8251命令控制字各位的定义。D7D6D5D4D3D2D1D0EHIRRTSERSBRKRxEDTRTxEN进入搜索1允许搜索内部复位

16、1使8251返回方式控制字请求发送1使RTS输出0错误标志复位使错误标志PE、OE、FE复位发中止字符1使TXD为低0正常工作接收允许1允许0禁止数据终端准备好1使DTR输出0发送允许1允许0禁止图2-5 8251命令控制字格式(3)状态字CPU通过状态字来了解8251当前的工作状态,以决定下一步的操作,8251的状态字如图2-6所示。D7D6D5D4D3D2D1D0DSRSYNDETFEOEPETxERxRDYTxRDY数据装置就绪:当DSR输入为0时,该位为1同步检测帧错误:该标志仅用于异步方式,当在任一字符的结尾没有检测到有效的停止位时,该位置1。此标志由命令控制字中的位4复位。溢出错误

17、:在下一个字符变为可用前,CPU没有把字符读走,此标志置1。此错误出现时上一字符已丢失。奇偶错误:当检测到奇偶错误时此位置1。发送器空接收就绪为1表明接收到一个字符。发送就绪为1表明发送缓冲器空。图2-6 8251状态字格式(4)系统初始化8251的初始化和操作流程如图2-7所示。图2-7 8251初始化流程图5. 8251实验单元电路图图2-8 8251实验单元电路图2.5 实验步骤1. 自收自发实验通过自收自发实验,可以验证硬件及软件设计,常用于自测试。具体实验步骤如下:(1)参考实验接线图如图2-9所示,按图连接实验线路。(2)编写实验程序,编译、链接无误后装入系统。(3)使用E命令更改

18、4000H起始的10个单元中的数据。(4)运行实验程序,待程序运行停止。(5)查看3000H起始的10个单元中的数据,与初始化的数据进行比较,验证程序功能。实验参考例程(A82512.ASM)M8251_DATAEQU 0600H;端口定义M8251_CONEQU 0602HM8254_2EQU 06C4HM8254_CONEQU 06C6HSSTACKSEGMENT STACKDW 64 DUP(?)SSTACKENDSCODESEGMENTASSUME CS:CODESTART:MOV AX, 0000HMOV DS, AX;初始化8254,得到收发时钟MOV AL, 0B6HMOV DX

19、, M8254_CONOUT DX, ALMOV AL, 0CHMOV DX, M8254_2OUT DX, ALMOV AL, 00HOUT DX, AL;复位8251CALL INITCALL DALLY;8251方式字MOV AL,7EHMOV DX, M8251_CON 图2-9 自收自发实验接线图OUT DX, ALCALL DALLY;8251控制字 MOV AL, 34HOUT DX, ALCALL DALLYMOV DI, 3000HMOV SI, 4000HMOV CX, 000AHA1:MOV AL, SIPUSH AXMOV AL, 37HMOV DX, M8251_CO

20、NOUT DX, ALPOP AXMOV DX, M8251_DATAOUT DX, AL;发送数据MOV DX, M8251_CON A2:IN AL, DX;判断发送缓冲是否为空AND AL, 01HJZ A2CALL DALLYA3:IN AL, DX;判断是否接收到数据AND AL, 02HJZ A3MOV DX, M8251_DATAIN AL, DX;读取接收到的数据MOV DI, ALINC DIINC SILOOP A1MOV AX,4C00HINT 21H;程序终止INIT:MOV AL, 00H;复位8251子程序MOV DX, M8251_CONOUT DX, ALCAL

21、L DALLYOUT DX, ALCALL DALLYOUT DX, ALCALL DALLYMOV AL, 40HOUT DX, ALRETDALLY:PUSH CXMOV CX,3000HA5:PUSH AXPOP AXLOOP A5POP CXRETCODEENDSEND START3. 双机通讯实验使用两台实验装置,一台为发送机,一台为接收机,进行两机间的串行通讯。实验步骤如下:图2-10 双机通讯实验接线图(1)按图2-10连接实验线路。(2)为两台机器分别编写实验程序,编译、链接后装入系统。(3)为发送机初始化发送数据。在发送机3000H3009H内存单元写入ASCII值:30,3

22、1,32,33,34,35,36,37,38,39共10个数。(4)首先运行接收机上的程序,等待接收数据,然后运行发送机上的程序,将数据发送到串口。(5)观察接收机端屏幕上的显示是否与发送机端初始的数据相同,验证程序功能。屏幕将会显示字符:0123456789实验参考例程(接收机)(A82513.ASM)M8251_DATAEQU 0600HM8251_CONEQU 0602HM8254_2EQU 06C4HM8254_CONEQU 06C6HSSTACKSEGMENT STACKDW 64 DUP(?)SSTACKENDSCODESEGMENTASSUME CS:CODESTART:MOV

23、AL, 0B6H;初始化8254MOV DX, M8254_CONOUT DX, ALMOV AL, 0CHMOV DX, M8254_2OUT DX, ALMOV AL, 00HOUT DX, ALCLICALL INIT;复位8251CALL DALLYMOV AL, 7EHMOV DX, M8251_CONOUT DX, AL CALL DALLYMOV AL, 34HOUT DX, AL CALL DALLYMOV AX, 0152H;输出显示字符 'R'INT 10HMOV DI, 3000HMOV CX, 000AHA1:IN AL, DXAND AL, 02HJZ

24、 A1MOV DX, M8251_DATAIN AL, DXAND AL, 7FHMOV DI,ALINC DILOOP A1MOV AL, 00HMOV SI, 300AHMOV SI, ALMOV AH, 06HMOV BX, 3000HINT 10H;输出显示接收到的数据STIA2:JMP A2INIT:MOV AL, 00H;复位8251子程序MOV DX, M8251_CONOUT DX, ALCALL DALLYOUT DX, ALCALL DALLYOUT DX, ALCALL DALLYMOV AL, 40HOUT DX, ALRETDALLY:PUSH CXMOV CX, 3

25、000HA3:PUSH AXPOP AXLOOP A3POP CXRETCODEENDSEND START实验参考程序(发送机)(A82514.ASM)M8251_DATAEQU 0600HM8251_CONEQU 0602HM8254_2EQU 06C4HM8254_CONEQU 06C6HSSTACKSEGMENT STACKDW 64 DUP(?)SSTACKENDSCODESEGMENTASSUME CS:CODESTART:MOV AL, 0B6H;初始化8254, 得到收发时钟MOV DX, M8254_CONOUT DX, ALMOV AL, 0CHMOV DX, M8254_2

26、OUT DX, ALMOV AL, 00HOUT DX, ALCALL INIT;复位8251CALL DALLYMOV AL, 7EHMOV DX, M8251_CONOUT DX, AL;8251方式字CALL DALLYMOV AL, 34HOUT DX, AL;8251控制字CALL DALLYMOV DI, 3000HMOV CX, 000AHA1:MOV AL, DICALL SENDCALL DALLYINC DILOOP A1A2:JMP A2INIT:MOV AL, 00H;复位8251子程序MOV DX, M8251_CONOUT DX, ALCALL DALLYOUT D

27、X, ALCALL DALLYOUT DX, ALCALL DALLYMOV AL, 40HOUT DX, ALRETDALLY:PUSH CXMOV CX, 3000HA4:PUSH AXPOP AXLOOP A4POP CXRETSEND:PUSH AX;数据发送子程序PUSH DXMOV AL, 31HMOV DX, M8251_CONOUT DX, ALMOV DX, M8251_DATAOUT DX, ALMOV DX, M8251_CONA3:IN AL, DXAND AL, 01HJZ A3POP DXPOP AXRETCODEENDSEND START三、8254定时/计数器应

28、用实验3.1 实验目的1. 掌握8254的工作方式及应用编程。2. 掌握8254典型应用电路的接法。3.2 实验设备PC机一台,TD-PITE实验装置或TD-PITC实验装置一套,示波器一台。3.3 实验内容1. 计数应用实验。编写程序,应用8254的计数功能,使用单次脉冲模拟计数,使每当按动KK15次后,产生一次计数中断,并在屏幕上显示一个字符M。2. 定时应用实验。编写程序,应用8254的定时功能,产生一个1ms的方波。3.4 实验原理8254是Intel公司生产的可编程间隔定时器。是8253的改进型,比8253具有更优良的性能。8254具有以下基本功能:(1)有3个独立的16位计数器。(

29、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结束输出

30、正跃变信号方式。(2)方式1:硬件可重触发单稳方式。(3)方式2:频率发生器方式。 (4)方式3:方波发生器。(5)方式4:软件触发选通方式。 (6)方式5:硬件触发选通方式。图3-1 8254的内部接口和引脚8254的控制字有两个:一个用来设置计数器的工作方式,称为方式控制字;另一个用来设置读回命令,称为读回控制字。这两个控制字共用一个地址,由标识位来区分。控制字格式如表3-13-3所示。表3-1 8254的方式控制字格式D7D6D5D4D3D2D1D0计数器选择读/写格式选择工作方式选择计数码制选择00计数器001计数器110计数器211读出控制字标志00锁存计数值01读/写低8位10读/

31、写高8位11先读/写低8位 再读/写高8位000方式0001方式1010方式2011方式3100方式4101方式50二进制数1十进制数表3-2 8254读出控制字格式D7D6D5D4D3D2D1D0110锁存计数值0锁存状态信息计数器选择(同方式控制字)0表3-3 8254状态字格式D7D6D5D4D3D2D1D0OUT引脚现行状态1高电平0低电平计数初值是否装入1无效计数0计数有效计数器方式(同方式控制字)8254实验单元电路图如图3-2所示:图3-2 8254实验电路原理图3.5 实验步骤1. 计数应用实验编写程序,将8254的计数器0设置为方式3,计数值为十进制数4,用单次脉冲KK1作为

32、CLK0时钟,OUT0连接MIR7,每当KK1按动5次后产生中断请求,在屏幕上显示字符“M”。实验步骤:(1)实验接线如图3-3所示。(2)编写实验程序,经编译、链接无误后装入系统。(3)运行程序,按动KK1产生单次脉冲,观察实验现象。(4)改变计数值,验证8254的计数功能。图3-3 8254计数应用实验接线图实验程序清单(A82541.ASM)A8254 EQU 06C0HB8254 EQU 06C2HC8254 EQU 06C4HCON8254 EQU 06C6HSSTACKSEGMENT STACKDW 32 DUP(?)SSTACKENDSCODESEGMENTASSUME CS:C

33、ODE, SS:SSTACKSTART:PUSH DSMOV AX, 0000HMOV DS, AXMOV AX, OFFSET IRQ7;取中断入口地址MOV SI, 003CH;中断矢量地址MOV SI, AX;填IRQ7的偏移矢量MOV AX, CS;段地址MOV SI, 003EHMOV SI, AX;填IRQ7的段地址矢量CLIPOP DS;初始化主片8259MOV AL, 11HOUT 20H, AL;ICW1MOV AL, 08HOUT 21H, AL;ICW2MOV AL, 04HOUT 21H, AL;ICW3MOV AL, 01HOUT 21H, AL;ICW4MOV AL

34、, 6FH;OCW1OUT 21H, AL;8254MOV DX, CON8254MOV AL, 10H;计数器0,方式0OUT DX, ALMOV DX, A8254MOV AL, 04HOUT DX, ALSTIAA1:JMP AA1IRQ7:MOV DX, A8254MOV AL, 04HOUT DX, ALMOV AX, 014DHINT 10H;显示字符MMOV AX, 0120HINT 10HMOV AL, 20HOUT 20H, AL;中断结束命令IRETCODEENDSEND START2. 定时应用实验编写程序,将8254的计数器0设置为方式3,用信号源1MHz作为CLK0时

35、钟,OUT0为波形输出1ms方波。实验步骤:(1)接线图如图3-4所示。(2)根据实验内容,编写实验程序,经编译、链接无误后装入系统。(3)运行实验程序,用示波器测试OUT0输出,验证程序功能。实验程序清单(A82542.ASM)A8254 EQU 06C0HB8254 EQU 06C2HC8254 EQU 06C4HCON8254 EQU 06C6HSSTACKSEGMENT STACKDW 32 DUP(?)SSTACKENDSCODESEGMENTASSUME CS:CODESTART:MOV DX, CON8254;8254MOV AL, 36H;计数器0,方式3OUT DX, ALM

36、OV DX, A8254MOV AL, 0E8HOUT DX, ALMOV AL, 03HOUT DX, ALAA1:JMP AA1CODEENDSEND START图3-4 8254定时应用实验接线图四、8259中断控制实验4.1 实验目的1. 掌握8259中断控制器的工作原理。2. 学习8259的应用编程方法。3. 掌握8259级联方式的使用方法。4.2 实验设备PC机一台,TD-PITE实验装置或TD-PITC实验装置一套。4.3 实验内容及步骤1. 中断控制器8259简介在Intel 386EX芯片中集成有中断控制单元(ICU),该单元包含有两个级联中断控制器,一个为主控制器,一个为从

37、控制器。该中断控制单元就功能而言与工业上标准的82C59A是一致的,操作方法也相同。从片的INT连接到主片的IR2信号上构成两片8259的级联。在TD-PITE实验系统中,将主控制器的IR6、IR7以及从控制器的IR1开放出来供实验使用,主片8259的IR4供系统串口使用。8259的内部连接及外部管脚引出如图4-1:图4-1 8259内部连续及外部管脚引出图表4-1列出了中断控制单元的寄存器相关信息。表4-1 ICU寄存器列表寄存器口地址功能描述ICW1(主)ICW1(从)(只写)0020H00A0H初始化命令字1:决定中断请求信号为电平触发还是边沿触发。ICW2(主)ICW2(从)(只写)0

38、021H00A1H初始化命令字2:包含了8259的基址中断向量号,基址中断向量是IR0的向量号,基址加1就是IR1的向量号,依此类推。ICW3(主)(只写)0021H初始化命令字3:用于识别从8259设备连接到主控制器的IR信号,内部的从8259连接到主8259的IR2信号上。ICW3(从)(只写)00A1H初始化命令字3:表明内部从控制器级联到主片的IR2信号上。ICW4(主)ICW4(从)(只写)0021H00A1H初始化命令字4:选择特殊全嵌套或全嵌套模式,使能中断自动结束方式。OCW1(主)OCW1(从)(读/写)0021H00A1H操作命令字1:中断屏蔽操作寄存器,可屏蔽相应的中断信

39、号。OCW2(主)OCW2(从)(只写)0020H00A0H操作命令字2:改变中断优先级和发送中断结束命令。OCW3(主)OCW3(从)(只写)0020H00A0H操作命令字3:使能特殊屏蔽方式,设置中断查询方式,允许读出中断请求寄存器和当前中断服务寄存器。IRR(主)IRR(从)(只读)0020H00A0H中断请求:指出挂起的中断请求。ISR(主)ISR(从)(只读)0020H00A0H当前中断服务:指出当前正在被服务的中断请求。POLL(主)POLL(从)(只读)0020H0021H00A0H00A1H查询状态字:表明连接到8259上的设备是否需要服务,如果有中断请求,该字表明当前优先级最

40、高的中断请求。初始化命令字1寄存器(ICW1)说明见图4-2所示。图4-2 初始化命令字1寄存器初始化命令字2寄存器(ICW2)说明见图4-3所示。图4-3 初始化命令字2寄存器初始化命令字3寄存器(ICW3)说明,主片见图4-4,从片见图4-5。图4-4 主片初始化命令字3寄存器图4-5 从片初始化命令字3寄存器初始化命令字4寄存器(ICW4)说明见图4-5。图4-5 初始化命令字4寄存器操作命令字1寄存器(OCW1)说明见图4-6。图4-6 操作命令字1寄存器操作命令字2寄存器(OCW2)说明如图4-7所示。图4-7 操作命令字2寄存器操作命令字3寄存器(OCW3)说明如图4-8所示。图4

41、-8 操作命令字3寄存器查询状态字(POLL)说明如图4-9所示。图4-9 程序状态字寄存器在对8259进行编程时,首先必须进行初始化。一般先使用CLI指令将所有的可屏蔽中断禁止,然后写入初始化命令字。8259有一个状态机控制对寄存器的访问,不正确的初始化顺序会造成异常初始化。在初始化主片8259时,写入初始化命令字的顺序是:ICW1、ICW2、ICW3、然后是ICW4,初始化从片8259的顺序与初始化主片8259的顺序是相同的。系统启动时,主片8259已被初始化,且4号中断源(IR4)提供给与PC联机的串口通信使用,其它中断源被屏蔽。中断矢量地址与中断号之间的关系如下表所示:主片中断序号01

42、234567功能调用08H09H0AH0BH0CH0DH0EH0FH矢量地址20H23H24H27H28H2BH2CH2FH30H33H34H37H38H3BH3CH3FH说明未开放未开放未开放未开放串口未开放可用可用从片中断序号01234567功能调用30H31H32H33H34H35H36H37H矢量地址C0HC3HC4HC7HC8HCBHCCHCFHD0HD3HD4HD7HD8HDBHDCHDFH说明未开放可用未开放未开放未开放未开放未开放未开放2. 8259单中断实验实验接线图如图4-10所示,单次脉冲输出与主片8259的IR7相连,每按动一次单次脉冲,产生一次外部中断,在显示屏上输出

43、一个字符“7”。 图4-10 8259单中断实验接线图实验程序清单(INT1.ASM)SSTACKSEGMENT STACKDW 32 DUP(?)SSTACKENDSCODE SEGMENT ASSUME CS:CODESTART: PUSH DSMOV AX, 0000HMOV DS, AXMOV AX, OFFSET MIR7;取中断入口地址MOV SI, 003CH;中断矢量地址MOV SI, AX;填IRQ7的偏移矢量MOV AX, CS;段地址MOV SI, 003EHMOV SI, AX;填IRQ7的段地址矢量CLIPOP DS;初始化主片8259MOV AL, 11HOUT 2

44、0H, AL;ICW1MOV AL, 08HOUT 21H, AL;ICW2MOV AL, 04HOUT 21H, AL;ICW3MOV AL, 01HOUT 21H, AL;ICW4MOV AL, 6FH;OCW1OUT 21H, ALSTIAA1:NOPJMP AA1MIR7:STICALL DELAYMOV AX, 0137HINT 10H;显示字符7MOV AX, 0120HINT 10HMOV AL, 20HOUT 20H, AL;中断结束命令IRETDELAY:PUSH CXMOV CX, 0F00HAA0:PUSH AXPOP AXLOOP AA0POP CXRETCODEEND

45、SEND START实验步骤(1)按图4.15连接实验线路。(2)编写实验程序,经编译、链接无误后装入系统。(3)运行程序,重复按单次脉冲开关KK1,显示屏会显示字符“7”,说明响应了中断。3. 8259级联实验实验接线图如图4-11所示,KK1连接到主片8259的IR7上,KK2连接到从片8259的IR1上,当按一次KK1时,显示屏上显示字符“M7”,按一次KK2时,显示字符“S1”。编写程序。 图4-11 8259级联实验 实验程序清单(INTCAS1.ASM)SSTACKSEGMENT STACKDW 32 DUP(?)SSTACKENDSCODE SEGMENT ASSUME CS:C

46、ODESTART: PUSH DSMOV AX, 0000HMOV DS, AXMOV AX, OFFSET MIR7;取中断入口地址MOV SI, 003CH;中断矢量地址MOV SI, AX;填IRQ7的偏移矢量MOV AX, CS;段地址MOV SI, 003EHMOV SI, AX;填IRQ7的段地址矢量MOV AX, OFFSET SIR1MOV SI, 00C4HMOV SI, AXMOV AX, CSMOV SI, 00C6HMOV SI, AXCLIPOP DS;初始化主片8259MOV AL, 11HOUT 20H, AL;ICW1MOV AL, 08HOUT 21H, AL

47、;ICW2MOV AL, 04HOUT 21H, AL;ICW3MOV AL, 01HOUT 21H, AL;ICW4;初始化从片8259MOV AL, 11HOUT 0A0H, AL;ICW1MOV AL, 30HOUT 0A1H, AL;ICW2MOV AL, 02HOUT 0A1H, AL;ICW3MOV AL, 01HOUT 0A1H, AL;ICW4MOV AL, 0FDHOUT 0A1H,AL;OCW1 = 1111 1101MOV AL, 6BHOUT 21H, AL;主8259 OCW1STIAA1:NOPJMP AA1MIR7:CALL DELAYMOV AX, 014DHI

48、NT 10H;MMOV AX, 0137HINT 10H;显示字符7MOV AX, 0120HINT 10HMOV AL, 20HOUT 20H, AL;中断结束命令IRETSIR1:CALL DELAYMOV AX, 0153HINT 10H;SMOV AX, 0131HINT 10H;显示字符1MOV AX, 0120HINT 10HMOV AL, 20HOUT 0A0H, ALOUT 20H, ALIRETDELAY:PUSH CXMOV CX, 0F00HAA0:PUSH AXPOP AXLOOP AA0POP CXRETCODEENDSEND START实验步骤(1)按图4.16连接实验线路。(2)输入程序,编译、链接无误后装入系统。(3)运行程序,按动KK1或KK2,观察实验结果,验

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论