模板单片机实验报告
- 格式: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 >