- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机实验报告
学院: 信 息 工 程
专业: 电子信息工程
班级: 2012154
学号: 201215421 201215417
姓名: 段郁丹 周瑞莉
实验一 存储器块清零
一、实验要求
1. 指定存储器中某块的起始地址和长度,要求能将其内容清零。
二、实验目的
1. 掌握存储器读写方法
2. 了解存储器的块操作方法
三、实验说明
通过本实验,学生可以了解单片机读写存储器的读写方法,同时也可以了解单片机编程,
调试方法。如何将存储器块的内容置成某固定值(例全填充为0FFH)? 请学生修改程序,完
成此操作。
程序框图
程序设计:
MOV DPTR,#1000H;
MOV B,#64H;
CLR A
LOOP:
MOVX @DPTR,A;
INC DPTR;
DJNZ B,LOOP;
LJMP $
END
遇到的问题及解决方法
问题:直接给存储器清零
解决方法:在给存储器赋值时只有一条语句即:MOVX @DPTR,A不存在MOVX @DPTR,#data所以要实现给存储器清零则需要首先将累加器A清零,然后通过A给存储器清零。
实验二 内存块移动
一、实验要求
将指定源地址和长度的存储块移到指定目标位置
二、实验目的
1.了解内存的移动方法。
2.加深对存储器读写的认识。
三、实验说明
块移动是计算机常用操作之一,多用于大量的数据复制和图象操作。本程序是给出起
始地址,用地址加一方法移动块,请思考给出块结束地址,用地址减一方法移动块的算法。
另外,若源块地址和目标块地址有重叠,该如何避免?
程序框图
程序:
MOV DPTR,#1000H;
MOV B,#64H;
MOV A,#09H
LOOP:
MOVX @DPTR,A;
INC DPTR;
DJNZ B,LOOP;
MOV R0,#10H
MOV R1,#00H
MOV R2,#30H
MOV R3,#00H
MOV B,#64H
LOOP1:
MOV DPH,R0
MOV DPL,R1
MOVX A,@DPTR
MOV DPH,R2
MOV DPL,R3
MOVX @DPTR,A
CJNE R1,#0FFH,Goon1
INC R0
Goon1:
INC R1
CJNE R3,#0FFH,Goon2
INC R2
Goon2:
INC R3
DJNZ B,LOOP1
LJMP $
END
遇到的问题及解决方法。
问题:使用一个8位寄存器,若移动的数据超出256个会出现数据丢失。
解决方法:如果是一个寄存器,如:INC R1一旦R1为0FFH再增加1后就会清零从新由1000H处移动数据而1100H后的数据就会丢失。所以增加一个8位寄存器后,依然如上例当R1加到0FFH后将高8位地址加1即R0为11H就实现了1100H后的数据移动。
硬件实验三 外部中断实验
一、实验要求
用单次脉冲申请中断,在中断处理程序中对输出信号进行反转。
二、实验目的
1、学习外部中断技术的基本使用方法。
2、学习中断处理程序的编程方法。
三、实验电路及连线
四、实验说实明
中断服务程序的关键是:
1.保护进入中断时的状态,并在退出中断之前恢复进入时的状态。
2.必须在中断程序中设定是否允许中断重入,即设置EXO位。
3.对于80C196,要选择相应的中断源,并设置中断屏蔽寄存器的相应位。
本例中使用了INTO中断(80C196为EXTINT 中断),一般中断程序进入时应保护PSW,
ACC以及中断程序使用但非其专用的寄存器。本例的中断程序保护了PSW,ACC等三个寄存
器并且在退出前恢复了这三个寄存器。另外中断程序中涉及到关键数据的设置时应关中断,
即设置时不允许重入。本例中没有涉及这种情
文档评论(0)