ImageVerifierCode 换一换
格式:DOCX , 页数:28 ,大小:1.29MB ,
资源ID:28021182      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/28021182.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(微机原理实验报告50794.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

微机原理实验报告50794.docx

1、微机原理实验报告50794微机原理实验报告 班级: 指导老师: 学号: 姓名:实验一 两个多位十进制数相加的实验一、实验目的 学习数据传送和算术运算指令的用法 熟悉在PC机上建立、汇编、链接、调试和运行汇编语言程序的过程。二、实验内容 将两个多位十进制数相加,要求被加数和加数均以ASCII码形式各自顺序存放在以DATA1、DATA2为首的5个内存单元中(低位在前),结果送回DATA1处。三、程序框图图 3-14、参考程序清单DATA SEGMENTDATA1 DB 33H,39H,31H,37H,34H;被加数DATA1END EQU $-1DATA2 DB 34H,35H,30H,38H,3

2、2H;加数DATA2END EQU $-1SUM DB 5 DUP(?)DATA ENDSSTACK SEGMENTSTA DB 20 DUP(?)TOP EQU LENGTH STASTACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATASTART: MOV AX,DATA MOV DS,AX MOV AX,STACK MOV SS,AX MOV AX,TOP MOV SP,AX MOV SI,OFFSET DATA1END MOV DI,OFFSET DATA2END CALL ADDA MOV AX,4C00H INT 2

3、1HADDA PROC NEAR MOV DX,SI MOV BP,DI MOV BX,05HAD1: SUB BYTE PTR SI,30H SUB BYTE PTR DI,30H DEC SI DEC DI DEC BX JNZ AD1 MOV SI,DX MOV DI,BP MOV CX,05H CLC AD2: MOV AL,SI MOV BL,DI ADC AL,BL AAA MOV SI,AL DEC SI DEC DI LOOP AD2 MOV SI,DX MOV DI,BP MOV BX,05HAD3: ADD BYTE PTR SI,30H ADD BYTE PTR DI,3

4、0H DEC SI DEC DI DEC BX JNZ AD3 RETADDA ENDPCODE ENDSEND START5、实验结果与分析 这次实验依次将相加数与被加数存入AL,BL,依次从低位向高位相加,然后把结果放在内存中。6、实验体会 这次实验是微机原理课的第一次实验,主要是为了通过这次的实验,让我们对这个软件的编程有更深的了解、知道如何运行程序。在实验中误把C00H ,写成了COOH.从中,我学到了许多课本里学不到的东西,有些意外,有些收获。实验二 排序实验一、实验目的 掌握用汇编语言编写排序程序的思路和方法。二、实验内容 将指定内存出开始的数据(最多为4位数)按从大到小的顺序排列

5、。第一个数字表示数据的个数(不是要比较的数值!)。三、程序流程图图 3-24、程序清单DATA SEGMENTADDR DW 8,234,35,67,876,54,39,765,237DATA ENDSSTACK SEGMENTSTA DW 32 DUP(?)TOP DW ?STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACKSTART: MOV AX,DATA MOV DS,AX MOV ES,AX MOV AX,STACK MOV SS,AX MOV SP,TOP MOV CX,WORD PTR ADDR0 DEC CX

6、LOOP1: MOV DI,CX MOV BX,2LOOP2: MOV AX,WORD PTR ADDRBX CMP AX,WORD PTR ADDRBX+2 JGE CCC XCHG AX,WORD PTR ADDRBX+2 MOV WORD PTR ADDRBX,AXCCC: ADD BX,2 LOOP LOOP2 MOV CX,DI LOOP LOOP1 EXIT: MOV AX,4C00H INT 21HCODE ENDSEND START5、实验结果与分析 这次实验是给我们8个数字,按从大到小的顺序排列出来,定义的数字中8是一个指示数字的个数量。6、实验体会 通过此次的实验,懂得了用

7、汇编语言编写排序程序的思路和方法,知道义的数字中8是一个指示数字的个数量,不是一个数。更加加强了我对程序的操作的熟练程度。实验三 字符串按ASCII值的查找1、实验目的1.掌握字符串按ASCII值查找的方法。二、实验设备计算机一台。预装Windows XP、宏汇编MASM5。三、实验内容编写能够实现以下要求的汇编语言程序,并上机实现。1.对一个给定的字符串,统计其中09的个数,并在屏幕上显示这个字符串和09的个数(3位十进制数)。四、实验框图程序开始DB定义一个字符串将字符串的长度转换成十进制 符串按ASCII值查找 、执行 INT 21H结束五、程序清单DATA SEGMENTSTRING

8、DB GFDsfgfdsGDA0935J/:KO6ASD78,$L1 DB ?DATA ENDSSTACK SEGMENT PARA STACK STACK DB 100 DUP(?)STACK ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACKSTART PROC FARBEGIN: PUSH DS MOV AX,0 PUSH AX MOV AX,DATA MOV DS,AX LEA BX,STRING MOV DL,0 LP2: MOV AL,BX CMP AL,30H JB LP3 CMP AL,39H JA LP3 INC DLLP3: C

9、MP AL,$ JE LP4 INC BX JMP LP2 LP4: MOV L1,DL LEA DX,STRING MOV AH,9 INT 21H MOV DL,0DH MOV AH,2 INT 21H MOV DL,0AH MOV AH,2 INT 21H MOV AL,L1 MOV AH,0 CALL B_D RET START ENDPB_D PROC ;二十进制转换及显示 MOV CL,100 DIV CL PUSH AX MOV DL,AL ADD DL,30H MOV AH,2 INT 21H POP AX MOV AL,AH MOV AH,0 MOV CL,10 DIV CL

10、 PUSH AX MOV DL,AL ADD DL,30H MOV AH,2 INT 21H POP AX MOV DL,AH ADD DL,30H MOV AH,2 INT 21H RET B_D ENDPCODE ENDS END BEGIN六、实验结果与分析大写的英文字符AZ的ASCII码是41H5AH,小写的英文字符az的ASCII码是61H7AH,如果一个字符的ASCII码在这两个范围内,则满足要求。7、实验体会 通过此次的实验更加加强了我对ASCII码转换的应用,以后可以对这个问题,有更深的了解,而且我能很快的用它进行查找,很有收获。实验四 DOS输入输出功能的使用一、实验目的1.

11、掌握8086汇编语言程序的汇编、链接、运行的方法。2.掌握用软中断调用DOS输入输出功能的方法。3.掌握将二进制数转换成十进制数的编程方法。二、实验设备计算机一台。预装Windows XP、宏汇编MASM5。3、实验内容程序开始DB定义一个字符串将字符串的长度转换成十进制 MOV DL,字符ASCII码 MOV AH,2 INT 21H“$”结束四、程序清单data segmentstring1 db 1234567890abcdefg,$ ;准备显示的字符串count db $-string1-1 ;上面字符串的长度data endsstack segment para stack stac

12、k db 100 dup(100)stack endscode segmentstart proc far assume cs:code, SS:STACK,ds:databegin: push ds mov ax,0 push ax mov ax,data mov ds,ax lea dx,string1 ;输出字符串 mov ah,9 int 21h ;输出回车和换行符,以实现另起一行 mov dl,0dh ;输出回车命令 mov ah,2 int 21h mov dl,0ah ;输出换行命令 mov ah,2 int 21h mov al,count ;将字符串长度转换成3位十进制数输出

13、 mov ah,0 ;高8位补0 mov cl,100 div cl ;除以100获得百位数 push ax ;暂存结果和余数 mov dl,al add dl,30h ;换成ASCII码 mov ah,2 ;输出字符到屏幕 int 21h pop ax ;恢复结果和余数 mov al,ah ;余数作为被除数 mov ah,0 mov cl,10 div cl ;除以10获得十位数 push ax mov dl,al add dl,30h mov ah,2 int 21h pop ax mov dl,ah add dl,30h mov ah,2 int 21h mov dl,0dh ;输出回车

14、命令 mov ah,2 int 21h mov dl,0ah ;输出换行命令 mov ah,2 int 21h ret start endpcode ends end begin五、实验结果及分析这就是二进制转为十进制的结果六、实验体会这次实验,我基本掌握8086汇编语言程序的汇编、链接、运行的方法。同时也学会了用软中断调用DOS输入输出功能的方法,还有基本的掌握将二进制数转换成十进制数的编程方法。这次实验学到了很多,希望以后更有进步。实验五 8255并行I/O口实验一、实验要求利用8255可编程并行口芯片,实现输入/输出实验,实验中用8255PA口作输入,PB口作输出。二、实验目的1、了解8

15、255芯片结构及编程方法。2、了解8255输入/输出实验方法。三、预备知识8255是Intel公司生产的与Intel8080/8085系列的MPU配套的可编程外围接口电路,简称PPI。它有A、B、C三个八位端口寄存器,通过24位端口线与外部设备相连,基中C口可分为上半部和下半部。这24根端口线全部为双向三态。三个端口可分二组来使用,可分别工作于三种不同的工作方式。四、实验原理图及连线1、本实验主要用到的模块:8255模块、开关量输出模块、01指示模块、实验译码单元等;2、PA0-PA7分别接开关量输出模块S0-S7对应的插座;3、PB0-PB7分别接01指示模块DO71-DO78对应的插座;4

16、、8255A的片选/CS接地址译码单元的2A0-2A7;5、数据线XD0XD7接系统数据线区的任一插座。图 3-3五、实验内容将实验的线路连接好后,编程,将8255的A口作为输入,输入信号由8个逻辑电平开关提供,B口作为输出,其内容由发光二极管来显示。六、程序清单L8255_CMD EQU 2A3HL8255_PA EQU 2A0HL8255_PB EQU 2A1HL8255_PC EQU 2A2HCODE SEGMENT ASSUME CS:CODE,DS:CODEBEGIN: MOV CX,0FFHAA: LOOP AA MOV DX,L8255_CMD MOV AL,9CH ;10011

17、000 OUT DX,AL NOP NOP NOP NOP NOPBB: MOV DX,L8255_PA IN AL,DX XOR AL,0FFH MOV DX,L8255_PB OUT DX,AL JMP BBCODE ENDS END BEGIN七、程序框图开始延时置8255工作方式读8255PA口置8255PB口图 3-4八、实验步骤1、参照图中的内容连好线;2、运行上位机软件,装载并运行相应程序即可(联机请参考程序8255.asm)。注意:同学们自己编写程序时,8255的/CS连线可以接地址译码单元的其他信号,其它连线相同。如果用的端口与本实验不一样,也可以改变IO口的连线。九、仪器配

18、置ZY15MicInt12BB微机原理及接口实验箱 一台。十、实验现象当读到某个开关处于高电平时,对应的发光二极管就会亮。11、思考题根据程序列出实验中8255的各个端口的地址,如果8255的/CS改接译码信号280H,其它信号不变,那么对应的端口地址又是多少?答:8255命令-2A3HPA-2A0H PB-2A1H PC-2A2H;8255的/CS改接译码信号280H后对应的端口地址是8255命令-283HPA-280H PB-281H PC-282H12、实验结果与分析按照实验指导连接电路后,将所有的开关都置于高电平,会发现所有的灯都亮了。然后所有的开关置于低电平,所有的灯都熄了。 13、

19、实验体会本次实验是按照老师要求和讲解做的,刚开始时,按照老师说的步骤,将线路连接好后,通过众友连接,发现连接不上电路,最后换了一个串口线,最终成功的连上了,通过了编译但又在运行的时候出现了问题,和其他人做了比较,依旧没有发现问题,最后经过自己耐心的检查,发现有根线接错了,改正之后重新编译运行,最后所有的LED灯亮了。此次实验也让我收获颇多,做实验的时候我们应该仔细认真。实验六 ADC0809A/D转换实验一、实验目的1、加深理解逐次逼近法模数转换器的特征和工作原理;2、掌握A/D转换芯片与8088/86的接口方法;3、了解A/D芯片ADC0809转换性能及编程方法。二、预备知识A/D转换器大致

20、有三类:一是双积分A/D转换器,优点是精度高,抗干扰性好;价格便宜,但速度慢;二是逐次逼近A/D转换器,精度,速度,价格适中;三是并行A/D转换器,速度快,价格也昂贵。实验用的ADC0809属第二类,是八位A/D转换器。每采集一次一般需100us。本程序是用延时查询方式读入A/D转换结果,也可以用中断方式读入结果,在中断方式下,A/D转换结束后会自动产生EOC信号,做为转换完成的信号。三、实验原理说明及连线 1、本实验的位置在实验箱的“ADC0809模块”;2、本实验用芯片ADC0809的片选地址为2B8H,实验箱上已固定好,不需要再连线;3、将该实验模块的CLOCK和“信号源模块”的1MHz

21、信号连接起来;4、用排线将“系统数据总线输出单元”中的任意一组数据线和本实验模块的“ADC0809:XD0-XD7”连接起来;5、将通道0模拟量输入端IN0接模拟信号产生电路模块中的电位器R093的中心抽头,然后将R093的两端一端接地,另一端接VCC(+5V)。图 3-8四、实验内容利用电位器输出一个幅值可调的直流电压信号,送入ADC0809的通道0,将转换后的结果在屏幕上显示出来,并验证它与输入电压的关系。五、实验步骤1、确认连接好线路;2、装载运行程序。六、实验框图图 3-9七、仪器配置ZY15MicInt12BB微机原理及接口实验箱 一台八、实验现象当用户扭动电阻器时,屏幕将显示相应的

22、数值。 九、思考题按图中的连接线路,输入一个3V的模拟信号,输出的数字信号的理论值是多少,在实验箱上验证该值的正确性。实验中用的ADC0809的IN0的地址是什么?答:3V的模拟信号转化成数字信号后的理论值是99H. 实验中用的ADC0809的IN0的地址是2B8H。10、程序清单CODE SEGMENT ASSUME CS:CODESTART: MOV DX,2B8H ;2B0H-2B7H MOV AL,00H OUT DX,AL CALL DELAY IN AL,DX CALL SHOW CALL DELAY JMP STARTSHOW PROC NEAR PUSH DX PUSH AX

23、MOV CL,4 SHR AL,CL AND AL,0FH CALL H2C JC SHOW_OUT MOV DX,88H OUT DX,AL POP AX AND AL,0FH CALL H2C JC SHOW_OUT MOV DX,88H OUT DX,AL MOV CX,0FFHDELA: LOOP DELA SHOW_OUT: POP DX RETSHOW ENDPH2C PROC NEAR CMP AL,0 JAE N0_9 JMP H2C_ERRN0_9: CMP AL,9 JBE N0_9_OK CMP AL,0AH JAE HEX_CMP JMP H2C_ERRHEX_CMP:

24、 CMP AL,0FH JBE HEX_CMP_OK JMP H2C_ERRHEX_CMP_OK: CLC ADD AL,37H JMP CMP_OUTN0_9_OK: CLC ADD AL,30H JMP CMP_OUTH2C_ERR: STCCMP_OUT: RETH2C ENDPDELAY PROC NEAR MOV CX,0FFHDELEA: LOOP DELEA RETDELAY ENDPCODE ENDS END START11、实验结果与分析 接好电路后,微调电位器,我们就会看到显示屏上的数字从00到FF的变换。最后通过询问我们班的学霸才知道,这是将模拟电转换为数字信号,而且还可以通过显示的数字知道电压是多少。12、实验体会 这次实验,因为有了上次实验的经验,所以做的格外的顺利。但是要能完全理解,需要下功夫。Welcome !欢迎您的下载,资料仅供参考!

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1