收藏 分享(赏)

单片机存储器填充程序实验.docx

上传人:kpmy5893 文档编号:7707139 上传时间:2019-05-24 格式:DOCX 页数:4 大小:35.27KB
下载 相关 举报
单片机存储器填充程序实验.docx_第1页
第1页 / 共4页
单片机存储器填充程序实验.docx_第2页
第2页 / 共4页
单片机存储器填充程序实验.docx_第3页
第3页 / 共4页
单片机存储器填充程序实验.docx_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

1、实验一 单片机存储器填充程序实验目的1、了解单片机汇编语言程序的基本结构2、了解单片机汇编语言程序的设计和调试方法3、掌握几个的基本的传送类、控制类指令的使用方法实验仪器单片机开发板、万利仿真机、稳压电源、计算机实验原理1、 单片机存储器的结构51 系列单片机数据存储器分为内部直接寻址存储器(工作寄存器区,位寻址区) ,内部间接寻址存储器,外部存储器。如图 3-1 所示。图 3-1 单片机存储器结构2、 单片机内部存储器操作指令51 单片机内部将数据存储器划分成多个区域,每个区域用的存储器访问指令也不相同(操作码或操作数不同) 。a、内部直接寻址通用存储器访问指令MOV A ,40H ;将内部

2、直接寻址存储器中的 40H 单元内容复制到累加器 AMOV R2 ,30H ;将内部直接寻址存储器中的 40H 单元内容复制到寄存器 R2MOV 30H,40H ;将内部直接寻址存储器中的 40H 单元内容复制到 30HMOV A ,R0 ;将 R0 指向的内部直接寻址存储器的内容复制到累加器 APUSH ACC ;将累加器 A 的内容复制到堆栈栈顶POP ACC ;将堆栈指针 SP 指向的内部直接寻址存储器内容复制到 Ab、内部间接寻址通用存储器访问指令MOV A ,R0 ;将 R0 指向的内部间接寻址存储器的内容复制到累加器 AMOV A ,R0 ;将累加器 A 的内容复制到 R0 指向的

3、内部间接寻址存储器PUSH ACC ;将累加器 A 的内容复制到系统堆栈栈顶POP ACC ;将堆栈指针 SP 指向的内部间接寻址存储器内容复制到 A00H-07FH0000H-0FFFFH外部数据存储器,需要扩展,有些单片在内部扩展一部分80H0FFH直接寻址区,用于特殊功能,有很多没有用80H0FFH间接寻址区,保存一般数据,52 单片机内部有高 128B存储器通用存储器30H-7FH位寻址寄存器20H-2FH工作寄存器00H-1FHc、内部位寻址区存储器访问指令MOV C ,00H ;位寻址区的 00H 位内容复制到 C 标志MOV 01H,C ;将 C 标志内容复制到位寻址区的 00H

4、3、 单片机外部数据存储器操作指令MOVX A ,DPTR ;将 DPTR 指向的外部存储器的内容复制到累加器 AMOVX DPTR ,A ;将累加器 A 的内容复制到由 DPTR 指向的外部存储器实验内容1、单片机内部 RAM 填充程序把单片机片内 30H 开始的 2N 单元全部清零(这里的 N 是学号最后两位) 。流程图如图 3-2 所示。ORG 0LJMP STARTORG 100START:MOV A,#00H ;填充的内容MOV R0,#30H ;填充的区域的首地址MOV R7,#32 ;填充的区域的字节数RamClear:MOV R0,A ;填充数据INC R0 ;下一单元DJNZ

5、 R7,RamClear ;没有完成,则返回SJMP $ ;填充完成2、采用输入参数的方式设计的程序ORG 0LJMP STARTORG 100START:MOV A,#00HMOV R0,#30HMOV R7,#32LCALL RamClearSJMP $-3;-;RAM 区域填充;输入:A:填充内容,R7:填充字节数,R0: 填充指针(加计数);输出:无;-RamClear:MOV R0,AINC R0DJNZ R7,RamClearRET实验结果开始装备输入参数填充一字节指向下一字节完成?完成,退出图 3-2 区域填充程序流程图YN实验内容 1运行前数据:运行后数据:实验内容 2:运行前

6、数据:运行后数据:实验思考题1、说明 MOV、MOVX、MOVC 三条指令的区别。答:它们取值位置不同,MOV 指令表示单片机内部的寄存器或者存储器之间相互传递数据;而 MOVX 则表示单片机内部的累加器 A 与片外的数据存储器传送数据;MOVC 指令是表示累加器去 A 向 ROM 读取数据。2、如果要在单片机内部填充 N 个双字节数,请写出相关程序?答:ORG 0LJMP STARTORG 100START:MOV A,#00HMOV R0,#30HMOV R7,# NLCALL Fill2NdMOV R0,#30HMOV R7,# NFill2Nd :MOV R0,A ;低 8 位INC R0MOV R0,B ;高 8 位DJNZ R7,Fill2NdRET实验调试与心得本次实验是我做的第一个单片机实验,通过本次实验我掌握万利软件的基本使用,还有万利仿真机的应用。由于我之前有自学单片机,所以做起实验也比较得心应手,但是在调试实验内容 2 过程中还是存在一些问题,当我把程序下载到仿真机中后,点击全速运行,此时 IData 中的单元全部都被清零,后来通过逐步运行发现当 LCALL RamClear SJMP$-3 执行一遍则 30H50H 的单元全部清零,执行第二遍时 IData 中的单元全部清零了。通过本次实验也让我掌握对一些小程序的调试。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报