单片机汇编语言程序设计实验报告

单片机汇编语言程序设计实验报告

ID:35956333

大小:420.11 KB

页数:24页

时间:2019-04-28

单片机汇编语言程序设计实验报告_第1页
单片机汇编语言程序设计实验报告_第2页
单片机汇编语言程序设计实验报告_第3页
单片机汇编语言程序设计实验报告_第4页
单片机汇编语言程序设计实验报告_第5页
资源描述:

《单片机汇编语言程序设计实验报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、单片机实验1汇编语言程序设计实验----存储器块赋值一.实验目的1熟悉存储器的读写方法,熟悉51汇编语言结构。2熟悉循环结构程序的编写。3熟悉编程环境和程序的调试。二.实验内容指定存储器中某块的起始地址和长度,要求将其内容赋值。例如将4000H开始的100个字节内容清零或全部赋值为33H(参考程序),要求根据参考程序修改:修改程序,赋值内容为(10,9,8,7,6,5,4,3,2,1。)三.实验仪器微机、VW,WAVE6000编程环境软件,(单片机实验箱)仿真器--仿真器设置-选择仿真器Lab8000/Lab6000通用微控制器选择仿真头MCS51实验选择8051CPU前3个软件实验

2、勾选√使用伟福软件模拟器四实验步骤注意:1文件不要用中文名称保存时不要用中文路径(目录),不要放在“桌面”上,源文件和工程要放在同一个文件夹下,文件名称和路径名称不要太长。2查看存储器菜单使用:窗口---数据窗口---XDATA观察存储器内容3查看SFR:窗口---CPU窗口查看CPU寄存器SFR4单步执行:执行---单步执行(F8),每执行一步,查看每条语句涉及到的寄存器和存储器内容的变化结果,是否是指令所要得到的结果,如不是,检查错误原因,修改。5利用多种执行方法和观察各种窗口调试程序,直至程序满意为止。编译器默认设置:程序框图参考例程序:Blockequ4000hmovdptr,#B

3、lock;movr0,#10;mova,#33h;Loop:movx@dptr,aincdptr;djnzr0,Loop;ljmp$;end起始地址清10个字节将33H赋值给a将a写入外部RAM指向下一个地址记数减一$当前程序指针相当于一直执行自己;ljmp$说明:$:是当前语句的程序指针(地址)相当于一直执行自己:ljmp$,程序死循环要求赋值数据为10,9,8,7,6,5,4,3,2,1则以上程序该如何改动修改后的程序:?自己修改程序实现。Blockequ4000hmovdptr,#Block;movr0,#10;mova,#0ah;起始地址清10个字节将0ah赋值给aL

4、oop:movx@dptr,aincdptr;deca;adjnzr0,Loop;ljmp$;end;将a写入外部RAM指向下一个地址值减一记数减一$当前程序指针相当于一直执行自己;ljmp$单片机实验2存储块移动一.实验目的1熟悉51汇编语言程序结构。2熟悉循环结构程序的编写,进一步熟悉指令系统。3熟悉编程环境和程序的调试。二.实验内容将指定源地址(3000H)和长度(10字节)的存储块移动到目的地址(3050H)。需要先对3000H开始的源数据块赋值为10,9,8.......1。三.实验仪器微机、WAVE6000软件,(单片机实验箱)微机、VW,WAVE6000编程环境软件,(单

5、片机实验箱)仿真器--仿真器设置-选择仿真器Lab8000/Lab6000通用微控制器选择仿真头MCS51实验选择8051CPU注意:在编程环境中,可以通过软件仿真,观察程单片机运行情况。四实验步骤参考程序与流程图参考程序移动3000H-->3050H,10字节由于源地址和目的地址的内容都一样(FF),调试时看不到内容的变化,所以需要给源地址内容赋值。如要求赋值内容为10,9,8,7,6,5,4,3,2,1。有多种赋值方式,如以下两种分别独立完成:1在搬移循环体内赋值一个搬移一个,请在参考程序1的?处补充程序2循环体外赋值,先全部赋值再搬移,请在参考程序2的?处添加赋值程序。参考程序1

6、movr0,#30hmovr1,#00hmovr2,#30hmovr3,#50hmovr7,#10Loop:movdph,r0;将dptr高八位给r0movdpl,r1;将dptr低八位给r1mova,r7;将r7的值赋给amovx@dptr,a;将a写入RAM/IO口movxa,@dptr;读外部RAM/IO口decr7;r7减一movdph,r2;将dptr高八位给r2movdpl,r3;将dptr低八位给r3movx@dptr,a;将a写入RAM/IO口incr1;r1加一incr3;r3加一djnzr7,Loop;计数减一ljmp$;$当前程序指针相当于一直执行自己;ljmp$参考程

7、序2movr0,#30hmovr1,#00hmovr2,#30hmovr3,#50hmovr7,#10Blockequ3000hMovdptr,#Block;起始地址movr4,#10;清10个字节mova,#0ah;将oah赋值给aNext:movx@dptr,a;将a写入RAM/IO口incdptr;指向下一个地址deca;a旳值减一djnzr4,Next;计数减一Loop:movdph,r0;将dptr

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。