- 34
- 0
- 约1.72万字
- 约 83页
- 2021-03-19 发布于北京
- 举报
微机原理与接口技术实验
实验一 存储器块操作实验
一、实验目的
1.熟悉 KEIL 集成调试环境和汇编程序的调试
方法。
2.掌握存储器读写方法;
3.了解内存块的移动方法;
二、实验说明
实验 1指定某块存储器的起始地址和长度,要求能将其内容赋值。 通过该实验学生可以了解单片机读写存储器的方法, 同时也可以了解单片机编程、调试方法。
块移动是单片机常用操作之一, 多用于大量的数据复制和图象操作。 例程 2 给出起始地址,用地址加一方法移动块, 将指定源地址和长度的存储块移到指定目标地址为起始地址的单元中去。 移
动 3000H起始的 256个字节到 4000H起始的 256个
字节。
三、源程序代码源程序 1:
ORG 0000H
START EQU 8000H
MOV DPTR , #START ;起始地址
MOV R0 ,#0 ;
MOV A ,#1H
Loop :
MOVX @DPTR ,A
;
DJNZ R0 ,Loop ;
NOP
设置 256 字节计数值
指向下一个地址
计数值减一
LJMP $
END
Memory Window
初始:
运行后:
运行结果:外部 RAM8000H ~80FFH 的内容都
为 1。
源程序 2:
ORG 0000H
MOV DPTR,#3000H
MOV A,#01H
MOV R5,#0
LOOP:
MOVX @DPTR,A
INC DPTR
DJNZ R5,LOOP
MOV R0 ,#30H
MOV R1 ,#00H
MOV R2 ,#40H
MOV R3 ,#00H
MOV R7 ,#0
LOOP1 :
MOV DPH ,R0
MOV DPL ,R1
MOVX A ,@DPTR
MOV DPH ,R2
MOV DPL ,R3
MOVX @DPTR ,A
INC R1
INC R3
DJNZ R7 ,LOOP1
LJMP $
END
Memory Window
初始:
运行程序后:
运行结果: 3000H 起始的 256 个字节存储块与
4000H 起始的 256 个字节存储块各单元内数据
对应相同。
四、思考题
1、如何将存储器块的内容置成某固定值 (例全填充为 0FFH)? 请用户修改程序,完成此操作。
将源程序 1 修改为:
ORG 0000H
START EQU 8000H
MOV DPTR, #START ; 起始地址
MOV R0,#0 ; 设置 256 字节计数值
MOV A,#0FFH; 将累加器赋值为 0FFH
Loop:
MOVX @DPTR,A
INC DPTR ; 指向下一个地址
DJNZ R0,Loop ; 计数值减一
NOP
LJMP $
END
Memory Window
初始:
运行程序后:
2、若源块地址和目标块地址有重叠,该如
何避免?
将源块地址和目标块地址重叠部分数据压制堆栈中,当要使用重叠部分源数据时,
直接从堆栈中弹出。
五、实验内容
1、试编程将片内 RAM 中的数据依次复制到片外 RAM 。假设源数据区的首地址为 40H,目的数据区的首地址为 1000H,数据块长度为 10H。
源程序:
ORG 0000H
MOV R0,#40H
MOV DPTR,#1000H
MOV R1,#10H
LOOP: MOV A,@R0
MOVX @DPTR,A
INC R0
INC DPTR
DJNZ R1,LOOP
SJMP $
END
Memory Window
初始:
程序运行后:
程序运行结果正确。
2、两个 16 位无符号二进制数分别存放在片外 RAM 首址为 2000H 和 2002H 单元内,将它们相加,结果存入片内 RAM 30H (低 8 位)、31H
(高 8 位)。
源程序:
ORG 0000H
MOV DPTR ,#2000H
MOVX A,@DPTR
MOV R0,A
MOV DPTR,#2002H
MOVX A,@DPTR
ADD A,R0
MOV 30H,A
MOV DPTR,#2001H
MOVX A,@DPTR
MOV R0,A
MOV DPTR,#2003H
MOVX A,@DPTR
ADDC A,R0
MOV 31H,A
END
Memory Window
初始:
运行程序后:
2FAFH+067DH=362CH, 36H 存于 31H(高八
位),2CH 存于 30H(低八位 )。
程序运行正确。
实验二 数值转换实验
一、实验目的
1.熟悉 KEIL 集成调试环境和汇编程序的调试
方法。
2.掌握简单的数值转换算法。
3.基本了解数值的各种表达方法。
4.掌握数值的加减法运算。
5.掌握用查表的方法将 BCD 值转换成 ASCII
值。
二、实验说明
单片机系统内部运算用二进制
原创力文档

文档评论(0)