模板单片机实验报告

  • 格式:docx
  • 大小:16.13 KB
  • 文档页数:3

模板单片机实验报告

单片机实验报告 学院:

专业:

班级:学号:姓名: 信 息 工 程 学院 电子信息工程

实验一 存储器块清零

一、实验要求

1. 指定存储器中某块的起始地址和长度,要求能将其内容清零。

二、实验目的

1. 掌握存储器读写方法

2. 了解存储器的块操作方法

三、实验说明

通过本实验,学生可以了解单片机读写存储器的读写方法,同时也可以了解单片机编程,

调试方法。如何将存储器块的内容置成某固定值(例全填充为0FFH)? 请学生修改程序,完

成此操作。

四、程序框图

五、程序设计:

MOV DPTR,#1000H;

MOV B,#64H;

CLR A

LOOP:

MOVX @DPTR,A;

INC DPTR;

DJNZ B,LOOP;

LJMP $

END

遇到的问题及解决方法

问题:直接给存储器清零 解决方法:在给存储器赋值时只有一条语句即:MOVX

@DPTR,A不存在MOVX @DPTR,#data所以要实现给存储器清零则需要首先将累加器A清零,然后通过A给存储器清零。

实验二 内存块移动

一、实验要求

将指定源地址和长度的存储块移到指定目标位置

二、实验目的

1.了解内存的移动方法。 2.加深对存储器读写的认识。

三、实验说明

块移动是计算机常用操作之一,多用于大量的数据复制和图象操作。本程序是给出起 始地址,用地址加一方法移动块,请思考给出块结束地址,用地址减一方法移动块的算法。 另外,若源块地址和目标块地址有重叠,该如何避免?

四、程序框图

程序:

MOV DPTR,#1000H; MOV B,#64H; MOV A,#09H LOOP:

MOVX @DPTR,A; INC DPTR; DJNZ B,LOOP; MOV R0,#10H

MOV R1,#00H MOV R2,#30H MOV R3,#00H MOV B,#64H LOOP1:

MOV DPH,R0 MOV DPL,R1 遇到的问题及解决方法。

问题:使用一个8位寄存器,若移动的数据超出256个会出现数据丢失。

解决方法:如果是一个寄存器,如:INC R1一旦R1为0FFH再增加1后就会清零从新由1000H处移动数据而1100H后的数据就会丢失。所以增加一个8位寄存器后,依然如上例当R1加到0FFH后将高8位地址加1即R0为11H就实现了1100H后的数据移动。

MOVX A,@DPTR MOV DPH,R2 MOV DPL,R3 MOVX

@DPTR,A

CJNE R1,#0FFH,Goon1 INC R0 Goon1:

INC R1

CJNE R3,#0FFH,Goon2 INC R2 Goon2: INC R 3 / p > p c l a s s = " t " b d s f i d = " 2 8 4 " > D J N Z

B , L O O P 1 L J M P $ E N D / p > p c l a s s = " t " b d s f i d = "

2 8 5 " > lx 鯪 瀃 寶 N Y 钀 -N 璭 瀃 寶 / p > p c l a s s = " t " b d s

f i d = " 2 8 6 " > N 0 瀃 寶 亯 Bl / p >