模板单片机实验范文.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 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)

w3388825 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档