您好,欢迎访问三七文档
微机原理与接口技术实验报告一、实验目的1、掌握8254的工作方式及应用编程。2、掌握8254典型应用电路的接法。3、学习并掌握8255的工作方式及其应用。4、掌握8255典型应用电路的接法。5、掌握8259中断控制器的工作原理。6、学习8259的应用编程方法。7、掌握8259级联方式的使用方法。二、实验设备PC机一台,TD-PITE实验装置一套。三、实验原理实验一8254是Intel公司生产的可编程间隔定时器。8254具有以下基本功能:(1)有3个独立的16位计数器;(2)每个计数器可按二进制或十进制(BCD)计数;(3)每个计数器可编程工作于6种不同工作方式;(4)8254每个计数器允许的最高计数频率为10MHz(8253为2MHz);(5)8254有读回命令(8253没有),除了可以读出当前计数单元的内容外,还可以读出状态寄存器的内容;(6)计数脉冲可以是有规律的时钟信号,也可以是随机信号。计数初值公式为:n=fCLKi÷fOUTi、其中fCLKi是输入时钟脉冲的频率,fOUTi是输出波形的频率。8254的工作方式如下述:(1)方式0:计数到0结束输出正跃变信号方式。(2)方式1:硬件可重触发单稳方式。(3)方式2:频率发生器方式。(4)方式3:方波发生器。(5)方式4:软件触发选通方式。(6)方式5:硬件触发选通方式。8254的控制字有两个:一个用来设置计数器的工作方式,称为方式控制字;另一个用来设置读回命令,称为读回控制字。这两个控制字共用一个地址,由标识位来区分。控制字格式如下表所示实验二并行接口是以数据的字节为单位与I/O设备或被控制对象之间传递信息。CPU和接口之间的数据传送总是并行的,即可以同时传递8位、16位或32位等。8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种方式下工作:方式0--基本输入/输出方式、方式1--选通输入/输出方式、方式2--双向选通工作方式。8255的内部结构及引脚如图2-6-1所示,8255工作方式控制字和C口按位置位/复位控制字格式如图2-6-2所示。实验三在Intel386EX芯片中集成有中断控制单元(ICU),该单元包含有两个级联中断控制器,一个为主控制器,一个为从控制器。该中断控制单元就功能而言与工业上标准的82C59A是一致的,操作方法也相同。从片的INT连接到主片的IR2信号上构成两片8259的级联。在TD-PITE实验系统中,将主控制器的IR6、IR7以及从控制器的IR1开放出来供实验使用,主片8259的IR4供系统串口使用。8259的内部连接及外部管脚引出如图2-3-1所示。四、实验步骤(1)实验一1.1、计数应用实验编写程序,将8254的计数器0设置为方式3,计数值为十进制数4,用单次脉冲KK1+作为CLK0时钟,OUT0连接MIR7,每当KK1+按动5次后产生中断请求,在屏幕上显示字符“M”。实验步骤:(1)实验接线如图2-5-2所示;(2)编写实验程序,经编译、链接无误后装入系统;(3)运行程序,按动KK1+产生单次脉冲,观察实验现象;(4)改变计数值,验证8254的计数功能。编写程序:A8254EQU06C0HB8254EQU06C2HC8254EQU06C4HCON8254EQU06C6HSSTACKSEGMENTSTACKDW32DUP(?)SSTACKENDSCODESEGMENTASSUMECS:CODE,SS:SSTACKSTART:PUSHDSMOVAX,0000HMOVDS,AXMOVAX,OFFSETIRQ7;取中断入口地址MOVSI,003CH;中断矢量地址MOV[SI],AX;填IRQ7的偏移矢量MOVAX,CS;段地址MOVSI,003EHMOV[SI],AX;填IRQ7的段地址矢量CLIPOPDS;初始化主片8259MOVAL,11HOUT20H,AL;ICW1MOVAL,08HOUT21H,AL;ICW2MOVAL,04HOUT21H,AL;ICW3MOVAL,01HOUT21H,AL;ICW4MOVAL,6FH;OCW1OUT21H,AL;8254MOVDX,CON8254MOVAL,10H;计数器0,方式0OUTDX,ALMOVDX,A8254MOVAL,04HOUTDX,ALSTIAA1:NOPJMPAA1IRQ7:MOVDX,A8254MOVAL,04HOUTDX,ALMOVAX,014DHINT10H;显示字符MMOVAX,0120HINT10HMOVAL,20HOUT20H,AL;中断结束命令IRETCODEENDSENDSTART实验结果:图1.2、定时应用实验编写程序,将8254的计数器0设置为方式3,用信号源1MHz作为CLK0时钟,OUT0为波形输出1ms方波。实验步骤:(1)接线图如图2-5-3所示;(2)根据实验内容,编写实验程序,经编译、链接无误后装入系统;(3)运行实验程序,用示波器测试OUT0输出,验证程序功能。编写程序:A8254EQU06C0HB8254EQU06C2HC8254EQU06C4HCON8254EQU06C6HSSTACKSEGMENTSTACKDW32DUP(?)SSTACKENDSCODESEGMENTASSUMECS:CODE,SS:SSTACKSTART:MOVDX,CON8254;8254MOVAL,36H;计数器0,方式3OUTDX,ALMOVDX,A8254MOVAL,0E8HOUTDX,ALMOVAL,03HOUTDX,ALAA1:NOPJMPAA1CODEENDSENDSTART实验结果:图(2)实验二2.1、基本输入输出实验本实验使8255端口A工作在方式0并作为输入口,端口B工作在方式0并作为输出口。用一组开关信号接入端口A,端口B输出线接至一组数据灯上,然后通过对8255芯片编程来实现输入输出功能。具体实验步骤如下述:(1)实验接线图如图2-6-3所示,按图连接实验线路图;(2)编写实验程序,经编译、连接无误后装入系统;(3)运行程序,改变拨动开关,同时观察LED显示,验证程序功能。编写程序:SSTACKSEGMENTSTACKDW32DUP(?)SSTACKENDSCODESEGMENTASSUMECS:CODE,SS:SSTACKSTART:MOVDX,0646HMOVAL,90HOUTDX,ALAA1:MOVDX,0640HINAL,DXCALLDELAYMOVDX,0642HOUTDX,ALJMPAA1DELAY:PUSHCXMOVCX,0F00HAA2:PUSHAXPOPAXLOOPAA2POPCXRETCODEENDSENDSTART实验结果:图2.2、流水灯显示实验使8255的A口和B口均为输出,数据灯D7~D0由左向右,每次仅亮一个灯,循环显示,D15~D8与D7~D0正相反,由右向左,每次仅点亮一个灯,循环显示。实验接线图如图2-6-5所示。实验步骤如下所述:(1)按图2-6-5连接实验线路图;(2)编写实验程序,经编译、链接无误后装入系统;(3)运行程序,观察LED灯的显示,验证程序功能;(4)自己改变流水灯的方式,编写程序。编写程序:SSTACKSEGMENTSTACKDW32DUP(?)SSTACKENDSCODESEGMENTASSUMECS:CODESTART:MOVDX,0646HMOVAL,80HOUTDX,ALMOVBX,8001HAA1:MOVDX,0640HMOVAL,BHOUTDX,ALRORBH,1MOVDX,0642HMOVAL,BLOUTDX,ALROLBL,1CALLDELAYCALLDELAYJMPAA1DELAY:PUSHCXMOVCX,0F000HAA2:PUSHAXPOPAXLOOPAA2POPCXRETCODEENDSENDSTART实验结果:图(3)实验三3.1、8259单中断实验实验接线图如图2-3-11所示,单次脉冲输出与主片8259的IR7相连,每按动一次单次脉冲,产生一次外部中断,在显示屏上输出一个字符“7”。实验步骤(1)按图2-3-11连接实验线路;(2)编写实验程序,经编译、链接无误后装入系统;(3)运行程序,重复按单次脉冲开关KK1+,显示屏会显示字符“7”以说明响应了中断。编写程序SSTACKSEGMENTSTACKDW32DUP(?)SSTACKENDSCODESEGMENTASSUMECS:CODESTART:PUSHDSMOVAX,0000HMOVDS,AXMOVAX,OFFSETMIR7;取中断入口地址MOVSI,003CH;中断矢量地址MOV[SI],AX;填IRQ7的偏移矢量MOVAX,CS;段地址MOVSI,003EHMOV[SI],AX;填IRQ7的段地址矢量CLIPOPDS;初始化主片8259MOVAL,11HOUT20H,AL;ICW1MOVAL,08HOUT21H,AL;ICW2MOVAL,04HOUT21H,AL;ICW3MOVAL,01HOUT21H,AL;ICW4;初始化从片8259;MOVAL,11H;OUT0A0H,AL;MOVAL,30H;OUT0A1H,AL;MOVAL,02H;OUT0A1H,AL;MOVAL,01H;OUT0A1H,AL;MOVAL,0FFH;OUT0A1H,ALMOVAL,6FH;OCW1OUT21H,ALSTIAA1:NOPJMPAA1MIR7:STICALLDELAYMOVAX,0137HINT10H;显示字符7MOVAX,0120HINT10HMOVAL,20HOUT20H,AL;中断结束命令IRETDELAY:PUSHCXMOVCX,0F00HAA0:PUSHAXPOPAXLOOPAA0POPCXRETCODEENDSENDSTART实验结果:图3.2、8259级联实验实验接线图如图2-3-12所示,KK1+连接到主片8259的IR7上,KK2+连接到从片8259的IR1上,当按一次KK1+时,显示屏上显示字符“M7”,按一次KK2+时,显示字符“S1”。编写程序。实验步骤(1)按图2-3-12连接实验线路;(2)输入程序,编译、链接无误后装入系统;(3)运行程序,按动KK1+或KK2+,观察实验结果,验证实验程序的正确性;(4)若同时按下KK1+和KK2+,观察实验结果,解释实验现象。编写程序:SSTACKSEGMENTSTACKDW32DUP(?)SSTACKENDSCODESEGMENTASSUMECS:CODESTART:PUSHDSMOVAX,0000HMOVDS,AXMOVAX,OFFSETMIR7;取中断入口地址MOVSI,003CH;中断矢量地址MOV[SI],AX;填IRQ7的偏移矢量MOVAX,CS;段地址MOVSI,003EHMOV[SI],AX;填IRQ7的段地址矢量MOVAX,OFFSETSIR1MOVSI,00C4HMOV[SI],AXMOVAX,CSMOVSI,00C6HMOV[SI],AXCLIPOPDS;初始化主片8259MOVAL,11HOUT20H,AL;ICW1MOVAL,08HOUT21H,AL;ICW2MOVAL,04HOUT21H,AL;ICW3MOVAL,01HOUT21H,AL;ICW4;初始化从片8259MOVAL,11HOUT0A0H,AL;ICW1MOVAL,30HOUT0A1H,AL;ICW2MOVAL,02HOUT0A1H,AL;ICW3MOVAL,01HOUT0A1H,AL;ICW4MOVAL,0FDHOUT0A1H,AL;OCW1=11111101MOVAL,6BHOUT21H,AL;主8259OCW1STIAA1:NOPJMPAA1MIR7:CALLDELAYMOVAX,014DHINT10H;MMOVAX,0137HINT10H;显示字符7MOVAX,0120HINT10HMOVAL,20HOUT20H,AL;中断结束命令IRETSIR1:CALLDEL
本文标题:微机原理实验报告
链接地址:https://www.777doc.com/doc-4458429 .html