微机原理(单片机汇编)试验报告_第1页
微机原理(单片机汇编)试验报告_第2页
微机原理(单片机汇编)试验报告_第3页
微机原理(单片机汇编)试验报告_第4页
微机原理(单片机汇编)试验报告_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本文格式为Word版,下载可任意编辑——微机原理(单片机汇编)试验报告软件试验报告

软件试验一

一、试验目的

1.熟悉软件试验的基本步骤和汇编程序的调试方法;2.了解内存块的移动方法;

3.了解将十六进制数转换成ASCII值的方法。

二、试验原理

用MOV和MO指令可以进行数据的赋值和移动,用循环可以完成大量数据的复制。

三、试验内容及步骤

1、软件设置为模拟调试状态,在所建的Project文件中添加例程1的源程序进行编译,编译无误后,可以选择单步或跟踪执行方式或全速运行程序。开启CPU窗口,观测CPU窗口各寄放器的变化。开启View菜单中的MemoryWindow,可以观测内部RAM、外部RAM的数据和程序存储器中的程序。在Address窗口输入X:8000H后回车,观测8000H-800FF起始的256个字节单元的内容。

2、新建一个Project文件,添加例程2的源程序进行编译,编译无误后,可以选择单步或跟踪执行方式或全速运行程序。开启View菜单中的MemoryWindow,在Address窗口的Memory#1输入X:3000H后回车,点击运行按钮后,在Memory#2输入X:4000H后回车,观测外部RAM3000H和4000H中的内容。

3、添加将片内30H-3FH单元的内容复制片外片外1030H~103FH中的源程序,编译运行,观测比较30-3FH单元中的内容和片外1030H-103FH中的内容。

4、添加将30H、31H单元中的十六进制数,转换成ASCII码,存放到40H开始的4个单元中的源程序,编译运行,观测结果。

5、添加求内部RAM30H—37H单元中8个无符号数的算术和的源程序,8个无符号数设定为25H,36H,4AH,65H,7FH,82H,9BH,1DH,观测39H,38H中的数字是否分别为02H,C3H。

四、试验结果1.2.

步骤1的结果为8000H-80FFH的内容都为1.

步骤2的结果为3000H起始的256个字节存储块与4000H起始的256个字节存

储块各单元内数据对应一致。

1

3.4.5.

步骤3的结果为片外1030H-103FH中的内容与片内30H-3FH单元的内容一致。步骤4的结果为将30H、31H中的十六进制数转换成了ASCII码,并存入到40H步骤5的结果为8个无符号数的和为02C3H。

开始的4个单元中。

五、思考题

1、如何将存储器块的内容置成某固定值(例全填充为0FFH)?请用户修改程序,完成此操作。

答:程序修改如下:将MAIN修改如下即可:MAIN:MOVDPTR,#STARTMOVR0,#0MOVA,#0FFH

2、若源块地址和目标块地址有重叠,程序该如何设计(用地址减1方法移动块)?假设源块地址2000H,目标块地址2050H,移动块长度80H。答:程序修改如下:ORG0000HMOVDPTR,#2000HMOVA,#01HMOVR5,#0LOOP:MO@DPTR,AINCDPTRDJNZR5,LOOPMOVR0,#20HMOVR1,#00HMOVR2,#20HMOVR3,#50HMOVR7,#7FHLOOP1:MOVDPH,R0

2

MOVDPL,R3MO@DPTR,ACLRCMOVA,R1SUBBA,#0MOVR1,ACLRCMOVA,R3SUBBA,#0MOVR3,AMOVA,R0SUBBA,#0MOVR0,AMOVA,R2SUBBA,#0MOVR2,ADJNZR7,LOOP1SJMP$END

MOVDPL,R1MOA,@DPTRMOVDPH,R2

六、源程序

1、将片内30H-3FH单元的内容复制片外片外1030H~103FH中ORG0000H

MOVR0,#30HMOVDPTR,#1030HMOVR7,#10HLOOP1:MOVA,#0FHMOV@R0,AINCR0

DJNZR7,LOOP1MOVR0,#30HMOVR7,#10HLOOP:MOVA,@R0INCR0

MO@DPTR,AINCDPTR

DJNZR7,LOOPSJMP$END

2、将30H、31H单元中的十六进制数,转换成ASCII码,存放到40H开始的4个单元中

ORG0100HMOV30H,#0FHMOV31H,#11HMOVR0,#41HMOV@R0,#00HMOVA,30HXCHDA,@R0ORL41H,#30HSWAPA

ORLA,#30H

3

MOV40H,AMOVR0,#43HMOV@R0,#00HMOVA,31HXCHDA,@R0ORL43H,#30HSWAPA

ORLA,#30HMOV42H,AEND

3、求内部RAM30H—37H单元中8个无符号数的算术和ORG0000H

MOV30H,#25HMOV31H,#36HMOV32H,#4AHMOV33H,#65HMOV34H,#7FHMOV35H,#82HMOV36H,#9BHMOV37H,#1DHMOVR0,#30HMOV39H,#0MOVR7,#8HCLRC

MOVA,@R0Loop:INCR0ADDA,@R0MOV38H,AMOVA,39HADDCA,#0MOV39H,AMOVA,38HCLRC

DJNZR7,LoopSJMP$END

4

软件试验二

一、试验目的

1、熟悉软件试验的基本步骤和汇编程序的调试方法;2、把握简单的数值算法;

3、把握多分支结构程序的编程方法。

二、试验原理

将给定的一字节二进制数,转换成十进制(BCD)码的方法为将数除以100,得百位数,保存百位数,再将余数除以10,得十位数并保存,最终的余数为个位数,将其保存。用A和B两个寄放器来完成除法,被除数和商放在A,除数和余数放在B。

三、试验及步骤

1、在所建的Project文件中添加例程的源程序进行编译,编译无误后,可以选择单步或跟踪执行方式或全速运行程序。开启CPU窗口,观测CPU窗口各寄放器的变化。开启View菜单中的MemoryWindow,在Address窗口输入D:30H后回车,点击运行按钮,观测地址30H、31H、32H的数据变化。

2、添加试验书试验内容1的源程序,编译,运行,观测(33H)=0x58,(32H)=0xA2,(31H)=0x34,(30H)=0x7E和(43H)=0x07,(42H)=0x68,(41H)=0x85,(40H)=0x3B的差是否为(33H)=0x51,(32H)=0x39,(31H)=0xAF,(30H)=0x43。

3、添加试验书试验内容2的源程序,编译,运行,观测(0100H)=0x10,(0101H)=0x32,(0102H)=0x54,(0103H)=0x76和(0110H)=0x78,(0111H)=0x56,(0112H)=0x34,(0113H)=0x92的和是否为(0120)=0x88,(0121)=0x88,(0122)=0x88,(0123)=0x68,(0124)=0x01。

4、添加试验书试验内容3的源程序,编译,运行。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论