《实验一 单片机数据区传送程序设计》由会员分享,可在线阅读,更多相关《实验一 单片机数据区传送程序设计(3页珍藏版)》请在金锄头文库上搜索。
1、实验一实验一 单片机数据区传送程序设计单片机数据区传送程序设计 1、实验目的实验目的 1进一步掌握汇编语言程序设计和调试方法。 2了解单片机 RAM 中的数据操作 2、实验说明实验说明 要求:编写程序把 R2、R3 源 RAM 区首地址内的 R6、R7 字节数据传送到 R4、R5 目 的地址的 RAM 区。 3、实验仪器实验仪器 计算机 伟福软件( lab2000P ) 4、实验内容实验内容 在 R0、R1 中输入源地址(例如:3000H),R2、R3 中输入目的地址(例如 4000H), R6、R7 中输入字节数(例如:1FFFH) 。 查看 RAM 区 300030FFH 和 400040
2、FFH 内容,也可自己重新赋值。 运行程序,首先单步,然后用执行到指定位置,最后用连续运行方式。 记录下运行结果,检查 300030FFH 中内容是否和 400040FFH 内容完全一致。 5、思考题思考题 1、改变源地址,例如 00FFH; 2、改变目的地址,例如 2000H; 3、改变传输的个数,小于 256 个和大于 256 个的情况。 4、把程序改为对某一数据存储区 RAM 赋都相同一个数值。 6、源程序及其修改原理源程序及其修改原理 org 0000H Block equ 2000hmov dptr, #Block ; 起始地址mov r0,#12h mov a,#20h ;修改;修
3、改 2000h 开始的地址所存放的内容为开始的地址所存放的内容为 20h Loop:mov r1,#14h ;增加;增加 r1 计数,用循环方式实现大于计数,用循环方式实现大于 256 的数据传输(思的数据传输(思 考题考题 3) Loop1:movx dptr,ainc dptr ; 指向下一个地址djnz r1,Loop1 djnz r0, Loop ; 双循环实现双循环实现 r0,r1 计数相乘计数相乘(以上程序实现对某一数据存储区 2000h2168hRAM 赋都相同一个数值 20h,思考题 4)mov r0, #20h;改变源地址为;改变源地址为 2000h(思考题思考题 1)mov
4、 r1, #00hmov r2, #50h;改变目的地址为;改变目的地址为 5000h(思考题(思考题 2)mov r3, #00hmov r7, #0 Loop:mov dph, r0mov dpl, r1movx a, dptrmov dph, r2mov dpl, r3movx dptr, acjne r1, #0ffh, Goon1inc r0 Goon1:inc r1cjne r3, #0ffh, Goon2inc r2 Goon2:inc r3djnz r7, Loopljmp $End 7、实验结果及说明1、执行到 mov r0, #20h 的结果: 说明:实现对数据存储区 2000h2168hRAM 都赋相同一个数值 20h。 2、执行到 ljmp $的结果:说明:5000h 开头的存储区域执行程序之前的内容是 FFh,执行程序之后变为 20h,与 2000h20ffh 的内容完全相同,说明程序实现了数据区传送。