1、微机原理实验报告微型计算机原理及单片机实验报告班级:学号: 姓名:实验一 汇编语言程序设计1 分支程序设计实验1.1.1 实验目的1. 掌握分支程序的结构。2. 掌握分支程序的设计、调试方法。1.1.2 实验设备PC机一台,TD-PITE实验装置一套。1.1.3 实验内容设计一数据块间的搬移程序。设计思想:程序要求把内存中一数据区(称为源数据块)传送到另一存储区(成为目的数据块)。源数据块和目的数据块在存储中可能有三种情况,如图1.1所示。(a) (b) (c)图1.1 源数据块与目的数据块在存储中的位置情况对于两个数据块分离的情况,如图1.1(a),数据的传送从数据块的首地址开始,或从数据块
2、的末地址开始均可。但是对于有重叠的情况,则要加以分析,否则重叠部分会因“搬移”而遭到破坏,可有如下结论:当源数据块首地址目的块首地址时,从数据块末地址开始传送数据,如图1.14(b)所示。当源数据块首地址目的块首地址时,从数据块首地址开始传送数据,如图1.14(c)所示。实验程序流程图如图1.5所示。1.1.4 实验程序如下SSTACK SEGMENT STACK DW 64 DUP(?) SSTACK ENDS CODE SEGMENT ASSUME CS:CODE START: MOV CX, 0010H图1.5 程序流程图 MOV SI, 6000H MOV DI, 7000H CMP
3、SI, DI JA A2 ADD SI, CX ADD DI, CX DEC SI DEC DI A1: MOV AL, SI MOV DI, AL DEC SI DEC DI DEC CX JNE A1 JMP A3 A2: MOV AL, SI MOV DI, AL INC SI INC DI DEC CX JNE A2 A3: JMP A3 CODE ENDS END START1.1.5 实验步骤1. 按流程图编写实验程序,经编译、链接无误后装入系统。2. 用E命令在以SI为起始地址的单元中填入16个数。3. 运行程序,待程序运行停止。4. 通过D命令查看DI为起始地址的单元中的数据是
4、否与SI单元中数据相同。5. 通过改变SI、DI的值,观察在三种不同的数据块情况下程序的运行情况,并验证程序的功能。1.1.6 实验结果 图1 图2 图3 图4 图52.循环程序设计实验1.2.1 实验目的1. 加深对循环结构的理解。2. 掌握循环结构程序设计的方法以及调试方法。1.2.2 实验设备PC机一台,TD-PITE实验装置一套。1.2.3 实验内容计算S1233445N(N1),直到N(N1)项大于200为止。编写实验程序,计算上式的结果,参考流程图如图1.6所示。1.2.4 实验程序SSTACK SEGMENT STACK DW 64 DUP(?) 图1.6 程序流程图SSTACK
5、 ENDS CODE SEGMENT ASSUME CS:CODE START: MOV DX,0001H MOV BL,02H A1: MOV AL,BL INC BL MUL BL ADD DX,AX ;结果存于DX中CMP AX,00C8H ;判断N(N+1)与200的大小JNA A1 A2: JMP A2 CODE ENDS END START 1.2.5 实验步骤(1)编写实验程序,编译、链接无误后装入系统。 (2)运行程序,待程序运行停止。 (3)运算结果存储在寄存器DX中,查看结果是否正确。(4)可以改变N(N1)的条件来验证程序功能是否正确,但要注意,结果若大于0FFFFH将产
6、生数据溢出。1.2.6 实验结果实验二 8255并行接口实验2.1 实验目的1. 学习并掌握8255的工作方式及其应用。2. 掌握8255典型应用电路的接法。2.2 实验设备PC机一台,TD-PITE实验装置一套。2.3 实验内容查询式输入输出实验。编写程序,使8255的A口为输入,B口为输出,完成拨动开关到数据灯的数据传输。要求将一开关设为总开关,由此开关来决定数据灯的显示是否随开关相应改变。2.4 实验步骤查询输入输出实验本实验使8255端口A工作在方式0并作为输入口,端口B工作在方式0并作为输出口。用一组开关信号接入端口A,端口B输出线接至一组数据灯上,然后通过对8255芯片编程来实现输
7、入输出功能。具体实验步骤如下述:(1)实验接线图如图2.1所示,按图连接实验线路图。(2)编写实验程序,经编译、连接无误后装入系统。(3)运行程序,改变拨动开关,同时观察LED显示,验证程序功能。图2.1 8255基本输入输出实验接线图2.5 实验程序SSTACK SEGMENT STACK DW 32 DUP(?) SSTACK ENDS CODE SEGMENT ASSUME CS:CODE START: MOVDX, 0646H ;控制端口地址0646H送DX,因为8255的cs端口接I0Y1对应的编址空间是0640H067FH,所以这里是0646H。MOV AL, 90H ;方式选择控
8、制字送AL OUT DX, AL ;方式选择控制字输给8255A的控制端口,完成端口A 工作在方式0 并作为输入口,端口B 工作在方式0 并作为输出口。AA1: MOV DX, 0640H ;控制端口A地址0640H送DX IN AL, DX ;将端口A连接的开关的对应状态送给AL TEST AL,80H ;检测AL的最高位 JZ AA1 ;如果为0则跳到AA1 CALL DELAY MOV DX, 0642H ;控制端口A地址0642H送DX OUT DX, AL ;将AL的数据送到8255的端口B,从而使其连接的LED的灯发光JMP AA1 DELAY: PUSH CX MOV CX, 0
9、F00H AA2: PUSH AX POP AX LOOP AA2 POP CX RET CODE ENDS END START2.6 实验结果实验三. 8254定时/计数器应用实验3.1 实验目的1. 掌握8254的工作方式及应用编程。2. 掌握8254典型应用电路的接法。3.2 实验设备PC机一台,TD-PITE实验装置一套。3.3 实验内容计数应用实验。编写程序,应用8254的计数功能,使用单次脉冲模拟计数,使每当按动KK15次后,产生一次计数中断,并在屏幕上显示学号末两位。3.4 实验单元电路图8254实验单元电路图如下图所示:图3.1 8254实验电路原理图3.5 实验程序实验程序清
10、单(A82541.ASM)A8254 EQU 06C0HB8254 EQU 06C2HC8254 EQU 06C4HCON8254 EQU 06C6HSSTACK SEGMENT STACK DW 32 DUP(?)SSTACK ENDSCODE SEGMENT ASSUME CS:CODE, SS:SSTACKSTART:PUSH DSMOV AX, 0000HMOV DS, AXMOV AX, OFFSET IRQ7;取中断入口地址MOV SI, 003CH ;中断矢量地址MOV SI, AX ;填IRQ7的偏移矢量 MOV AX, CS ;段地址 MOV SI, 003EH MOV SI
11、, AX ;填IRQ7的段地址矢量 CLI POP DS ;初始化主片8259 MOV AL, 11H OUT 20H, AL ;ICW1 MOV AL, 08H OUT 21H, AL ;ICW2 MOV AL, 04H OUT 21H, AL ;ICW3 MOV AL, 01H OUT 21H, AL ;ICW4 MOV AL, 6FH ;OCW1 OUT 21H, AL ;8254 MOV DX, CON8254 MOV AL, 10H ;计数器0,方式0 OUT DX, AL MOV DX, A8254 MOV AL, 04H OUT DX, AL STIAA1: JMP AA1IRQ7: MOV DX, A8254 MOV AL, 04H OUT DX, AL MOV AX, 014DH INT 10H ;显示字符M MOV AX, 0120H INT 10H MOV AL, 20H OUT 20H, AL ;中断结束命令 IRETCODE ENDS END START
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1