微机原理及接口技术实验报告.docx
- 文档编号:30623648
- 上传时间:2023-08-18
- 格式:DOCX
- 页数:45
- 大小:2.97MB
微机原理及接口技术实验报告.docx
《微机原理及接口技术实验报告.docx》由会员分享,可在线阅读,更多相关《微机原理及接口技术实验报告.docx(45页珍藏版)》请在冰豆网上搜索。
微机原理及接口技术实验报告
《微机原理与接口技术》
实验报告
姓名:
学号:
班级:
专业:
电气工程及其自动化
学院:
电气与信息工程学院
实验一数据传送
一、实验目的
1.掌握与数据有关的不同寻址方式。
2.继续熟悉实验操作软件的环境及使用方法。
二、实验设备
PC微机一台、TD-PIT+或TD-PIT++实验系统一套。
三、实验内容
本实验要求将数据段中的一个字符串传送到附加段中,并输出附加段中的目标字符串到屏幕上。
四、实验步骤
(1)运行Tdpit集成操作软件,编写实验程序。
(2)编译连接无误后,进入调试环境,进行程序的调试。
按F8键单步运行程序,执行完MOVDS,AX语句后,观察DS寄存器中出现的段地址。
如图1-1所示可以看出DS数据段中MSR源数据串"HELLO,WORLD!
$"。
图1-1进入调试环境
(3)继续单步运行程序,执行MOVES,AX语句后,可以看数据段出现的段地址,用同样的方法可以查看ES:
0000的数据。
数据传输还没开始进行,此时ES段的数据为空,如图1-1所示。
继续单步运行程序如图1-2可以看出数据正在逐渐的进入ES段中。
图1-2DS源数据段数据
(4)直到数据传输完毕,可以看到ES数据段中目的数据串MSD已经被写入了数据串"HELLO,WORLD!
$"。
如图1-3所示。
图1-3根据ES值查看附加段的数据
实验二算术运算
一、实验目的
1.掌握运算类指令编程及调试方法。
2.掌握运算类指令对各状态标志位的影响及测试方法。
二、实验设备
PC微机一台、TD-PIT+或TD-PIT++实验系统一套。
三、实验内容及说明
80x86指令系统提供了实现加、减、乘、除运算的基本指令,可对表2-4-1所示的数据类型进行算术运算。
表2-1数据类型算术运算表
二进制双精度加法运算
本实验要求计算X+Y=Z,将结果Z输出到屏幕,其中X=001565A0H,Y=0021B79EH。
实验利用累加器AX,先求低十六位和,并存入低址存储单元,后求高16位和,再存入高址存储单元。
由于低位和可能向高位有进位,因而高位字相加语句需用ADC指令,则低位相加有进位时,CF=1,高位字相加时,同时加上CF中的1。
在8086以上微机中可以直接使用32位寄存器和32位加法指令完成本实验的功能。
四、实验步骤
(1)运行Tdpit集成操作软件,按各实验要求编写实验程序。
(2)分别对实验程序进行编译、链接。
(3)使用运行功能运行程序,观察运行结果。
(4)使用调试功能调试程序,观察在调试过程中,各运算指令执行后,各寄存器、标志位及数据区内容的变化。
如图2-1所示
图2-1运行后的结果图
实验三代码转换
1、实验目的
掌握不同的进制数及编码相互转换的程序设计方法
2、实验设备
PC微机一台,TD-PIT+或TD-PIT++实验系统一套
3、实验内容及说明
计算机输入设备输入的信息一般是由ASCII码或BCD码表示的数据或字符,CPU一般均用二进制数进行计算或其他信息处理,处理结果的输出又必须依照外设的要求变为ASCII码、BCD码或七段显示码等。
因此,在应用软件中各类数制的转换和代码的转换是必不可少的。
计算机与外设间的数码对应关系如图3-1所示。
数码转换关系如图3-2所示。
图3-1计算机与外设间的数码对应关系
图3-2数码转换关系
ASCII码表示的十进制数转换为二进制数
十进制数可以表示为:
Dn×10n+Dn-1×10n-1+…+D0×100=Di×10i其中Di代表十进制数1、2、3…9、0。
上式可以转换为:
∑Di×10i=((…(Dn×10+Dn-1)×10)+Dn-2)×10+…+D1)×10+D0
由上式可归纳十进制数转换为二进制的方法:
从十进制数的最高位Dn开始作乘10加次位的操作,依次类推,则可求出二进制数结果。
本实验要求将缓冲区中的一个五位十进制数00012的ASCII码转换成二进制数,并将转换结果按位显示在屏幕上。
转换过程的参考流程如图3-3所示。
图3-3十进制ASCII转换为二进制数参考流程
四、实验步骤
(1)运行Tdpit集成操作软件,按照各实验要求分别编写实验程序。
(2)对实验程序进行编译、链接。
(3)使用运行功能执行程序,观察运行结果。
如下图3-4所示
图3-4ASCII码表示的十进制数转换为二进制数运行结果
(4)使用调试功能调试程序,观察在调试过程中,程序指令执行之后各寄存器及数据区的内容。
如图3-5所示可以看出AX,BX,CX,DX,SI,DI在执行程序以后的它们中所存的内容。
数据区的内容如图3-4所示
图3-5寄存器的内容
实验四程序的基本结构
1、分支程序
一、实验目的
掌握分支程序的设计方法。
2、实验仪器
PC微机一台、
实验器材一台
三、实验内容及说明
程序有顺序、循环、分支和子程序四种结构形式
分支结构的示意图如图4-1-1所示。
本实验要求通过求无符号字节序列中的最大值和最小值来反映分支程序的结构形式。
图4-1-1分支结构示意图
实验可以使用BH,BL作为暂存现行的最大值和最小值,且在程序的初始,将BH和BL初始化为首字节的内容,然后进入循环操作。
在循环操作中,依次从字节序列中逐个取出一个字节的内容与BH,BL进行比较,若取出的字节内容比BH的内容大或比BL中的内容小,则修改之。
当循环结束操作时,将BH,BL分别送屏幕显示。
参考实验流程如图4-1-2所示。
图4-1-2分支程序试验流程图
四、实验步骤
(1)运行Tdpit软件,选择文件菜单编写实验程序;提供8字节的数据:
0D9H,07H,8BH,0C5H,0EBH,04H,9DH,0F9H。
(2)使用编译菜单中的编译和连接对实验程序进行汇编、连接。
(3)使用编译菜单中的运行,运行程序,运行结果如图4-1-3所示
图4-1-3运行分支程序结果
由图可知,该程序运行结果为:
在给出的8个字节中,最大的为F9,最小的为04,该程序为找最大最小值。
(4)调试并观察寄存器中的数据,结果如下图4-1-4:
图4-1-4调试结果
如上图中圈出部分所示,寄存器中的内容为前两个字符0D9和07。
2、循环程序
一、实验目的
掌握循环程序的设计方法。
3、实验仪器
PC微机一台、
实验器材一台
三、实验内容及说明
本实验要求通过求某数据区内负数的个数来表现循环程序的结构形式。
要求实验程序在数据区中存放一组数据,为统计负数的个数,逐个判断区内的数据,然后将所有数据中凡是符号位为1的数据的个数累加起来,即得到区内所包含负数的个数。
循环程序的结构示意如图1所示。
图4-2-1循环结构示意图
四、实验步骤
(1)运行Tdpit软件,选择文件菜单编写实验程序。
提供10字节的数据:
12H,88H,82H,89H,33H,90H,01H,10H,0BDH,01H。
(2)使用编译菜单中的编译和连接对实验程序进行汇编、连接。
(3)使用编译菜单中的运行,运行程序,观察运行结果如下图4-2-2所示:
图4-2-2循环程序运行结果
由图4-2-2,运行得出的结果为:
负数的个数为5。
(4)调试并观察寄存器中的数据,结果如下图4-2-3和图4-2-4。
图4-2-3循环程序调试结果图1
由图4-2-3所示,寄存器DS中所存内容为程序中给出的十个字节的数据:
12H,88H,82H,89H,33H,90H,01H,10H,0BDH,01H,而上面的圈中
EBX中为目前为止找到的负数的个数为1个。
图4-2-4循环程序调试结果图2
由图4-2-4所示,为程序运行结束后的结果,EBS中结果为5,说明总的负数个数为5个。
3、子程序
一、实验目的
掌握循环程序的设计方法。
二、实验仪器
PC微机一台、
实验器材一台
三、实验内容及说明
在汇编程序设计中,用户通常会将常用的具有特定功能的程序段编制成子程序使用。
一般过程定义伪操作的格式如下:
procedurenamePROCAttribute
…
procedurenameENDP
其中Attribute是指类型属性,可以是NEAR或FAR,调用程序和过程在同一个代码段中使用NEAR属性,不在同一个代码段中,使用FAR。
(1)数据移动实验
本实验要求将指定数据区的数据搬移到另一个数据区,并通过子程序调用的方法将搬移的数据显示在屏幕上。
图4-3-1源数据块和目标数据块在存储器中的位置示意
和目标数据块在存储中的位置可能有三种情况,如图1所示。
对于两个数据块分离的情况,数据的传送从数据块的首地址开始,或者从数据块的末地址开始均可。
但对于有部分重叠的情况,则要加以分析,否则重叠部分会因搬移而遭到破坏。
所以搬移过程可以通过以下两个方式完成:
当源数据块首地址>目标块首址时,从数据块的首地址开始传送数据;当源数据块首地址<目标块首址时,从数据块的末地址开始传送数据。
四、实验步骤
(1)运行Tddebug软件,选择Edit菜单编写实验程序。
提供16字节的数据:
11H,22H,33H,44H,55H,66H,77H,88H,99H,0AAH,0BBH,0CCH,0DDH,0EEH,0FFH,00H;
(2)使用Compile菜单中的Compile和Link对实验程序进行汇编、连接;
(3)使用Rmrun菜单中的Run,运行程序,查询数据传输的正确性,Run后的结果如下图4-3-2所示:
图4-3-2子程序运行结果
由图4-3-2所示,运行子程序后输出结果为“HELLO,WORLD”,完成了数据的传送。
(4)调试并观察寄存器中的数据,结果如下:
图4-3-3
(1)寄存器DS中的值
图4-3-3
(2)寄存器ES中的值
由上图4-3-3
(1)和图4-3-3
(2)可知,原来存在DS中的数据经过数据传送传送到了ES中,完成了数据传送。
图4-3-4子程序调试结果
由图4-3-3所示,程序中的数据存在DS中,分别观察DS、ES中的内容,结果如下图4-3-4所示
实验五中断实验(8259)
一、实验目的
1.掌握8259中断控制器的工作原理。
2.掌握系统总线上PCI_INTR中断请求的应用编程方法。
二、实验设备
PC机一台,TD-PIT+或TD-PIT++实验装置一套。
三、实验内容
(1)利用实验平台上的8259控制器,通过查询中断源方法,设计一个查询中断应用实验,处理IR0和IR1发出的中断请求。
(2)利用系统总线上中断请求信号INTR,设计一个单中断应用。
使用单次脉冲模拟中断产生。
编写中断处理程序,在显示器屏幕上显示一个字符。
(3)利用实验平台上8259控制器对系统总线上的中断线INTR进行扩展。
编写程序对8259控制器的IR0和IR1中断请求进行处理。
四、实验原理
1.中断控制器8259简介
中断控制器8259是Intel公司专为控制优先级中断而设计开发的芯片。
它将中断源优先级排队、辨别中断源以及提供中断矢量的电路集于一片中,因此无需附加任何电路,只需对8259进行编程,就可以管理8级中断,并选择优先模式和中断请求方式,即中断结构可以由用户编程来设定。
同时,在不需增加其他电路的情况下,通过多片8259的级连,能构成多达64级的矢量中断系统。
它的管理功能包括:
1)记录各级中断源请求,2)判别优先级,确定是否响应和响应哪一级中断,3)响应中断时,向CPU传送中断类型号。
8259的内部结构和引脚如图5-1所示。
8259的命令共有7个,一类是初始化命令字,另一类是操作命令。
8259的编程就是根据应用需要将初始化命令字ICW1-ICW4和操作命令字OCW1-OCW3分别写入初始化命令寄存器组和操作命令寄存器组。
ICW1-ICW4各命令字格式如图5-2(a)(b)(c)(d)所示,OCW1-OCW3各命令字格式如图5-3所示,其中OCW1用于设置中断屏蔽操作字,OCW2用于设置优先级循环方式和中断结束方式的操作命令字,OCW3用于设置和撤销特殊屏蔽方式、设置中断查询方式以及设置对8259内部寄存器的读出命令。
图5-18259的内部结构和引脚
图5-2(a)ICW1格式
图5-2(b)ICW2格式
图5-2(c)ICW3格式
图5-2(d)ICW4格式
图5-3OCW命令字格式
2.8259寄存器及命令的控制访问
在硬件系统中,8259仅占用两个外设接口地址,在片选有效的情况下,利用A0来寻址不同的寄存器和命令字。
对寄存器和命令的访问控制如表5-1所示。
表5-1寄存器和命令的访问控制
3.PC微机系统中的8259
在80x86系列PC微机系统中,系统中包含了两片8259中断控制器,经级连可以管理15级硬件中断,但其中部分中断号已经被系统硬件占用,具体使用情况如表5-2示。
两片8259的端口地址为:
主片8259使用020H和021H两个端口;从片使用0A0H和0A1H两个端口。
系统初始化两片8259的中断请求信号均采用上升沿触发,采用全嵌套方式,优先级的排列次序为0级最高,依次为1级、8级~15级,然后是3级~7级。
在实验平台上系统总线单元的PCI_INTR信号对应的中断线就是PC机保留中断其中的一个。
对PCI_INTR中断的初始化PC机已经完成,在使用时主要是将其中断屏蔽打开,修改中断向量。
表5-2PC微机系统中的硬件中断
5、实验说明及步骤
INTR扩充多中断源实验
利用实验单元中的8259控制器,可以对总线上的INTR进行中断源的扩充。
将8259的INT连接到INTR,8259的8路中断请求线IR0~IR7就成了单一INTR中断请求线的扩充。
这8路中断源共用INTR的中断矢量,共用INTR的中断服务程序。
在INTR的中断服务程序中通过对8259OCW3的查询,以确定是IR0~IR7中哪个产生中断,然后转到相应的服务线程进行处理。
本实验要求实现8259控制器IR0、IR1两路中断都可以通过INTR向PC发起中断请求。
用KK1+和KK2+模拟两个中断源,在IR0对应的服务程序中显示字符“0”,在IR1对应的服务程序中显示字符“1”。
实验步骤如下:
(1)实验接线图如图5-4所示,按图接线。
图5-48259扩充中断源实验参考接线图
(2)运行Tdpit集成操作软件,参考流程图5-6编写程序,编译、链接。
图5-68259扩充中断源实验参考程序流程图
(3)使用运行命令运行程序,按动KK1+、KK2+按键,观察中断是否产生
实验结果是按动KK1+,屏幕上会出现“1”,按动KK2+,屏幕上会出现“0”。
这就表示在按动KK1+时IR0是开中断的,当按动KK2+时IR1时开中断的。
实验六并行接口实验(8255)
一、实验目的
1.学习并掌握8255的工作方式及其应用。
2.掌握8255典型应用电路的接法。
二、实验设备
PC机一台,TD-PIT+或TD-PIT++实验装置一套。
三、实验内容
1.基本输入输出实验。
编写程序,使8255的A口为输出,B口为输入,完成拨动开关到数据灯的数据传输。
要求只要开关拨动,数据灯的显示就发生相应改变。
2.流水灯显示实验。
编写程序,使8255的A口和B口均为输出,数据灯D7~D0由左向右,每次仅亮一个灯,循环显示,D15~D8与D7~D0正相反,由右向左,每次仅点亮一个灯,循环显示。
四、实验原理
图6-18255内部结构及外部引脚图
并行接口是以数据的字节为单位与I/O设备或被控制对象之间传递信息。
CPU和接口之间的数据传送总是并行的,即可以同时传递8位、16位或32位等。
8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种方式下工作:
方式0--基本输入/输出方式、方式1--选通输入/输出方式、方式2--双向选通工作方式。
8255的内部结构及引脚如图6-1所示,8255工作方式控制字和C口按位置位/复位控制字格式如图6-2所示。
图6-28255工作方式控制字和C口按位置位/复位控制字格式
8255实验单元电路图如图6-3所示:
图6-38255实验单元电路图
五、实验步骤
1.基本输入输出实验
本实验使8255端口A工作在方式0并作为输出口,端口B工作在方式0并作为输入口。
用一组开关信号接入端口B,端口A输出线接至一组数据灯上,然后通过对8255芯片编程来实现输入输出功能。
具体实验步骤如下述:
(1)实验接线图如图6-4所示,按图连接实验线路图。
图6-48255基本输入输出实验接线图
(2)运行Tdpit集成操作软件,根据实验内容,编写实验程序,编译、链接。
(3)运行程序,改变拨动开关,同时观察LED显示,验证程序功能。
实验的最终结果是:
K7K6K5K4K3K2K1K0这八个开关相当于是一个八位的二进制数,哪个开关为高电平就为1,哪个开关为低电平就为0,将这八个开关的状态通过外设传到8255单元的B端口,再通过8255单元将B端口的状态传到A端口,在通过A端口传到外设,此时这八位数哪一个为高电平,对应D7D6D5D4D3D2D1D0中的那个灯就亮,如K7K6K5K4K3K2K1K0=01101001则结果就是第1,4,6,7个灯亮。
2.流水灯显示实验
使8255的A口和B口均为输出,数据灯D7~D0由左向右,每次仅亮一个灯,循环显示,D15~D8与D7~D0正相反,由右向左,每次仅点亮一个灯,循环显示。
实验步骤如下所述:
(1)实验接线图如图6-5所示,按图连接实验线路图。
图6-58255流水灯实验接线图
(2)运行Tdpit集成操作软件,根据实验内容,编写实验程序,编译、链接。
(3)运行程序,观察LED灯的显示,验证程序功能。
实验结果是:
通过连接接口电路可以看到的现象是左右各有八个LED灯,在上电以后右边的灯从最右边开始亮,依次往左一个接一个的亮;左边的灯从最左边开始亮,依次往右一个接一个的亮。
(4)自己改变流水灯的方式,编写程序。
将程序中的一段程序按照下面的程序段进行变化以后流水灯的方式就会发生变化(其中改变的部分用字体倾斜一下划线标出)
MOVAL,LA;将A口起始数据右移再写入A口
RORAL,2
MOVLA,AL
MOVDX,MY8255_A
OUTDX,AL
MOVAL,LB;将B口起始数据左移再写入B口
ROLAL,2
MOVLB,AL
MOVDX,MY8255_B
OUTDX,AL
实验结果是:
通过连接接口电路可以看到的现象是左右各有八个LED灯,在上电以后右边的灯从最右边开始亮,每次都隔两个灯往左亮;左边的灯从最左边开始亮,每次都隔两个灯往右亮。
实验七定时器/计数器实验(8235)
一、实验目的
1.掌握8254的工作方式及应用编程。
2.掌握8254典型应用电路的接法。
二、实验设备
PC机一台,TD-PIT+或TD-PIT++实验装置一套,示波器一台。
三、实验内容
1.计数应用实验。
编写程序,应用8254的计数功能,使用单次脉冲模拟计数,使每当按动‘KK1+’5次后,产生一次计数中断,并在屏幕上显示一个字符‘1’。
2.定时应用实验。
编写程序,应用8254的定时功能,产生一个1Hz的方波。
四、实验原理
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是输出波形的频率。
图7-1是8254的内部结构框图和引脚图,它是由与CPU的接口、内部控制电路和三个计数器组成。
8254的工作方式如下述:
(1)方式0:
计数到0结束输出正跃变信号方式。
(2)方式1:
硬件可重触发单稳方式。
(3)方式2:
频率发生器方式。
(4)方式3:
方波发生器。
(5)方式4:
软件触发选通方式。
(6)方式5:
硬件触发选通方式。
图7-18254的内部结构框图和引脚图
8254的控制字有两个:
一个用来设置计数器的工作方式,称为方式控制字;另一个用来设置读回命令,称为读回控制字。
这两个控制字共用一个地址,由标识位来区分。
控制字格式如表7-1~7-3所示。
表7-18254方式控制字格式
表7-28254读出控制字格式
表7-38254状态字格式
8254实验单元电路图如下图所示:
图7-28254实验电路原理图
五、实验步骤
1.计数应用实验
编写程序,将8254的计数器0设置为方式3,计数值为十进制数4,用单次脉冲KK1+作为CLK0时钟,OUT0连接INTR,每当KK1+按动5次后产生中断请求,在屏幕上显示字符“5”。
实验步骤:
(1)实验接线如图7-3所示。
图7-38254计数应用实验接线图
(2)运行Tdpit集成操作软件,根据实验内容,编写实验程序,编译、链接。
(3)运行程序,按动KK1+产生单次脉冲,观察实验现象。
实验结果是:
每按五次KK1+,就会在屏幕上面显示一个“5”。
2.定时应用实验
编写程序,将8254的计数器2设置为方式3,用信号源作为CLK2时钟,计数初值为100,相当对CLK2进行100分频。
在OUT2输出频率为的时钟。
将OUT2连接到计数器0的CLK0,设置计数器0也工作在方式3,计数初值为18432,相当是进行18432分频。
则在OUT0得到1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 接口 技术 实验 报告