当前位置:文档之家› 微机原理实验报告

微机原理实验报告

微机原理实验报告学校:湖北文理学院、班级:电子1413姓名:杨仕浩学号:2014111347指导老师:吉向东实验一两个多位十进制数相加的实验一、实验目的学习数据传送和算术运算指令的用法熟悉在PC机上建立、汇编、链接、调试和运行汇编语言程序的过程。

二、实验内容将两个多位十进制数相加,要求被加数和加数均以ASCII码形式各自顺序存放在以DATA1、DATA2为首的5个内存单元中(低位在前),结果送回DATA1处。

三、程序框图四、实验程序清单DATA SEGMENTDATA1 DB 33H,39H,31H,37H,34H;被加数DATA1END EQU $-1DATA2 DB 34H,35H,30H,38H,32H;加数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:DATA START: MOV AX,DATAMOV DS,AXMOV AX,STACKMOV SS,AXMOV AX,TOPMOV SP,AXMOV SI,OFFSET DATA1ENDMOV DI,OFFSET DATA2ENDCALL A DDAMOV AX,4C00HINT 21HADDA PROC NEARMOV DX,SIMOV BP,DIMOV BX,05HAD1: SUB BYTE PTR [SI],30HSUB BYTE PTR [DI],30HDEC SIDEC DIDEC BXJNZ AD1MOV SI,DXMOV DI,BPMOV CX,05HCLCAD2: M OV AL,[SI]MOV BL,[DI]ADC AL,BLAAAMOV [SI],ALDEC SIDEC DILOOP AD2MOV SI,DXMOV DI,BPMOV BX,05HAD3: ADD BYTE PTR [SI],30HADD BYTE PTR [DI],30HDEC SIDEC DIDEC BXJNZ AD3RETADDA ENDPCODE ENDSEND START五、实验结果六、实验结果分析七、实验心得体会经过这次实验我学会了如何使用命令提示符,并学会了如何用命令提示符运行指令八、在本次试验中完成了两个两位十进制数的相加,了解了数据传送和算术运算指令的使用方法。

实验二排序实验一、实验目的掌握用汇编语言编写排序程序的思路和方法。

二、实验内容将指定内存出开始的数据按从大到小的顺序排列。

第一个数字表示数据的个数。

三、程序流程图图3-2四、程序清单DATA SEGMENTADDR DW 8,234,35,67,876,54,39,765,237DATA ENDSSTACK S EGMENTSTA D W 32 DUP(?)TOP DW ?STACK E NDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACKSTART: MOV AX,DATAMOV DS,AXMOV ES,AXMOV AX,STACKMOV SS,AXMOV SP,TOPMOV CX,WORD PTR ADDR[0]DEC CXLOOP1: MOV DI,CXMOV BX,2LOOP2: MOV AX,WORD PTR ADDR[BX] CMP AX,WORD PTR ADDR[BX+2]JGE CCCXCHG AX,WORD PTR ADDR[BX+2]MOV WORD PTR ADDR[BX],AXCCC: ADD BX,2LOOP LOOP2MOV CX,DILOOP LOOP1EXIT: MOV AX,4C00HINT 21HCODE ENDSEND START五、实验结果六、实验结果分析七、实验心得体会实验三自编程序上机调试一、实验目的掌握用汇编语言编写程序的思路和方法。

二、实验内容选作业题中题目上机调试。

三、程序框图↓NNYNY(count1)←N-1 (count2)←(count1) I ←0 Ai ≥Ai+1? Ai A i+1 I=I+1 (count2)←(count2)-1 (count2)=0?? (count1)←(count1)-1 (count1)=0??结束 开始四、程序清单DSEG SEGMENTARY DW 4,9,2,8,6N DW 5DSEG ENDSCSEG SEGMENTASSUME CS:CSEG,DS:DSEG START: MOV AX,DSEGMOV DS,AXMOV CX,NDEC CXLOOP1: MOV DI,CXMOV BX,0LOOP2: MOV AX,ARY[BX]CMP AX,ARY[BX+2]JGE COTINUEXCHG AX,ARY[BX+2]MOV ARY[BX],AXCOTINUE:ADD BX, 2LOOP LOOP2MOV CX, DILOOP LOOP1MOV AH, 4CHINT 21HCSEG ENDSEND START五、实验结果六、实验结果分析七、实验心得与体会实验四自编程序上机调试一、实验目的掌握用汇编语言编写程序的思路和方法。

二、实验内容选作业题中题目上机调试。

三、程序流程图四、程序清单STACK SEGMENT STACKDB 10 dup(?)STACK ENDSDATA SEGMENTX DW 8326HDATA ENDSCODE SEGMENTASSUME CS: CODE, DS: DATA, SS:STACKSTART: MOV AX, DATAMOV DS, AXMOV AX, XAND AX, AXJNS DONENEG AXDONE: MOV X, AXMOV AH, 4CHINT 21HCODE ENDSEND START八、实验结果分析九、实验心得与体会实验五8255并行I/O口实验一、实验要求利用8255可编程并行口芯片,实现输入/输出实验,实验中用8255PA口作输入,PB口作输出。

二、实验目的1、了解8255芯片结构及编程方法。

2、了解8255输入/输出实验方法。

三、预备知识8255是Intel公司生产的与Intel8080/8085系列的MPU配套的可编程外围接口电路,简称PPI。

它有A、B、C三个八位端口寄存器,通过24位端口线与外部设备相连,基中C 口可分为上半部和下半部。

这24根端口线全部为双向三态。

三个端口可分二组来使用,可分别工作于三种不同的工作方式。

四、实验原理图及连线1、本实验主要用到的模块:8255模块、开关量输出模块、0-1指示模块、实验译码单元等;2、PA0-PA7分别接开关量输出模块S0-S7对应的插座;3、PB0-PB7分别接0-1指示模块DO71-DO78对应的插座;4、8255A的片选/CS接地址译码单元的2A0-2A7;5、数据线XD0—XD7接系统数据线区的任一插座。

图3-3五、实验内容将实验的线路连接好后,编程,将8255的A口作为输入,输入信号由8个逻辑电平开关提供,B口作为输出,其内容由发光二极管来显示。

六、程序清单L8255_CMD EQU 2A3HL8255_PA EQU 2A0HL8255_PB EQU 2A1HL8255_PC EQU 2A2HCODE SEGMENTASSUME CS:CODE,DS:CODEBEGIN:MOV CX,0FFHAA: LOOP AAMOV DX,L8255_CMDMOV AL,9CH ;10011000OUT DX,ALNOPNOPNOPNOPNOPBB: MOV DX,L8255_PAIN AL,DXXOR AL,0FFHMOV DX,L8255_PBOUT DX,ALJMP BBCODE ENDSEND BEGIN七、程序框图图3-4八、实验步骤1、参照图中的内容连好线;2、运行上位机软件,装载并运行相应程序即可(联机请参考程序8255.asm)。

注意:同学们自己编写程序时,8255的/CS连线可以接地址译码单元的其他信号,其它连线相同。

如果用的端口与本实验不一样,也可以改变IO口的连线。

九、仪器配置ZY15MicInt12BB微机原理及接口实验箱一台。

十、实验现象当读到某个开关处于高电平时,对应的发光二极管就会亮十一、思考题根据程序列出实验中8255的各个端口的地址,如果8255的/CS改接译码信号280H,其它信号不变,那么对应的端口地址又是多少?实验六ADC0809A/D转换实验一、实验目的1、加深理解逐次逼近法模数转换器的特征和工作原理;2、掌握A/D转换芯片与8088/86的接口方法;3、了解A/D芯片ADC0809转换性能及编程方法。

二、预备知识A/D转换器大致有三类:一是双积分A/D转换器,优点是精度高,抗干扰性好;价格便宜,但速度慢;二是逐次逼近A/D转换器,精度,速度,价格适中;三是并行A/D转换器,速度快,价格也昂贵。

实验用的ADC0809属第二类,是八位A/D转换器。

每采集一次一般需100us。

本程序是用延时查询方式读入A/D转换结果,也可以用中断方式读入结果,在中断方式下,A/D转换结束后会自动产生EOC信号,做为转换完成的信号。

三、实验原理说明及连线1、本实验的位置在实验箱的“ADC0809模块”;2、本实验用芯片ADC0809的片选地址为2B8H,实验箱上已固定好,不需要再连线;3、将该实验模块的CLOCK和“信号源模块”的1MHz信号连接起来;4、用排线将“系统数据总线输出单元”中的任意一组数据线和本实验模块的“ADC0809:XD0-XD7”连接起来;5、将通道0模拟量输入端IN0接模拟信号产生电路模块中的电位器R093的中心抽头,然后将R093的两端一端接地,另一端接VCC(+5V)。

图3-8四、实验内容利用电位器输出一个幅值可调的直流电压信号,送入ADC0809的通道0,将转换后的结果在屏幕上显示出来,并验证它与输入电压的关系。

五、实验步骤1、确认连接好线路;2、装载运行程序。

六、实验框图启启启启启启A/D启启启启启启启启启启启启启启启启启图3-9七、仪器配置ZY15MicInt12BB微机原理及接口实验箱一台八、实验现象当用户扭动电阻器时,屏幕将显示相应的数值。

九、思考题按图中的连接线路,输入一个3V的模拟信号,输出的数字信号的理论值是多少,在实验箱上验证该值的正确性。

实验中用的ADC0809的IN0的地址是什么?十、程序清单CODE SEGMENTASSUME CS:CODESTART:MOV DX,2B8H ;2B0H-2B7HMOV AL,00HOUT DX,ALCALL DELAYIN AL,DXCALL SHOWCALL DELAYJMP STARTSHOW PROC NEARPUSH DXPUSH AXMOV CL,4SHR AL,CLAND AL,0FHCALL H2CJC SHOW_OUTMOV DX,88HOUT DX,ALPOP AXAND AL,0FHCALL H2CJC SHOW_OUTMOV DX,88HOUT DX,ALMOV CX,0FFHDELA:LOOP DELASHOW_OUT:POP DXRETSHOW ENDPH2C PROC NEARCMP AL,0JAE N0_9JMP H2C_ERRN0_9:CMP AL,9JBE N0_9_OKCMP AL,0AHJAE HEX_CMPJMP H2C_ERR HEX_CMP:CMP AL,0FHJBE HEX_CMP_OKJMP H2C_ERR HEX_CMP_OK:CLCADD AL,37HJMP CMP_OUTN0_9_OK:CLCADD AL,30HJMP CMP_OUTH2C_ERR:STCCMP_OUT:RETH2C ENDPDELAY PROC NEARMOV CX,0FFH DELEA:LOOP DELEARETDELAY ENDPCODE ENDSEND START。

相关主题