微机原理与应用 实验报告

合集下载

微机原理实验报告清零程序

微机原理实验报告清零程序

竭诚为您提供优质文档/双击可除微机原理实验报告清零程序篇一:微机原理实验报告微机原理与应用课程实验报告实验分工:报告人同组人实验时间:20XX.12.10课程设计一、题目要求(1)在数据段首址为0100h开始的内存区1按从大到小的顺序顺次存入二进制数15~0共16个字节的数据;(2)将上述源区内容传送到目的内存区2(首址为1100h)中;(3)检验上述传送过程是否正确,如有错误,在紧跟内存区2后的第一个字节开始写入AscII码“eRRoR”,否则写入“oK”。

(4)用冒泡法将上述内存区2的数据,按从小到大的次序重新排列,排列后存放在内存区3(开始地址为2100h)。

(5)将上述内存区2和内存区3的第100个数据分别乘以2,并转为bcD码,保存在各自存储区的末尾。

再将上述两个bcD码相乘,其结果保存在内存区1的末尾处。

二、实验程序框图三、程序代码codesegmentassumecs:codeDATA1db16dup(?)DATA2dbeRRoRDATA3dboK;在数据段首址为0100h开始的内存区1按从大到小的顺序顺次存入二进制数15~0共16个字节的数据start:movax,0100h;规定目标程序存放单元的偏移量movds,ax;数据段地址moves,axmovsi,offsetDATA1;偏移地址movcx,0010h;循环次数movbx,0100hmoval,ofhs1:movcs:[si],almov[bx],cs:[si]incsiincbxdecalloops1nop;将内存区1数据搬移到内存区2中movcx,16movsi,0100hmovbx,1100hs2:moval,[si]mov[bx],alincbxloops2nop;对比内存区1的数据与内存区2的数据是否相同mov cx,16movsi,0100hmovbx,1100hcomp:movax,[si]movdx,[bx]cmpax,dxjneerroincsiincbxloopcomp;数据如果都相同,说明上述传输过程正确movsi,offsetDATA3movdi,1110hmovbl,0movcx,2enteroK:movbl,cs:[si]mov[di],blincsiincdiloopenteroKnopjmps3;如果有一个数据不相同,说明上述传输过程不正确err:movsi,offsetDATA2movdi,1110hmovbl,0movcx,5entereRR:movbl,cs:[si]mov[di],blincdiloopentereRR;将内存区2数据搬移到内存区3中s3:movsi,1100hmovcx,0010hmovbx,2100hmoval,0movcx,16fil:moval,[si]mov[bx],alincsiincbxloopfilnop;用冒泡法将内存区3的数据按从小到大重新排列s4: movbl,0movcx,16movsi,2110hdecsideccxagain:moval,[si]cmpal,[si-1]jaenextxchgal,[si-1]mov[si],almovbl,1next:decsiloopagaincmpbl,0jnestart1nopmovsi,1109hmoval,[si]movcl,2mulcl;结果在al中movdx,0movbx,10divbxshlal,4addal,dl;把二进制数转换成bcD码mov[1112h],almovsi,2109hmoval,[si]movcl,2mulcl;结果在al中movdx,0movbx,10divbxshlal,4addal,dl;把二进制数转换成bcD码mov[2110h],al;两个bcD码相乘,其结果保存在内存区1的末尾处。

微机原理及应用实验报告

微机原理及应用实验报告
2•深入了解数据在存储器中的存取方法及堆栈中数据的压入与弹出。
3•掌握各种寻址方法以及简单指令的执行过程。
二、实验要求
1实验前要作好充分准备,包括汇编程序清单、调试步骤、调试方法以及对程序结果的分 析等。
2•本实验要求在PC机上进行。
3•本实验只要求在DEBUC调试状态下进行,包括汇编程序,调试程序,执行程序。
4•熟悉建立源文件,进行汇编和连接的全过程,并对程序进行调试。
二、实验要求
1•实验前准备
1分析题目,将程序中的原始数据、中间结果和最终结果的存取方式确定好。
2写出算法或画出流程图。
3写出源程序。
4对程序中的结果进行分析,并准备好上机调试的过程。
2•本实验要求在PC机上进行。
3•汇编过程中出现问题,可用DEBU(进行调试。
xorax,ax pushax movax,data movds,ax leasi,data1 leadi,data2 leabx,data3 moval,[si+3] movah,[di+3] an dal,0fh an dah,0fh addal,ah oral,30h mov[bx+3],al moval,[si+2] movah,[di+2] an dal,0fh an dah,0fh adcal,ah oral,30h mov[bx+2],al moval,[si+1] movah,[di+1] an dal,0fh an dah,0fh adcal,ah oral,30h mov[bx+1],al moval,[si] movah,[di] an dal,0fh an dah,0fh adcal,ah
;exercize21

微机原理实验报告册(3篇)

微机原理实验报告册(3篇)

第1篇一、实验目的1. 理解和掌握微机的基本组成和工作原理;2. 熟悉微机硬件设备和实验仪器的使用方法;3. 提高动手实践能力,培养解决实际问题的能力;4. 深入理解微机原理课程内容,为后续课程学习奠定基础。

二、实验内容1. 微机系统认识实验2. 微机硬件组成实验3. 微机指令系统实验4. 微机寻址方式实验5. 微机程序设计实验6. 微机接口技术实验三、实验仪器与设备1. 微机原理实验箱2. 示波器3. 数字万用表4. 计算机一台5. 实验指导书四、实验步骤与内容1. 微机系统认识实验(1)观察实验箱的结构,了解各个模块的功能;(2)熟悉实验箱的电源、复位、运行等按钮的使用方法;(3)学习微机系统的工作流程,包括加电、复位、启动等过程;(4)观察微机系统启动后的运行状态,了解各个模块的协同工作。

2. 微机硬件组成实验(1)观察实验箱的CPU、内存、I/O接口等硬件模块;(2)学习CPU的内部结构,包括寄存器、控制单元、运算单元等;(3)学习内存的存储原理,了解ROM、RAM等存储器的特点;(4)学习I/O接口的工作原理,了解中断、DMA等传输方式。

3. 微机指令系统实验(1)学习微机指令系统的基本格式,包括操作码、地址码等;(2)掌握微机指令系统的寻址方式,包括立即寻址、直接寻址、间接寻址等;(3)编写简单的汇编语言程序,实现加、减、乘、除等运算;(4)学习微机中断处理过程,了解中断向量表、中断服务程序等概念。

4. 微机寻址方式实验(1)学习微机寻址方式的基本概念,包括直接寻址、间接寻址、寄存器寻址等;(2)编写程序,实现不同寻址方式下的数据访问;(3)观察不同寻址方式对程序执行速度的影响。

5. 微机程序设计实验(1)学习汇编语言程序设计的基本方法,包括数据定义、指令编写、程序结构等;(2)编写简单的程序,实现数据交换、排序等操作;(3)学习微机程序的调试方法,包括单步执行、断点设置等。

6. 微机接口技术实验(1)学习微机接口技术的基本概念,包括并行接口、串行接口等;(2)观察实验箱中的并行接口、串行接口等模块,了解其工作原理;(3)编写程序,实现数据在并行接口、串行接口之间的传输;(4)学习微机中断处理在接口技术中的应用。

微机原理与应用第一次实验报告

微机原理与应用第一次实验报告

微机原理与应用实验一、实验二实验报告电92 雷云泽2009010941 实验一简单计算机系统基本模块设计1一、实验目的1.掌握简单计算机系统的指令系统2.掌握简单计算机基本模块的设计方法3.巩固EDA电路仿真和调试的方法二、实验任务包括练习指令编码设计寄存器组模块、设计RAM模块、设计I/O端口及其映射模块、设计和检测ROM模块1.练习指令编码阅读项目任务书的简单计算机指令系统,理解其中的7条R型指令AND、OR、ADD、SUB、ADDC、SUBC、SLT,和2条I型指令的LW、SW。

写出表1-1指令的编码和功能说明。

表1-1 指令编码练习2.设计寄存器组模块(1)任务要求在R类型指令中有3个操作数,其中2个操作数来自寄存器组,作为算术逻辑模块ALU的输入,另1个操作数是ALU 的输出,需写回寄存器组中。

所以,寄存器组模块需要1个写通道、2个读通道。

在寄存器组读操作时,需给出要读寄存器的寄存器号,寄存器组将该寄存器号对应的内容从输出端口输出;在寄存器组写操作中,需给出要写入寄存器的寄存器号和要写入的数据,寄存器组模块将在控制信号的作用下把数据写到指定的寄存器中。

寄存器组模块的封装图见1-1,包含2个异步读通道、1个同步写通道,内部包含4个8位寄存器(分别称为R0、R1、R2、R3,对应的二进制编号分别为00、01、10、11),1个2-4译码器和2个8位4选1多路选择器,其中每个寄存器都是带时钟使能和异步复位端口的8位D 触发器。

可利用QuartusII的MegaWizard下LMP_FF、LMP_DECODE、LPM_MUX进行设计。

寄存器组模块信号说明:输入信号:N1[1..0]:读通道1的寄存器号N2[1..0]:读通道2的寄存器号ND[1..0]:写通道的寄存器号DI[7..0]:写通道的输入数据CLK:时钟脉冲信号,上升沿有效REG_WE:写允许,为1时,在CLK上升沿,将数据DI写入ND指定的寄存器;为“0”时,禁止对寄存器阵列进行写操作。

微机原理与应用第四次实验报告

微机原理与应用第四次实验报告

微机原理与应用第四次实验报告实验6 汇编语言程序结构一、实验目的1.掌握汇编语言项目上机过程2.掌握汇编语言程序结构和常用伪操作3.掌握汇编语言程序设计和调试方法4.掌握MSP430F1xx基本I/O控制方法二、实验任务1.学习汇编指示性语句(可在simulator下完成)在EWH8下新建项目Lab_6,编写下面程序L6_directives.s43(程序清单见后页,该程序只是为了学习指示性语句,程序本身并没有实现什么特定功能),利用project/remove移出模板文件test_asm.s43,点击project/add/files将L6_directives.s43添加到项目中。

1) 利用EW430下的view/memory查看DATA16_C段中定义的存储单元内容和地址,在memory/go的窗口内输入存储单元的符号(如number1)即可查看到该符号对应的存储单元地址和内容,注意在L6_directives.s43程序中使用这些存储单元的内容和地址的方法;利用view/disassembly反汇编程序,对比源程序,利用每条指令后的注释,学习其中用到的指示性操作,如:#define、SFB、SFE、SIZEOF、$等,并能在今后的程序设计中使用。

2) 在L6_directives.s43中,number4和number1分别被定义成了什么?二者有何不同?#number4和#number1这两个操作有何不同?MOV #number4, R7和MOV number4, R7执行的结果会相同吗?为什么?3) 如图6-1所示,点击项目中的msp430x14x.h文件,了解该文件中用到的指示性语句,今后的实验中会用到该文件中的定义。

答2.编程控制实验板上发光二级管按下面4种规律循环显示1) 8个LED灯顺时针一个一个单独点亮,每次只有一个灯亮,其他灯灭;2) 4个奇数号LED灯和4个偶数号LED灯交替点亮各一次;3) 8个LED灯两两点亮,顺序为LED1和8,LED2和7,LED3和6,LED4和5,每次只有两个灯亮,其他灯灭;4) 8个LED灯全亮,全灭注意:在灯的状态变化中,需留一定延时,以便视觉能感受到灯的亮灭,要求编写一延时子程,需要延时的地方,用CALL指令调用该子程。

南理工微机原理与应用实验报告

南理工微机原理与应用实验报告

微机原理与应用综合实验指南1 汇编语言实验1.1 emu8086简介及其汇编语言编程及调试EMU8086是一个基于WINDOWS的8086/88CPU仿真实验程序,它包括编辑器、汇编器、连接器以及跟踪执行器、虚拟外设等模块,支持与8086 /88CPU有关的仿真实验。

EMU8086提供基于汇编语言的程序模板,编程者只需在此基础上,添加有关的核心语句,然后点击相应按钮,系统即可完成编译和链接工作。

若无错误,即可自动进入到指令跟踪运行界面,控制程序以单步或连续方式运行。

通过此界面还可以观察寄存器以及存储器的值,还有指令的机器码及反汇编指令。

1.2实验目的:(1)熟悉汇编语言开发环境(2)掌握Emu8086软件使用方法(3)了解汇编语言的程序结构,调试一个程序并记录程序运行结果。

1.3实验内容及要求:1.3.1 熟悉emu8086的操作1.3.1.1打开桌面上的Emu8086的图标,出现如图所示的对话框:1.3.1.2点击【NEW】,可以选择编程所采用的模板。

1.3.1.2.1 若选择COM template, 则文档模板如下:采用此格式,源代码应该在100H 后加载(即:源代码之前应有ORG 100H),从文件的第一个字节开始执行,它支持DOS和Windows命令提示符。

1.3.1.2.2 若选择EXE模板,则显示下图所示的EXE文件模板:1.3.1.2.3 也可选择BIN模板:1.3.1.2.4 BOOT模板文档如下:1.3.1.3 这里我们点选COM模板,建立一个com类型的程序如下图所示。

1.3.1.4点击compile按钮,出现如下提示:1.3.1.5输入汇编后的二进制文件名称“1_”后,出现如下窗口,意味着汇编成功完成。

1.3.1.6点击“run”按钮,跳出如下图所示的调试窗口,并显示运行结果。

1.3.1.7点击[reload]菜单,重新载入程序,然后点击【single step】单步运行。

微机原理的实验报告

微机原理的实验报告

一、实验目的1. 理解微机的基本组成和各部件的功能;2. 掌握微机的工作原理和指令系统;3. 熟悉汇编语言程序设计的基本方法;4. 提高动手能力和实际操作技能。

二、实验内容1. 微机系统组成实验(1)实验目的:了解微机的基本组成和各部件的功能。

(2)实验内容:观察并记录微机系统的各个部件,如CPU、内存、硬盘、主板等,并了解它们的功能。

(3)实验步骤:①观察微机系统各个部件的连接情况;②了解各个部件的功能和作用;③分析微机系统的整体结构。

2. 微机工作原理实验(1)实验目的:掌握微机的工作原理。

(2)实验内容:观察并记录微机工作过程中的各个阶段,如指令的取指、译码、执行等。

(3)实验步骤:①观察微机工作过程中的各个阶段;②了解各个阶段的功能和作用;③分析微机工作原理。

3. 指令系统实验(1)实验目的:熟悉汇编语言指令系统。

(2)实验内容:学习汇编语言的基本指令,如数据传送指令、算术运算指令、逻辑运算指令等。

(3)实验步骤:①学习汇编语言的基本指令;②编写简单的汇编语言程序,实现数据传送、算术运算、逻辑运算等功能;③调试程序,观察程序运行结果。

4. 汇编语言程序设计实验(1)实验目的:提高汇编语言程序设计能力。

(2)实验内容:编写一个汇编语言程序,实现以下功能:①计算两个数的和;②判断一个数是否为偶数;③输出程序运行结果。

(3)实验步骤:①编写汇编语言程序,实现上述功能;②调试程序,观察程序运行结果;③分析程序运行过程,确保程序正确性。

三、实验结果与分析1. 微机系统组成实验:通过观察和记录微机系统的各个部件,了解了微机的基本组成和各部件的功能。

2. 微机工作原理实验:通过观察微机工作过程中的各个阶段,掌握了微机的工作原理。

3. 指令系统实验:通过学习汇编语言的基本指令,熟悉了汇编语言指令系统。

4. 汇编语言程序设计实验:通过编写汇编语言程序,提高了汇编语言程序设计能力。

四、实验心得通过本次微机原理实验,我对微机的基本组成、工作原理和指令系统有了更深入的了解。

微机原理与应用实验报告范文

微机原理与应用实验报告范文

微机原理与应用实验报告范文姓名:专业:学院:学号:指导老师:微机原理实验一一、实验目的1、熟悉汇编程序调试方法2、80某86指令运用及顺序结构程序设计二、实验设备80某86微型计算机三、实验内容1、编程并调试显示“HelloWord!”字符串的汇编程序STACKSSEGMENTSTACK;堆栈段DW128DUP()STACKSENDSDATASSEGMENT;数据段DATASENDSCODESSEGMENT;代码段ASSUMECS:CODES,DS:DATASSTART:MOVA某,DATAS;初始化MOVDS,A某OUTBUFDB'HelloWord!$'MOVD某,OFFSETOUTBUFMOVAH,9;显示在屏幕上INT21HMOVAH,4CH;退出程序INT21HCODESENDSENDSTART程序调试运行结果如下图:屏幕显示有“HelloWord!”字符串2、A、B、C、D、W是互不相等的在数据段中定义的16位有符号数,并假设加减运算不产生溢出。

编写一个完整段定义的汇编语言程序(包含必要的伪指令),计算W=(A+B)某(C—D)。

STACKSSEGMENTSTACK;堆栈段DW128DUP()STACKSENDSDATASSEGMENT;数据段ADW1HBDW2HCDW5HDDW6HWDW2DUP()DATASENDSCODESSEGMENT;代码段ASSUMECS:CODES,DS:DATASSTART:MOVA某,DATAS;初始化MOVDS,A某MOVA某,AADDA某,BMOVB某,CSUBB某,DIMULB某MOVW,A某MOVW+2,D某MOVAH,4CH;退出程序INT21HCODESENDSENDSTART调试验证结果:W=(A+B)某(C—D)=(1H+2H)某(5H-6H)=-3H,结果存于097E:0008开始的的4个单元里。

微机原理实验二一、实验目的1、熟悉80某86指令及汇编程序调试方法2、掌握分支和循环结构程序设计方法的运用二、实验设备80某86微型计算机三、实验内容3、设某、Y为在数据段中定义的有符号字变量。

微机原理与应用实验报告6

微机原理与应用实验报告6

微机原理与应⽤实验报告6实验10 串⾏通信技术⼀、实验⽬的1. 了解异步串⾏通信原理2. 掌握MSP430异步串⾏通信模块及其编程⽅法⼆、实验任务1. PC机上的串⾏通信接⼝及其控制程序的使⽤1.1 任务要求参看讲义,了解PC机的标准异步串⾏接⼝协议,从⽹络学堂下载“串⼝调试助⼿程序”,⽤D型9针孔-孔交叉线连接两台PC机的串⼝,利⽤“串⼝调试助⼿程序”控制PC机串⼝,实现两台PC机之间字符串的传送。

1.2 任务实现已完成。

2. 掌握单⽚机与PC机串⾏通信的硬件连接2.1 任务要求参看附录D实验板原理图,了解MSP430F1xx串⼝模块相关引脚和实验板串⼝接线(插座S3: P3.4-UTXD0,P3.5-URXD0,P3.6-UTXD1,P3.7-URXD1),及其经RS-232电平转换后的信号(插针P7: TXD0,RXD0)。

思考:设计单⽚机与PC机进⾏串⾏通信时,硬件设计有哪些需要注意的事项?2.2 任务实现已完成。

设计需注意硬件相容与软件相容必须⼀致,即硬件相容的地⽅,必须也是软件相容的,⽐如UART0和UART1两个端⼝是针型还是孔型要符合它们的接线⽅式是male还是female (即TxD和RxD已交叉还是未交叉)。

3. 查询⽅式控制串⾏通信的收发3.1 任务要求采⽤查询⽅式控制单⽚机串⼝的接收和发送,在实验板上设计连线,编程实现接收PC 机的串⼝发送来的字符串,字符串以字符@结尾,MCU将接收到的字符串保存在RAM中,收到字符@后,MCU开始将收到的字符串发给PC机,PC机侧⽤串⼝助⼿程序接收并显⽰收到的字符串。

思考:1)如果采⽤单⽚机的串⼝1完成,如何设计实验连线,程序该如何修改?2)如果两个单⽚机进⾏串⾏通信,如何设计连线和编程?3)如果波特率改为2400bps,如何编程完成?波特率改为38400bps呢?3.2 任务实现程序如下所⽰:#include "msp430.h" ; #define controlled include file NAME main ; module namePUBLIC main ; make the main label vissible; outside this moduleORG 0FFFEhDC16 init ; set reset vector to 'init' labelRSEG DATA16_NBUFFER DS8 100RSEG DATA16_Cstringend: DB '@'RSEG CSTACK ; pre-declaration of segmentRSEG CODE ; place program in 'CODE' segment init: MOV #SFE(CSTACK), SP ; set up stack main: NOP ; main programMOV.W #WDTPW+WDTHOLD,&WDTCTL ; Stop watchdog timerCALL #UART0_INITAA: MOV #0,R13MOV #0,R14MOV #BUFFER,R5Rchk: BIT.B #URXIFG0,&IFG1JZ RchkMOV.B &U0RXBUF,BUFFER(R13)CMP.B BUFFER(R13),stringend(R14)JZ TchkINC R13JMP RchkTchk: BIT.B #UTXIFG0,&IFG1JZ TchkMOV.B @R5+,&U0TXBUFDEC R13JNZ TchkJMP AAUART0_INIT:BIS.B #SWRST, &U0CTLBIS.B #BIT4+BIT5, &P3SELBIS.B #PENA+PEV+SPB+CHAR,&U0CTLMOV.B #SSEL0,&U0TCTLBIS.B #URXEIE,&U0RCTLMOV.B #03h,&U0BR0MOV.B #0h,&U0BR1MOV.B #55h,&U0MCTLBIS.B #UTXE0+URXE0, &ME1BIC.B #SWRST,&U0CTLRETEND波特率寄存器值计算如下:N=ACLKbaud rate=327689600=3.41≈03h故U0BR0=03h,U0BR1=0h0.41 ×101起始位+8数据位+1偶校验≈4故U0MCTL=1010101b=55h如果采⽤单⽚机的串⼝1完成,需⽤孔-孔交叉线连接实验板的串⼝1和PC机的串⼝。

微机原理实验报告 可编程并行IO接口8255

微机原理实验报告 可编程并行IO接口8255

《微机原理及应用技术》课程实验报告实验五可编程并行I/O接口8255【预习内容】1.怎样选中可编程I/O接口?怎样实现I/O端口的寻址?8255的CS/接地址译码/CS0,则命令字地址为8003H,PA口地址为8000H,PB口地址为8001H,PC口地址为8002H。

通过地址/数据总线,按照指定地址进行读写操作直接选中8255。

并行接口是以数据的字节为单位与I/O设备或被控制对象之间传递信息。

CPU和接口之间的数据传送总是并行的,即可以同时传递8位、16位或32位等。

8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片。

CPU与外设交换的数据是以字节为单位进行的。

因此一个外设的数据端口含有8位。

而状态口和命令口可以只包含一位或几位信息,所以不同外设的状态口允许共用一个端口,命令口也可共用。

数据信息、状态信息和控制信息的含义各不相同,按理这些信息应分别传送。

但在微型计算机系统中,CPU通过接口和外设交换数据时,只有输入(IN)和输出(OUT)两种指令,所以只能把状态信息和命令信息也都当作数据信息来传送,且将状态信息作为输入数据,控制信息作为输出数据,于是三种信息都可以通过数据总线传送了。

但要注意,这三种信息被送入三种不同端口的寄存器,因而能实施不同的功能。

CPU对外设的访问实质上是对I/O接口电路中相应的端口进行访问,也需要由译码电路来形成I/O端口地址。

I/O端口的编址方式有两种·存储器映象寻址方式·I/O指令寻址方式2.8255A接口芯片内含几个I/O端口?它们的名称分别是?这些I/O口地址有何特点?三个数据端口,三种工作方式A口可工作于方式0、方式1和方式2中的任一种B口可工作于方式0和方式1,但不能工作于方式2C口只能工作于方式08位数据端口:A口、B口、C口A口:PA7~PA0B口:PB7~PB0C口:PC7~PC0连接外部设备A口与B口为一个8位的输入口或输出口C口单独作为一个8位的输入口或输出口配合A口和B口使用,作为控制信号和状态信号3.8255A有几个控制字?怎样设置?它有两个控制字,一个是方式选择控制字,一个是对C口进行置位或复位控制字。

微机原理及应用实验报告

微机原理及应用实验报告

实验一 程序调试实验(顺序结构程序设计)一、实验目的: 1.学习及掌握汇编语言源程序的基本结构,明确程序中各段的功能和相互之间的关系。

2.熟练掌握在计算机上建立、汇编、连接、调试及运行程序的方法。

3、熟悉和掌握DEBUG 常用命令的使用 二、实验要求:1、上机前,要认真阅读前言和课本相关章节2、上机前,画好流程图,编写好程序3、上机时,注意出现的错误,记录下出错信息,翻译之4、完成好实验报告 三、实验内容:在内存TAB 开始的16个单元连续存放了0-15的平方值(0-225),任给一个数X(0 ≤ X ≤ 15),求X 的平方值,并把结果存放在Y 单元中。

(2).分析X 平方的值是tab 为首地址且x 的值为有效地址中的值。

data segmentx db 8 y db ?data endsstack segment para'stack' db 100 dup(0) stack ends code segmentassume cs:code,ds:data,ss:stack start:mov ax,data mov ds,ax xor ax,ax mov al,x lea si,tab add si,ax mov al,[si] mov y,al mov ah,4ch int 21h code ends end start(3).程序调试:4.心得体会了解了顺序结构,掌握了程序的运行,调试。

实验二分支程序设计一、实验目的:熟悉运算类指令对标志位的状态影响以及标志位状态的表示方法;掌握条件转移、无条件转移指令的使用方法。

掌握分支程序设计、编写、调试和运行的方法。

二、实验要求:1、上机前认真分析题意,找出算法,画出流程图,依据流程图,编好程序。

2、认真调试程序,对程序可能存在的所有分支都要进行运行,只有这样才能证明程序的正确性。

二、实验内容1.判断X单元数据的奇偶性,若为奇数,将Y单元设置为0FFH,若为偶数,将Y单元清0。

微机原理及应用实验报告

微机原理及应用实验报告

实验报告课程名称实验日期学生专业学生学号学生姓名教师姓名成绩南京理工大学机械工程学院实验一DEBUG命令及其操作一、实验目的1.熟练掌握debug的常用命令,学会用debug来调试程序。

2.深入了解数据在存储器中的存取方法及堆栈中数据的压入与弹出。

3.掌握各种寻址方法以及简单指令的执行过程。

二、实验要求1.实验前要作好充分准备,包括汇编程序清单、调试步骤、调试方法以及对程序结果的分析等。

2.本实验要求在PC机上进行。

3.本实验只要求在DEBUG调试状态下进行,包括汇编程序,调试程序,执行程序。

三、实验内容实验内容1:学习用DEBUG调试工具进行源程序的输入、汇编、调试和执行。

答:1运行结果:.2.小结debug常用命令及使用体会a 汇编d显示内存单元内容e修改单元内存内容g执行命令t单步(或多步)调试n指定文件路径文件名(含扩展名)u反汇编r查看寄存器值及修改l加载程序w写盘命令体会:●实验内容2设AX=3000H,BX=5000H,请编一程序段将AX的内容和BX的内容进行交换。

请用堆栈作为两寄存器交换内容的中间存储单元,用DEBUG调试程序进行汇编与调试。

实验报告要求:1.写出完成上述功能的程序段;2.单步执行,并记录寄存器AX, BX及堆栈指针SP的值答:●实验内容3设DS=当前段地址,BX=0300H,SI=0002H,请用DEBUG的命令将存储器偏移地址300H~304H连续单元装入0AH,0BH,0CH,0DH,0EH。

在DEBUG状态下送入下面的程序,并用单步执行的方法,分析每条指令源地址的形成过程?当数据传送完毕时,AX中的内容是什么?A100 ;给各内存单元赋值Mov di,0300Mov dx,0aMov cx,51oop1:mov[di],dxInc diInc dx1oop loop1程序清单如下:寻址方式和AX的内容MOV BX,0300 立即寻址MOV SI,0002 立即寻址MOV AX,BX 寄存器寻址AX: 0300MOV AX,0304H 立即寻址AX:0304MOV AX,[0304H] 存储器直接寻址AX:ds:0304 内存单元的内容0EH MOV AX,[BX] 寄存器间接寻址AX:ds:0300 内存单元的内容0AH MOV AX,0001[BX] 基址相对寻址AX:ds:0301 内存单元的内容0BH MOV AX,[BX][SI] 基址变址寻址AX:ds:0302 内存单元的内容0CH MOV AX,0001[BX][SI] 基址变址寻址AX:ds:0303内存单元的内容0DH 实验内容4设AX=0002H,编写程序将AX的内容乘10,要求用移位的方法完成。

微机原理与应用实验报告

微机原理与应用实验报告

微机原理及应用实验报告班级:机械1301班:黄佳清学号: 0801130117座位号:中南大学机电工程学院实验一单片机仿真开发机操作和MCS-51指令系统应用一.实验目的1、熟悉MCS-51单片机仿真开发机和开发调试软件的操作使用和调整;2、学会编写和输入汇编语言源程序、对输入的源程序进行汇编;3、掌握程序的调试和运行的各种方法。

三.实验容及步骤(完成分值:60分)本实验秩序运行Keil uVersion2程序,设置为keil为纯软件仿真1.新建工程项目2.设置工程文件参数3.编写新程序事例4.调试程序直至能够运行出结果。

四.实验程序AJMP MAINORG 0030HMAIN: MOV R0,#20HMOV R2,#0FHMOV A,#00HA1: MOV R0,AINC R0INC ADJNZ R2,A1MOV R0,#20H ;暂停,观察并记录!MOV DPTR,#7000HMOV R2,#0FHA2: MOV A,R0MOVX DPTR,A INC R0INC DPTRDJNZ R2,A2MOV R0,#030H ;断点,观察并记录!MOV DPTR,#7000HMOV R2,#0FHA3: MOVX A,DPTRMOVX R0,AINC R0INC DPTRDJNZ R2,A3DO: LJMP DOEND ;部存储器数据块赋值,搬运数据块到外部存储器,再搬运回部数据存储器。

五、附加题1. 将光标移到想要暂停的地方,MOV R0,#20H所在行,选择“执行到光标3.4.修改程序,实现新功能实现倒序数据转移程序AJMPMAINORG 0030HMAIN: MOV R0,#40HMOV R2,#0FHMOV A,#00HA1: MOV R0,ADEC R0INC ADJNZ R2,A1MOV R0,#30HMOV DPTR,#7000HMOV R2,#0FHA2: MOV A,R0MOVX DPTR,AINC R0INC DPTRDJNZ R2,A2MOV R0,#030HMOV DPTR,#7000HMOV R2,#0FHA3: MOVX A,DPTRMOVX R0,AINC R0INC DPTRDJNZ R2,A3DO: LJMP DOEND实验二程序设计一、实验目的1、掌握MCS-51单片机指令系统及用汇编语言编程技巧;2、了解和熟悉用MCS-51单片机仿真开发机调试程序的方法。

微机原理及应用实验报告

微机原理及应用实验报告

微机原理及应用实验报告实验名称:微机原理及应用实验实验目的:通过实际操作,学习微机原理及应用,了解微机硬件组成和工作原理,掌握微机汇编语言的基本操作及应用。

实验器材与软件:电脑、汇编语言编译软件、实验板、示波器。

实验内容:1.微机硬件组成及工作原理-学习微机硬件包括中央处理器(CPU)、存储器(RAM和ROM)、输入输出设备(I/O)等组成部分。

-了解CPU的工作原理,包括指令译码、执行和数据传输。

-掌握存储器的分类和作用,了解RAM的读写操作和ROM的存储功能。

-理解输入输出设备的工作原理,例如键盘、显示器、串口等。

2.微机汇编语言基础-学习汇编语言的基本语法和指令格式。

-掌握汇编语言中的数据存储和操作方法。

-学习汇编语言的控制结构,包括顺序、选择和循环结构。

3.实验操作-实验前准备:连接实验板、示波器和电脑,启动汇编语言编译软件。

-编写简单的汇编程序,例如实现两个数字相加的功能。

-编译和调试汇编程序,观察电路的输出情况。

-修改程序代码,实现其他功能,例如实现数字的乘法和除法。

实验结果与分析:根据实验内容,我们成功学习了微机硬件组成和工作原理,掌握了汇编语言的基础知识并进行了实际操作。

在实验过程中,我们发现CPU是整个微机系统的核心,通过执行指令和数据操作来实现各种功能。

存储器用于存储程序和数据,RAM可以读写操作,而ROM只能读取。

输入输出设备是与外部环境进行数据交互的媒介。

通过编写简单的汇编程序,例如实现两个数字相加的功能,我们深入了解了汇编语言的语法和指令格式。

在编译和调试过程中,我们发现对于了解指令执行的效率和结果的正确性非常重要。

在修改程序代码的过程中,我们扩展了功能,例如实现数字的乘法和除法。

在这个过程中,我们学会了如何在程序中使用循环结构和控制结构。

总结与心得:通过本次实验,我们深入了解了微机原理及应用的相关知识。

通过实际操作,我们掌握了微机的硬件组成和工作原理,学会了使用汇编语言编写和调试程序。

微机原理与应用-实验报告

微机原理与应用-实验报告

《微机原理与应用》实验报告姓名:***学号:**********年级:2014专业:电子2016年春季学期实验一.熟悉单片机开发环境1.功能要求在 P1 端口接8 个LED,并编程依次循环点亮。

要求用软件延时程序控制LED 的亮灭时间,并能精确地计算和用软件测量延时时间。

2.硬件原理3.程序清单ORG 0000HLJMP STARTORG 0030HSTART: MOV R2,#8MOV A,#01H LOOP1: MOV P1,ALCALL DELAY RL ADJNZ R2,LOOP1 MOV R2,#8RR ALOOP2: MOV P1,ALCALL DELAY RR ADJNZ R2,LOOP2 LJMP STARTDELAY: MOV R5,#20 D1: MOV R6,#80 D2: MOV R7,#248 DJNZ R7,$DJNZ R6,D2DJNZ R5,D1RETEND4.实验心得首次接触开发板,通过实验1加强了对单片机的了解,学会使用仿真软件,学会搭线的各种技巧,并且掌握了LED亮灭的原理。

实验二.并行口输入输出实验——循环彩灯控制1.功能要求P1 口接8 个开关,P0 口接8 个灯,每个开关对应一个灯,实时读取开关状态,开关闭合时,灯亮。

开关断开时,灯灭。

用5 个开关K0~K4,控制P0 口所接8 个灯的循环,各开关的功能要求如下:(1)K1~K2 分别选择灯的四种闪动方式;(2)K3 用于控制灯的循环方向(顺时针或逆时针);(3)K4 用于选择灯的两种循环速度;(4)K0 用于引发外部中断,在外部中断子程序中,读取通过K1-K4 所设定 的循环彩灯的工作方式,并按所设定的工作方式控制彩灯运行。

当K0 没有引发 中断时,保持上一次的循环方式。

2.硬件原理3.程序清单ORG 0000HLJMP MAINDELAY2: MOV R0,#200 D4: MOV R1,#200ORG 0003HLJMP INTERRUPTORG 0030HMAIN: SETB EX0SETB IT0SETB EAMOV A,#01HA1: MOV P0,AJB 20H.2,B1JNB 20H.2,B2A2: JB 20H.3,LOOP11 JNB 20H.3,LOOP22 B1: LCALL DELAY1LJMP A2B2: LCALL DELAY2LJMP A2LOOP11: RL ALJMP A1LOOP22: RR ALJMP A1ORG 0600HDELAY1: MOV R0,#100D1: MOV R1,#100D2: MOV R2,#10D3: DJNZ R2,D3DJNZ R1,D2DJNZ R0 ,D1RET4.实验心得开始熟悉开发板,通过实验2加强了对单片机的了解,学会中断程序的书写方法,学会搭线的各种技巧,并且掌握了跑马灯工作的原理。

微机原理与应用实验报告-汇编语言程序设计

微机原理与应用实验报告-汇编语言程序设计

实验报告册课程名称:微机原理指导老师:班级:姓名:学号:学期:20 19 —20 20 学年第学期实验目录实验一:汇编语言程序设计实验二:实验三:实验四:实验五:实验六:姓名:成绩:实验一汇编语言程序设计一、实验目的1、学习8088汇编语言程序的基本结构和程序设计的基本方法。

2、熟悉在PC机上建立、汇编、链接、调试和运行汇编语言程序的全过程。

3、掌握DEBUG基本指令及其使用方法。

二、实验内容编写程序,将80H-8FH共16个字节数据写入数据段1000H偏移地址开始的16个内存单元中。

三、实验步骤1、进入编程环境,编写、汇编、链接、运行汇编语言源程序。

2、利用DEBUG指令,对程序进行调试。

四、实验程序实验代码如下:;将80H-8FH共16个字节数据写入数据段1000H偏移地址开始的16个内存单元中。

DATAS SEGMENTDATA DB80H,81H,82H,83H,84H,85H,86H,87H,88H,89H,8AH,8BH,8CH,8DH,8EH,8FH;此处输入数据段代码DATAS ENDSSTACKS SEGMENT;此处输入堆栈段代码STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKSSTART:MOV AX,DATASMOV DS,AXMOV ES,AXMOV SI,OFFSET DATAMOV DI,1000HMOV CX,16CLDREP MOVSB;此处输入代码段代码HLTMOV AH,4CHINT 21HCODES ENDSEND START五、实验结果将80H-8FH送入1000H-1016H内存段的结果:3.实验小结进一步巩固了数据的一般传送以及体会到了数据块传送的便利之处,进一熟悉了MASM软件的操作和DEBUG命令的使用。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《微机原理与应用》实验报告姓名:郭爽学号:2014012468年级:2014专业:电子2016年春季学期实验一、熟悉单片机开发环境1、功能要求在 P1 端口接8 个LED,并编程依次循环点亮。

要求用软件延时程序控制LED 的亮灭时间,并能精确地计算与用软件测量延时时间。

2、硬件原理3、程序清单ORG 0000HLJMP STARTORG 0030HSTART: MOV R2,#8MOV A,#01H LOOP1: MOV P1,ALCALL DELAY RL ADJNZ R2,LOOP1 MOV R2,#8RR ALOOP2: MOV P1,ALCALL DELAY RR ADJNZ R2,LOOP2 LJMP STARTDELAY: MOV R5,#20 D1: MOV R6,#80D2: MOV R7,#248 DJNZ R7,$DJNZ R6,D2DJNZ R5,D1RETEND4、实验心得首次接触开发板,通过实验1加强了对单片机的了解,学会使用仿真软件,学会搭线的各种技巧,并且掌握了LED亮灭的原理。

实验二、并行口输入输出实验——循环彩灯控制1、功能要求P1 口接8 个开关,P0 口接8 个灯,每个开关对应一个灯,实时读取开关状态,开关闭合时,灯亮。

开关断开时,灯灭。

用5 个开关K0~K4,控制P0 口所接8 个灯的循环,各开关的功能要求如下:(1)K1~K2 分别选择灯的四种闪动方式;(2)K3 用于控制灯的循环方向(顺时针或逆时针);(3)K4 用于选择灯的两种循环速度;(4)K0 用于引发外部中断,在外部中断子程序中,读取通过K1-K4 所设定的循环彩灯的工作方式,并按所设定的工作方式控制彩灯运行。

当K0 没有引发中断时,保持上一次的循环方式。

2、硬件原理3.程序清单ORG 0000HLJMP MAINORG 0003HLJMP INTERRUPT DELAY2: MOV R0,#200 D4: MOV R1,#200 D5: MOV R2,#10 D6: DJNZ R2,D6DJNZ R1 ,D5 DJNZ R0,D4RETORG 0030HMAIN: SETB EX0SETB IT0SETB EAMOV A,#01HA1: MOV P0,AJB 20H、2,B1JNB 20H、2,B2A2: JB 20H、3,LOOP11 JNB 20H、3,LOOP22 B1: LCALL DELAY1LJMP A2B2: LCALL DELAY2LJMP A2LOOP11: RL ALJMP A1LOOP22: RR ALJMP A1ORG 0600HDELAY1: MOV R0,#100D1: MOV R1,#100D2: MOV R2,#10D3: DJNZ R2,D3DJNZ R1,D2DJNZ R0 ,D1RET4、实验心得开始熟悉开发板,通过实验2加强了对单片机的了解,学会中断程序的书写方法,学会搭线的各种技巧,并且掌握了跑马灯工作的原理。

实验三、七段LED 数码管控制实验1.功能要求首先用万用表判断所用数码管就是共阴极还就是共阳极数码管,并测出各引脚功能,画出引脚分布图。

实验采用4 位一体的数码管,用P1 口通过驱动芯片控制段码输出信号线,P0 口通过驱动芯片控制位选线,自主选择驱动芯片,设计实现电路,并实现以下功能:(1)当开关K0 接低电平时,第一位依次显示0~F,然后第二位、第三位、第四位,再循环回第一位。

(2)当开关K0 接高电平时,四位动态显示“HELP”。

2.硬件要求3.程序清单ORG 0000HLJMP STARTORG 0030H START:JB P3、0 ,LOPP JNB P3、0 ,LOOP2 LOPP: MOV R1,#4 SETB P2、2 MOV P0,#0C7H LCALL DLAY2 CLR P2、2SETB P2、3 MOV P0,#8CH LCALL DLAY2 CLR P2、3LJMP STARTLOOP1:MOV R3,#16LOP1: MOV P0,#0FEHMOV DPTR,#TAB2MOV A,R1MOVC A,@A+DPTR MOV P2,AJNB P3、0 ,LOOP2 MOV DPTR,#TAB1 MOV A,R3MOVC A,@A+DPTR MOV P0,ALCALL DELAYDJNZ R3,LOP1DJNZ R1,LOOP1LJMP LOPPLOOP2:SETB P2、0MOV P0,#89HLCALL DLAY2CLR P2、0SETB P2、1MOV P0,#86HLCALL DLAY2CLR P2、14、实验心得开始掌握单片机,通过实验3加强了对单片机的理解,学会查表程序的书写方法,学会244芯片的工作原理,并且掌握了数码管工作的原理。

实验四、定时器中断实验1.功能要求实现一个4 位秒表:(1)用开关K0 模拟秒表的启动、停止、清零功能,K0 触发外部中断INT0,按一次启动计时,按一次停止,再按一次清零,在三个状态中循环。

(2)定时采用T0 定时器中断完成,最低位按1/10 秒计数,依次计数单位为1 分、10 秒、1 秒、1/10 秒。

(3)要求外部中断INT0 的优先级高于T0 的优先级2.硬件要求3.程序清单ORG 0000H LJMP START ORG 0003H LJMP ITRU0 ORG 000BHORG 0030H START: MOV TMOD,#01H MOV IP, #01H SETB ET0SETB IT0SETB EX0SETB EA LOPP: SETB P1、2MOV R0,#0MOV R4,#0MOV R5,#0MOV R6,#0MOV R7,#0MOV R1,#4LOP1: MOV DPTR,#TAB2 MOV A,R1MOVC A,@A+DPTR MOV P2,AMOV P0,#0C0H DJNZ R1,LOP1 JB P1、0 ,LOPP SETB TR0 CIRCLE: SETB P2、3MOV DPTR,#TAB3MOVC A,@A+DPTR MOV P0,ALCALL DELAYCLR P2、3SETB P2、2MOV DPTR,#TAB4 MOV A,R5MOVC A,@A+DPTR MOV P0,ALCALL DELAYCLR P2、2SETB P2、1MOV DPTR,#TAB3 MOV A,R6MOVC A,@A+DPTR MOV P0,ALCALL DELAYCLR P2、1SETB P2、0MOV DPTR,#TAB4 MOV A,R7MOVC A,@A+DPTR MOV P0,ALCALL DELAY W1: INC R4CJNE R4,#10 ,W2 MOV R4,#0INC R5CJNE R5,#10,W2 MOV R5,#0INC R6CJNE R6,#6,W2 MOV R6,#0CLR P2、0JNB P1、0,CIRCLECLR TR0JNB P1、2,LOPPLJMP CIRCLETAB3: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H TAB4: DB 40H,79H,24H,30H,19H,12H,02H,78H,00H,10HTAB2: DB 0FFH,08H,04H,02H,01HDELAY: MOV R2,#200D1: DJNZ R2,D1MOV R2,#200D2: DJNZ R2,D2RETITRU0: INC R0CJNE R0,#3, W3CLR P1、2LJMP W4W3: CPL P1、0W4: RETIITRU1: MOV TH0,#(65536-50000) / 256MOV TL0,#(65536-50000) MOD 256CPL P1、5JNB P1、5 ,W1LJMP W24、实验心得开始掌握单片机,通过实验4加强了对单片机的理解,学会定时程序的书写方法,如何进行计算精度,使定时器更加精确。

实验五、脉冲宽度与周期测量实验1.功能要求已知某被测脉冲频率为1KHz 左右:自主设计测量方法,编程连续测量输入脉冲宽度,并用七段LED 显示结果。

自主设计测量方法,编程连续测量输入脉冲周期,并用七段LED 显示结果。

自主设计测量方法,同时测量脉冲宽度与周期,由开关K0 选择显示脉冲宽度还就是显示脉冲周期。

2.硬件要求3.程序清单ORG 0000HLJMP MAINORG 000BHLJMP T0XORG 0030HMAIN: MOV TMOD,#0AH ;使用定时器0的方式2,自动赋值类型MOV TH0,#156 ;针对12M晶振赋值,如果为11、0192M晶振,重新赋值164SETB EASETB ET0MOV DPTR,#TABMOV A,#0MOV R0,#0MOV R1,#0MOV R2,#0MOV R3,#0MOV R4,#0JB P1、0,M1 ;通过对P1,0的查询选择测量周期或者脉宽M0: JB P3、2,$ ;利用查询的方式开启定时器SETB TR0JNB P3、2,$JB P3、2,$JNB P3、2,$JB P3、2,$CLR TR0LJMP LOOPM1: JB P3、2,M1SETB TR0JNB P3、2,$JB P3、2,$CLR TR0LOOP: MOV A,TL0MOV B,#10DIV ABMOV R1,BMOV R2,AMOV A,R0MOV B,#10DIV ABMOV R3,BADD A,#10MOV R4,A ;最后给R4加10,让其读后10位的表SHOW: MOV P2,#01H ;共阳极数码管MOV A,R1LCALL SHOW1LCALL SHOW2MOV P2,#02HMOV A,R2LCALL SHOW1LCALL SHOW2MOV P2,#04HMOV A,R3LCALL SHOW1LCALL SHOW2MOV P2,#08HMOV A,R4LCALL SHOW1LCALL SHOW2LJMP MAINSHOW1:MOVC A,@A+DPTRMOV P0,ARETSHOW2:MOV R7,#200MOV R6,#200DJNZ R6,$DJNZ R7,$RETT0X: INC R0 ;每100微妙进1RETITAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H ;前10位无小数点DB 40H,79H,24H,30H,19H,12H,02H,78H,00H,10H ;后10位有小数点END4、实验心得通过实验5加强了对单片机的理解,学会利用单片机进行脉冲宽度与周期的测量,并且掌握了十六进制转换为十进制的技巧。

相关文档
最新文档