实验一 数据传送
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据传送实验
验证性实验
2012年10月31日第三四节课
一、实验目的
1、掌握单片机的汇编指令系统及汇编语言程序设计方法。
2、掌握单片机的存储器体系结构。
3、熟悉Keil软件的功能和使用方法。
4、掌握单片机应用程序的调试方法。
二、设计要求
1、编写程序将00H~0FH 16个数据送到单片机内部RAM 30H~3FH单元中。
2、编写程序将片内RAM 30H~3FH的内容传送至片内RAM 40~4FH单元中。
3、编写程序将片内RAM 40H~4FH单元中的内容传送到外部RAM 4800H~480FH单元中。
4、编程将片外4800H~480FH单元内容送到外部RAM 5800H~580FH单元中。
5、编写程序将片外RAM 5800H~580FH单元内容传送回片内RAM 50H~5FH 单元中。
三、实验程序流程框图
四、程序清单
ORG 0000H
MOV R0, #30H ;初始化数据指针
MOV A, #00H
MOV R2, #10H ;设置循环次数LOOP1: MOV @R0, A ;循环体部分
INC R0 ;修改数据指针
INC A
DJNZ R2, LOOP1 ;循环控制部分
MOV R0, #30H ;初始化数据指针 MOV R1, #40H
MOV R2, #10H
LOOP2: MOV A, @R0 ;循环体部分 MOV @R1, A
INC R0 ;修改数据指针 INC R1
DJNZ R2, LOOP2 ;循环控制部分
MOV R1, #40H ;设置数据指针R0单元内容
MOV DPTR, #4800H ;外部RAM4800H单元地址作为16位立即数送数
据指针DPTR
MOV R2, #10H ;设置循环次数
LOOP3: MOV A, @R1 ;循环体部分
MOVX @DPTR, A
INC R1 ;修改数据指针
INC DPTR
DJNZ R2, LOOP3 ;循环控制部分
MOV R0, #00H ;初始化数据指针
MOV R1, #48H
MOV R2, #58H
LOOP4: MOV DPL, R0 ;设置数据指针的低八位内容
MOV DPH, R1 ;设置数据指针的高八位内容
MOVX A, @DPTR ;将外部RAM内容送累加器A
MOV DPH, R2 ;重新设置数据指针高八位内容
MOVX @DPTR, A ;将累加器A的内容送回外部RAM INC R0 ;修改数据指针
CJNE R0, #10H, LOOP4 ;循环控制部分
MOV R0, #50H ;初始化数据指针
MOV DPTR, #5800H
MOV R2, #10H
CLR A ;累加器A清零
LOOP5: MOVX A, @DPTR ;循环体部分
MOV @R0, A
INC R0 ;修改数据指针
INC DPTR
DJNZ R2, LOOP5 ;循环控制部分
END
五、程序数据
六、实验总结
通过本次试验,我掌握了单片机的汇编指令系统及汇编语言程序设计方法,掌握了单片机的存储器体系结构,同时熟悉了KEIL的功能和使用方法,掌握了单片机应用程序的调试方法,为以后的编程打下了基础,更加深了自己对51单片机结构的理解。
六、思考题
1、说明MCS-51系列单片机对片内RAM和片外RAM存贮器各有哪些寻址方式?
答:片内RAM寻址方式:寄存器寻址、直接寻址、寄存器间接寻址、位寻址片内RAM寻址方式:寄存器间接寻址
2、说明指令MOV A,20H和MOV C,20H中的20H含义有什么不同?传送指令中的助记符 MOV,MOVX,MOVC各适用于访问哪个存储器空间?
答:MOV A,20H中的20H指字节单元,MOV C,20H中的20H指位寻址单元。MOV A,20H是将20H字节单元内容送累加器A;MOV C,20H是将20H单元地址单元内容送累加器A。
MOV是用于对单片机内部数据存储器寻址,MOVC用于对单片机内部程序存储器区进行寻址,MOVX用于对外部数据存储器区进行寻址。