- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
单片机实验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 存储块移动
一.实验目的
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
文档评论(0)