《32位微机原理上机实验报告要点(共22页).doc》由会员分享,可在线阅读,更多相关《32位微机原理上机实验报告要点(共22页).doc(22页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上西北工业大学明德学院实验报告实验项目 微机原理与接口应用实验 班 级 姓 名 田家豪 王辰硕 学 号 指导老师 伍明高 实验题目(1) 显示班级符号输出;(2) 显示学号符号输出;(3) 显示姓名符号输出;(4) 显示单个字符输出;实验目的1、掌握在PC机上以十六位进制形式显示数据的方法2、熟悉汇编的调试环境和使用实验内容STACK1 SEGMENT STACK DW 256 DUP(?)STACK2 ENDSDATA SEGMENT USE13MES1 DB ,0AH,0DH,$MES2 DB ,0AH,0DH,$MES3 DB TIANJIAHAO,0AH,0DH
2、,$MES4 DB ,0AH,0DH,$MES5 DB ,0AH,0DH,$MES6 DB WANGCHENSHUO,0AH,0DH,$SD DB ADATA ENDSMOV AH,09H INT 21H MOV DX,OFFSET MES3 MOV AH,09H INT 21H MOV DX,OFFSET SD MOV AL,DS:SI AND AL,0F0H SHR AL,4 CMP AL,0AH JB C2 ADD AL,07HCODE SEGMENT USE13 ASSUME CS:CODE,DS:DATASTART:MOV AX,DATA MOV DS,AX MOV DX,OFFSE
3、T MES1 MOV AH,09H INT 21H MOV DX,OFFSET MES2C2: ADD AL,30H MOV DL,AL MOV AH,02H INT 21H MOV AL,DS:DI AND AL,0FH CMP AL,0AH JB C3 ADD AL,07HC3: ADD AL,30H MOV DL,AL MOV AH,02H INT 21H MOV AX,4C00H INT 21H CODE ENDS END START实验步骤(1)运行编译器,编译程序。(2)单击编译,保存。(3)单击调试程序,发现无误。(4)运行程序。实验总结1.通过实验,熟悉了汇编语言编译环境,了解
4、了程序的编译,运行和调试的方法2.实验过程中,在调试的时候,各调试指令的用法十分复杂,需要不断练习,熟悉指令的运行目的。3.不同的程序代码,在不同的环境运行方式也不同,这是我们必须要掌握的技能。实验题目显示程序实验 实验目的 (1) 掌握在PC机上以十六进制形式显示数据的方法。 (2) 掌握部分DOS功能调用使用方法。 (3) 熟悉Tdpit集成环境和调试器的使用。 实验内容及说明 一般来说,有很多程序需要显示输出提示运行的状况和结果,有的还需要将数据区中的内容显示在屏幕上。本实验要求将指定数据区的数据以十六进制数形式显示在屏幕上,并通过DOS功能调用完成一些提示信息的显示。实验中可使用DOS
5、功能调用(INT 21H)。 (1) 显示单个字符输出 入口:AH=02H 调用参数:DL=输出字符 (2) 显示字符串 入口:AH=09H 调用参数:DS:DX=串地址,$为结束字符 (3) 键盘输入并回显 入口:AH=01H 返回参数:AL=输出字符 (4) 返回DOS系统 入口:AH=4CH 调用参数:AL=返回码 实验步骤 (1) 运行Tdpit软件,选择文件菜单,点击新建,进入一个源文件编辑界面。根据实验内容的描述编写实验程序。 (2) 使用编译菜单中的编译和链接对实验程序进行汇编、连接。 (3) 使用编译菜单中的运行,运行程序,观察运行结果。 (4) 使用编译菜单中的调试,调试程序
6、,观察调试过程中,数据传输指令执行后,各寄存器及数据区的内容。 (5) 更改数据区中的数据,检查程序的正确性。 程序如下: DATASEGMENT MESDBShow a as hex:,0AH,0DH,$ SDDBa DATAENDS CODESEGMENT ASSUMECS:CODE,DS:DATA START:MOV AX,DATA MOVDS,AX MOVDX,OFFSET MES;显示提示信息 MOVAH,09HINT 21H MOVDI,OFFSET SD MOVAL,DS:DI ANDAL,0F0H;取高4位 SHRAL,4 CMPAL,0AH;是否是A以上的数 JBC2ADDA
7、L,07HC2:ADDAL,30HMOVDL,AL;显示字符 MOVAH,02H INT21H MOVAL,DS:DI ANDAL,0FH;取低4位 CMPAL,0AH JBC3 ADD AL,07H C3:ADDAL,30H MOVDL,AL;显示字符 MOVAH,02H INT21H MOVAX,4C00H;返回DOS INT21H CODEENDS ENDSTART 实验题目7种寻址方式指令编程实验目的 通过对传送和算术运算类指令的实验结果的观察和分析,加深对各指令完成操作功能的理解,并了解各指令对于相关标志位的影响。实验内容7种寻址方式指令的编程包括:(1)MOV传送类;(2)堆栈操作
8、传送;(3)交换传送;(4)输入/输出传送;(5)串传送指令等。(6)在指令后面注释源操作数和目的操作数的寻址方式。程序如下:DATA SEGMENTDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTADATA SEGMENTRT:MOV AX,DATAMOV DS,AXMOV AL,04HMOV DX,2000H/立即寻址MOV AX,99AAHMOV BX,1257HSUB AX,BX/寄存器寻址MOV AX,5000HMOV SI,3000HMOV AX,DS:SI/寄存器间接寻址PUSH AXPUSH EBXPUSHSIPUSH DOWRD PT
9、RDIPUSHW 0A124HPUSHD 20H/堆栈操作指令MOV AX,3000HXCHG AX,1000HMOV 3000H,AX/交换传送指令IN DX,7000HIN AX,DX/输入指令实验步骤1. 建立文件,编写源程序。2. 编译、连接生成EXE可执行文件。3. 行调试,分析每条指令的寻址方式,验证操作数所在的地址空间。实验总结1. 通过本次实验,可以正确的编写传送类指令与算术运算类指令、逻辑运算类指令的应用实验,并了解了编译链接调试的过程,检查程序结果的正确与否,会观察分析。2. 更加清楚的能分析各种运算指令,并对其有了更深的理解。3. 实验过程中必须认真仔细,特别是在应用逻辑
10、运算指令时,不然一旦有一点错误,实验就无法正常进行,必须返回去查找错误,费时费力。实验题目各种逻辑指令的编程实验目的1、掌握在PC机上各种逻辑指令的用法2、熟悉各种逻辑指令的用法实验内容在上次编辑七种寻址方式实验的中加入各种逻辑指令的运算,并且调试。程序如下:STACK1 SEGMENT STACK DW 256 DUP(?)STACK1 ENDSDDATASEGMENTMSR DB HELLO,WORLD!$LEN EQU $- MSRDDATAENDSEXDASEGMENTMSD DB LEN DUP(?)EXDAENDSCODESEGMENT ASSUME CS:CODE,DS:DDAT
11、A,ES:EXDASTART: MOV AX,DDATA MOV DS,AX MOV AX,EXDA MOV ES,AX MOV SI,OFFSET MSR MOV DI,OFFSET MSD MOV CX,LEN MOV BX,0NEXT: MOV AL,MSRBX MOV ES:MSDBX,AL INC BX LOOP NEXT PUSH ES POP DS MOV DX,OFFSET MSD MOV AH,9 INT 21H MOV AX,2233H MOV DX,3344H ADD AX,DX ADD AL,DL ADD AX,5566H ADC AL,DH DIV BL MOV BX
12、,6677H MUL BX SBB AX,DX MOV AX,4C00H INT 21HCODE ENDS END START实验步骤1. 运行编译器,编译程序。2. 单击编译,保存。3. 调试程序。实验总结1. 通过实验,熟悉了各种逻辑指令的用法,了解了其程序的编译。2. 调试程序的过程中需要不断地发现问题、解决问题。3. 实验过程中,各指令的用法十分复杂,需要不断练习,熟悉指令的运行目的。4. 不同的程序代码,在不同的环境的运用方式也不同,这是我们必须要掌握的技能。实验题目数据传送实验实验目的 (1) 熟悉Tdpit集成环境和调试器的使用。 (2) 掌握与数据有关的不同寻址方式。 实验内容
13、 本实验要求将数据段中的一个字符串传送到附加段中,并输出附加段中的目标字符串到屏幕上。实验程序如下: DDATASEGMENT;定义源数据段 MSRDB HELLO,WORLD!$ LENEQU $- MSR DDATAENDS EXDASEGMENT;定义附加数据段 MSDDB LEN DUP(?) EXDAENDS MYSTACK SEGMENT STACK;定义堆栈段 DW 20 DUP(?) MYSTACK ENDS CODESEGMENT;定义代码段 ASSUME CS:CODE,DS:DDATA,ES:EXDA START:MOV AX,DDATA MOV DS,AX;装载数据段寄
14、存器 MOV AX,EXDA MOV ES,AX;装载附加数据段寄存器 MOV SI,OFFSET MSR;设置SI MOV DI,OFFSET MSD;设置DI MOV CX,LEN NEXT:MOV AL,SI;开始传输数据 MOV ES:DI,AL INC SI INC DIDEC CX JNZ NEXT PUSH ESPOP DS;将附加段寄存器指向的段值赋给数据段寄存器 MOV DX,OFFSET MSDMOV AH,9 INT 21H MOV AX,4C00H;利用DOS功能调用返回DOS状态 INT 21H CODEENDS END START 将程序主体部分的寄存器间接寻址方式
15、改为相对寻址方式,则如下所示: MOV BX,0 MOV CX,LEN NEXT:MOV AL,MSRBX MOV ES:MSDBX,AL INC BX LOOP NEXT 实验步骤 (1) 运行Tdpit软件,选择文件菜单,点击新建进行实验程序的编写。 (2) 使用编译菜单中的编译和连接对实验程序进行汇编、连接。 (3) 使用编译菜单中的运行,运行程序,观察运行结果。 (4) 使用编译菜单中的调试,调试程序,观察调试过程中,数据传输指令执行后,各寄存器及数据区的内容。 (5) 更改数据区中的数据,考察程序的正确性。 实验题目基本I/O接口电路设计实验 实验目的 (1) 掌握基本I/O接口电路
16、的设计方法。 (2) 熟练汇编语言I/O端口操作指令的使用。 实验内容 利用三态缓冲器74LS245、锁存器74LS374设计微机总线和外部设备的数据通道,实现微机对外部输入数据的读取和对输出数据的输出。用开关及LED显示单元的开关和数据灯作为输入和输出显示设备,将读到开关的数据显示在数据灯上。 实验原理 1输入接口设计 输入接口一般用三态缓冲器实现,外部设备输入数据通过三态缓冲器,通过数据总线传送给微机系统。74LS245是一种8通道双向的三态缓冲器。DIR引脚控制缓冲器数据方向,DIR为1表示数据由A7:0至B7:0,DIR为0表示数据由B7:0至A7:0。G引脚为缓冲器的片选信号,低电平
17、有效。 2输出接口设计 输出接口一般用锁存器实现,从总线送出的数据可以暂存在锁存器中。74LS374是一种8通道上沿触发锁存器。D7:0为输入数据线,Q7:0为输出数据线。CLK引脚为锁存控制信号,上升沿有效。当上升沿到时,输出数据线锁存输入数据线上的数据。OE引脚为锁存器的片选信号,低电平有效。 3输入输出接口设计 用74LS245和74LS374可以组成一个输入输出接口电路,既实现数据的输入又实现数据的输出,输入输出可以占用同一个端口。是输入还是输出用总线读写信号来区分。总线读信号IOR和片选信号CS相“或”来控制输入接口74LS245的使能信号G。总线写信号IOW和片选信号CS相“或”来
18、控制输出接口74LS374的锁存信号CLK。实验系统中基本输入输出单元就实现了两组这种的电路。 实验说明及步骤 本实验实现的是将开关K7:0的数据通过输入数据通道读入CPU的寄存器,然后再通过输出数据通道将该数据输出到数据灯显示,该程序循环运行,直到按动键盘上任意按键再退出程序。实验步骤如下: (1) 确认从PC机引出的两根扁平电缆已经连接在实验平台上。 (2) 如图1所示连接实验线路。 (3) 首先运行CHECK程序,查看并记录与片选信号对应的I/O端口始地址。 (4) 参考实验流程图编写程序,注意使用正确的端口地址,然后编译链接。 (5) 运行程序,拨动开关,观看数据灯显示是否正确。 图1
19、 实验程序如下:IOY0 EQU 0D000H ;片选IOY0对应的端口始地址;*MY8255_A EQU IOY0+00H*4 ;8255的A口地址MY8255_B EQU IOY0+01H*4 ;8255的B口地址MY8255_C EQU IOY0+02H*4 ;8255的C口地址MY8255_MODE EQU IOY0+03H*4 ;8255的控制寄存器地址STACK1 SEGMENT STACK DW 256 DUP(?)STACK1 ENDSCODE SEGMENT ASSUME CS:CODESTART: MOV DX,MY8255_MODE ;初始化8255工作方式 MOV AL
20、,82H ;工作方式0,A口输出,B口输入 OUT DX,ALLOOP1: MOV DX,MY8255_B ;读B口 IN AL,DX MOV DX,MY8255_A ;写A口 OUT DX,AL MOV AH,1 ;判断是否有按键按下 INT 16H JZ LOOP1 ;无按键则跳回继续循环,有则退出QUIT: MOV AX,4C00H ;结束程序退出 INT 21HCODE ENDS END START实验题目8255并口控制器应用实验实验目的(1) 掌握8255的工作方式及应用编程。(2) 掌握8255的典型应用电路接法。实验内容(1) 基本输入输出实验。编写程序,使8255的A口为输出
21、,B口为输入,完成拨动开关到数据灯的数据传输。要求只要开关拨动,数据灯的显示就改变。(2) 流水灯显示实验。编写程序,使8255的A口和B口均为输出,实现16位数据灯的相对循环显示。实验原理并行接口是以数据的字节为单位与I/O设备或被控制对象之间传递信息。CPU和接口之间的数据传送总是并行的,即可以同时传递8位、16位、32位等。8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种方式下工作:方式0-基本输入/出方式、方式1-选通输入/出方式、方式2-双向选通工作方式。实验说明及步骤1基本输入输出实验本实验使82
22、55端口A工作在方式0并作为输出口,端口B工作在方式0并作为输入口。用一组开关信号接入端口B,端口A输出线接至一组数据灯上,然后通过对8255芯片编程来实现输入输出功能。实验步骤如下。(1) 确认从PC机引出的两根扁平电缆已经连接在实验平台上。(2) 如图1所示连接实验线路。(3) 首先运行CHECK程序,查看I/O空间始地址。(4) 利用查出的地址编写程序,然后编译链接。(5) 运行程序,拨动开关,看数据灯显示是否正确。图12.流水灯显示实验首先分别向A口和B口写入80H和01H,然后分别将该数右移和左移一位,再送到端口上,这样循环下去,从而实现流水灯的显示。实验步骤如下:(1) 确认从PC
23、机引出的两根扁平电缆已经连接在实验平台上。(2) 首先运行CHECK程序,查看I/O空间始地址。(3) 利用查出的地址编写程序,然后编译链接。(4) 如图2所示连接实验线路。(5) 运行程序,看数据灯显示是否正确。图2流水灯程序如下IOY0 EQU 0D000H ;片选IOY0对应的端口始地址;*MY8255_A EQU IOY0+00H*4 ;8255的A口地址MY8255_B EQU IOY0+01H*4 ;8255的B口地址MY8255_C EQU IOY0+02H*4 ;8255的C口地址MY8255_MODE EQU IOY0+03H*4 ;8255的控制寄存器地址STACK1 SE
24、GMENT STACK DW 256 DUP(?)STACK1 ENDSDATA SEGMENT LA DB ? ;定义数据变量LB DB ?DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV DX,MY8255_MODE ;定义8255工作方式 MOV AL,80H ;工作方式0,A口和B口为输出 OUT DX,AL MOV DX,MY8255_A ;写A口发出的起始数据 MOV AL,80H OUT DX,AL MOV LA,AL MOV DX,MY8255_B ;写B口发出的起始数据 M
25、OV AL,01H OUT DX,AL MOV LB,ALLOOP1: CALL DALLY MOV AL,LA ;将A口起始数据右移再写入A口 ROR AL,1 MOV LA,AL MOV DX,MY8255_A OUT DX,AL MOV AL,LB ;将B口起始数据左移再写入B口 ROL AL,1 MOV LB,AL MOV DX,MY8255_B OUT DX,AL MOV AH,1 ;判断是否有按键按下 INT 16H JZ LOOP1 ;无按键则跳回继续循环,有则退出QUIT: MOV AX,4C00H ;结束程序退出 INT 21HDALLY PROC NEAR ;软件延时子程序
26、 PUSH CX PUSH AX MOV CX,3FFHD1: MOV AX,0FFFFHD2: DEC AX JNZ D2 LOOP D1 POP AX POP CX RETDALLY ENDPCODE ENDS END START实验题目A/D转换实验 实验目的(1) 学习掌握模/数信号转换基本原理。 (2) 掌握ADC0809芯片的使用方法。 实验内容 编写实验程序,用ADC0809完成模拟信号到数字信号的转换。输入模拟信号由A/D转换单元可调电位器提供的05V,输出数字量显示在显示器屏幕上。显示形式为:AD0809:IN0 XX。 实验原理 ADC0809包括一个8位的逐次逼近型的AD
27、C部分,并提供一个8通道的模拟多路开关和联合寻址逻辑。用它可直接输入8个单端的模拟信号,分时进行A/D转换,在多点巡回检测、过程控制等应用领域中使用非常广泛。ADC0809的主要技术指标为: 分辨率:8位单电源:5V 总的不可调误差:1LSB转换时间:取决于时钟频率 模拟输入范围:单极性 05V时钟频率范围:10KHz1280KHz ADC0809的地址信号与选中通道的关系如表1所示。表1实验步骤及说明 (1) 确认从PC机引出的两根扁平电缆已经连接在实验平台上。 (2) 首先运行CHECK程序,查看I/O空间始地址。 (3) 利用查出的地址编写程序,然后编译链接。 (4) 如图1所示连接实验
28、线路。 (5) 运行程序,调节电位器,观察屏幕上显示的数字量输出。 图1程序如下:IOY0 EQU 0D000H ;片选IOY0对应的端口始地址;*AD0809 EQU IOY0+00H ;AD0809的端口地址STACK1 SEGMENT STACK DW 256 DUP(?)STACK1 ENDSDATA SEGMENTSTR1 DB AD0809:IN0 $ ;定义显示的字符串DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AXLOOP1: MOV DX,AD0809 ;启动A/D转换 OUT DX
29、,AL CALL DALLY MOV DX,OFFSET STR1 ;显示字符串AD0809:IN0 MOV AH,9 INT 21H MOV DX,AD0809 ;读出转换结果 IN AL,DX MOV CH,AL ;分析结果进行显示 AND AL,0F0H MOV CL,04H SHR AL,CL ;取出数据的十位 CMP AL,09H JG A1 ADD AL,30H JMP A2A1: ADD AL,37H ;对AF的处理 A2: MOV DL,AL ;对09的处理 MOV AH,02H INT 21H MOV AL,CH AND AL,0FH ;取出数据的各位 CMP AL,09H
30、JG A3 ADD AL,30H JMP A4A3: ADD AL,37H ;对AF的处理 A4: MOV DL,AL ;对09的处理 MOV AH,02H INT 21H MOV DL,0DH ;回车,置光标到行首 MOV AH,02H INT 21H MOV AH,1 ;判断是否有按键按下 INT 16H JZ LOOP1 ;无按键则跳回继续循环,有则退出QUIT: MOV AX,4C00H ;结束程序退出 INT 21HDALLY PROC NEAR ;软件延时子程序 PUSH CX PUSH AX MOV CX,4000HD1: MOV AX,0600HD2: DEC AX JNZ D2 LOOP D1 POP AX POP CX RETDALLY ENDPCODE ENDS END START专心-专注-专业