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

单片机汇编语言程序设计实验报告
Lt
D
单片机实验1 汇编语言程序设计实验
---- 存储器块赋值
一.实验目的
1 熟悉存储器的读写方法,熟悉51汇编语言结构。
2 熟悉循环结构程序的编写。
3 熟悉编程环境和程序的调试。
二.实验内容
指定存储器中某块的起始地址和长度,要求将其内容赋值。例如将4000H 开始的100个字节内容清零或全部赋值为33H(参考程序),
要求根据参考程序修改:
修改程序,赋值内容为〔10,9,8,7,6,5,4,3,2,1。〕
三.实验仪器
微机、VW,WAVE6000编程环境软件,〔单片机实验箱〕
仿真器--仿真器设置-
选择仿真器选择仿真头选择CPU      Lab8000/Lab6000通用微控制器    MCS51实验      8051
前3个软件实验勾选√使用伟福软件模拟器
四实验步骤
注意:
1 文件不要用中文名称保存时不要用中文路径〔目录〕,不要放在“桌面〞上,源文件和工程要放在同一个文件夹下,文件名称和路径名称不要太长。
2 查看存储器菜单使用:窗口---数据窗口---XDATA 观察存储器内容
3 查看SFR:窗口---CPU窗口查看CPU存放器SFR
4 单步执行:执行---单步执行(F8),每执行一步,查看每条语句涉及到的存放器和存储器内容的变化结果,是否是指令所要得到的结果,如不是,检查错误原因,修改。
5利用多种执行方法和观察各种窗口调试程序,直至程序满意为止。
编译器默认设置:
程序框图
参考例程序:
Block  equ  4000h
mov  dptr, #Block  ; 起始地址
mov  r0, #10    ; 清10个字节
mov  a, #33h    ; 将33H赋值给a
Loop:
movx  @dptr, a    将a写入外部RAM
inc  dptr    ; 指向下一个地址
djnz  r0, Loop  ; 记数减一
ljmp  $        ; $当前程序指针相当于一直执行自己;ljmp $
end
说明:
$:是当前语句的程序指针〔地址〕相当于一直执行自己:ljmp $,程序死循环
要求赋值数据为10,9,8,7,6,5,4,3,2,1
那么以上程序该如何改动? 自己修改程序实现。
修改后的程序:
Block  equ  4000h
mov  dptr, #Block  ; 起始地址
mov  r0, #10    ; 清10个字节
mov  a, #0ah    ;将0ah赋值给a
Loop:
movx  @dptr, a  ;将a写入外部RAM
inc  dptr    ; 指向下一个地址
dec a          ;a值减一
djnz  r0, Loop  ; 记数减一
ljmp  $      ; $当前程序指针相当于一直执行自己;ljmp $  end
单片机实验2  存储块移动
oah一.实验目的
1 熟悉51汇编语言程序结构。
2 熟悉循环结构程序的编写,进一步熟悉指令系统。
3 熟悉编程环境和程序的调试。
二.实验内容
将指定源地址〔3000H〕和长度〔10字节〕的存储块移动到目的地址〔3050H〕。需要先对3000H开始的源数据块赋值为10,9 , 8.......1。
三.实验仪器微机、WAVE6000软件,〔单片机实验箱〕
微机、VW,WAVE6000编程环境软件,〔单片机实验箱〕
仿真器--仿真器设置-
选择仿真器选择仿真头选择CPU      Lab8000/Lab6000通用微控制器    MCS51实验      8051
注意:在编程环境中,可以通过软件仿真,观察程单片机运行情况。
四实验步骤
参考程序与流程图
参考程序
移动3000H --> 3050H, 10字节
由于源地址和目的地址的内容都一样〔FF〕,调试时看不到内容的变化,所以需要给源地址内容赋值。如要求赋值内容为10,9,8,7,6,5,4,3,2,1。
有多种赋值方式,如以下两种分别独立完成:
1 在搬移循环体内赋值一个搬移一个,请在参考程序1的?处补充程序
2 循环体外赋值,先全部赋值再搬移,请在参考程序  2 的?处添加赋值程序。
参考程序1
mov r0, #30h
mov r1, #00h
mov r2, #30h
mov r3, #50h
mov r7, #10
Loop:
mov dph, r0 ;将dptr高八位给r0
mov dpl, r1 ;将dptr低八位给r1
mov a, r7 ;将r7的值赋给a
movx @dptr, a ;将a写入RAM/IO口
movx a, @dptr ;读外部RAM/IO口
dec r7 ;r7减一
mov dph, r2 ;将dptr高八位给r2
mov dpl, r3 ;将dptr低八位给r3
movx @dptr, a ;将a写入RAM/IO口
inc r1 ;r1加一
inc r3 ;r3加一
djnz r7, Loop ;计数减一
ljmp $ ; $当前程序指针相当于一直执行自己;ljmp $

本文发布于:2024-09-23 00:27:20,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/376937.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:程序   赋值   内容   实验   熟悉   软件
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议