ImageVerifierCode 换一换
格式:DOCX , 页数:7 ,大小:18.56KB ,
资源ID:14148264      下载积分:5 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-14148264.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机数据传送实验报告.docx)为本站会员(b****6)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

单片机数据传送实验报告.docx

1、单片机数据传送实验报告竭诚为您提供优质文档/双击可除单片机数据传送实验报告篇一:单片机数据传送实验报告实验名称:数据传送实验实验类型:设计性实验姓名:袁志生时间:04.17第五六节课一、实验目的与要求实验目的:1、掌握单片机的汇编指令系统及汇编语言程序设计方法。2、掌握单片机的存储器体系结构。3、熟悉keil软件的功能和使用方法。4、掌握单片机应用程序的调试方法。实验要求:1、实现单片机内部RAm之间,外部RAm之间以及内部RAm与外部RAm之间的数据传送。2、利用Keil软件编辑、汇编、调试、运行实验程序并记录实验数据。二、设计要求1、编写程序将00h0Fh16个数据分别送到单片机内部RAm

2、30h3Fh单元中。2、编写程序将片内RAm30h3Fh的内容传送至片内RAm404Fh单元中。3、编写程序将片内RAm40h4Fh单元中的内容传送到外部RAm4800h480Fh单元中。4、编写程序将片外4800h480Fh单元内容送到外部RAm5800h580Fh单元中。5、编写程序将片外RAm5800h580Fh单元内容传送回片内RAm50h5Fh单元中。三、实验程序流程框图和程序清单.程序清单:oRg0000hsTART:moVR0,#30hmoVDpTR,#Qw1moVR5,#0Loop:Qw1:Qw2:Loop1:Loop2:Loop3:R7,#16A,R5A,A+DpTRR0,A

3、R0IncR5R7,LoopQw200h,01h,02h,03h,04h,05h,06h,07h08h,09h,0Ah,0bh,0ch,0Dh,0eh,0FhR0,#30hR1,#40hmoVR5,#16A,R0R1,AR0R1R5,Loop1R1,#40hmoVDpTR,#4800hR5,#16A,R1DpTR,AR1DpTRR5,Loop2moVsp,#60h11h,#48h10h,#58hR2,#00hDpL,R210h11hDphmoVxA,DpTRmoVmoVmoVcmoVIncDJnZLJmpDbDbmoVmoVmoVmoVIncIncDJnZmoVmoVmoVmoVxIncInc

4、DJnZmoVmoVmoVmoVpushpushpoppopmoVxInccJnemoVmoVmoVLoop4:moVxmoVIncIncDJnZenD四,实验小结DphDpTR,AR2R2,#10h,Loop3R1,#50hDpTR,#5800hR5,#16A,DpTRR1,AR1DpTRR5,Loop41通过本次实验熟悉了keil软件的功能和使用方法.2掌握单片机的数据传送类和循环类汇编指令系统,学会了各种数据传送形式的程序设计方法.3掌握了单片机的调试方法。为以后的实验开了个好头.五、思考题1、说明mcs-51系列单片机对片内RAm和片外RAm存贮器各有哪些寻址方式?答:片内RAm寻址方

5、式有:寄存器寻址方式,直接寻址方式,寄存器间接寻址方式,位寻址方式,立即数寻址。片外RAm寻址方式:寄存器间接寻址。2、说明指令moVA,20h和moVc,20h中的20h含义有什么不同?传送指令中的助记符moV,moVx,moVc各适用于访问哪个存储器空间?答:(1)moVA,20h的含义是字节地址,moVc,20h的含义是位地址。(2)助记符moV适用于访问片内RAm,助记符moVx适用于访问外部RAm,助记符moVc适用于访问程序存储空间。篇二:单片机数据传送实验报告实验三数据传送实验报告实验目的1.进一步掌握程序的编辑、汇编及调试方法;2.掌握单片机内部RAm和外部RAm的数据操作;3

6、.了解单片机系统地址分配概念。实验器材1.2.3.4.g6w仿真器一台mcs51实验板一台pc机一台电源一台实验内容及要求1.以数据表格形式在Rom中建立一个含有正数和负数的表格,数据长度为16个字节,要求放置八个正数、八个负数,正、负数应离散随机放置,不允许三个以上同类型数据连续放置,数据的具体内容自行确定;2.编制程序,将数据表格中的数据读出并按正、负数归类,正数送入首地址为40h的内部RAm中;负数送入首地址为0b000h的外部RAm中;3.将首地址为0b000h的外部RAm中的数据取出并求其绝对值,然后送入内部RAm的48h4Fh单元。程序如下:oRg0000hAJmpmAInoRg0

7、060hmAIn:moVA,#10h;数据长度放入了累加器A中moVR1,#0b0h;负数所需送入的首地址高位放入R1moV20h,#00h;负数所需送入的首地址低位放入20h单元中moVR0,#40h;正数所需送入的首地址40h放到R0中去moVDpTR,#0A00h;将表格开始的位置放入DpTR;以上为初始化的全部内容pushDphpushDpLpushAsTART:popApopDpLpopDphpushA;将A压栈,保护里面存储的数据长度10hmoVA,#00hmoVcA,A+DpTR;读表头地址moV20h,AIncDpTR;DpTR指针加1,以读取表格中下一个数pushDph;为了

8、保护DpTR中存储的表格地址,压栈以便于放入0b000h,存储负数pushDpLJuDge:moVA,20hRLcAJcnegATIVe;opposITe:moVA,20hmoVR0,A;IncR0;popDpLpopDphpopADecA;pushDphpushDpLpushAJnZsTART;sJmpenD1;negATIVe:moVA,20hmoVDph,R1moVDpL,20hmoVxDpTR,AIncDpTR;0b000hmoV20h,DpLmoVR1,DphpopDpLpopDphpopADecApushDphpushDpLpushAJnZsTART;JmpnexT1nexT1:m

9、oVA,#08h;判断语句,标志位为1,转去n(负数);否则往下执行正数放入到以40h为首地址的单元中去进入下一个单元以存放下一个正数数据长度减一,代表已经读取了一个数如果数据长度不为0,表格还未读取完毕,返回sTART如果数据读取完毕,就跳去nexT1加1,下一个负数存储单元和正数相同负数的数据长度放入A中moVDpTR,#0b000h;负数现在存储位置放入DpTRnexT2:pushA;将A压栈,保护其中负数的数据长度moVxA,DpTR;读负数存储的首地址cpLA;取反IncA;加1moVR0,A;将第一个绝对值入到48h单元(这里其实写的并不是很好,如果正数和负数的绝对值存储位置并不相

10、连,就不可以用了)IncDpTR;地址加1,下一个负数位置IncR0;进入下一个存储单元popADecA;数据长度减1JnZnexT2;负数还没读完,继续sJmp$;负数全部转成绝对值存储,程序结束oRg0A00hTAbLe:Db0F0h,10h,80h,25hDb0b2h,0A4h,3(:单片机数据传送实验报告)0h,08hDb0D6h,54h,01h,8FhDb0c0h,27h,0cDh,09h运行结果:40h47h中内容为10h,25h,30h,08h,54h,01h,27h,09h48h4Fh中内容为10h,80h,5eh,5ch,2Ah,71h,50h,44h0b000h0b007h

11、中内容为0F0h,80h,0b2h,0A4h,0D6h,8Fh,0c0h,0cDh硬件部分:A15A12对应的选中芯片,因为b为1011,所以应该选中A14口连接到芯片cs,低电平有效,这样就成功选中芯片进行了扩展。经过实验结果可以看出,程序运行正确,基本完成了数据传送,达到了实验要求。实验框图调试过程中出现的问题及收获:1.刚开始写程序的时候对于正数负数的存储感觉上没有太大问题,但是不知道表格要怎么建立以及放到哪里去,只知道一条关于读取表格首地址的指令moVcA,A+DpTR,后来经过查找资料和互相讨论,掌握了建立表格的方法以及关于表格存放的位置moVDpTR,#0A00h;将表格开始的位置

12、放入DpTRoRg0A00hTAbLe:Db0F0h,10h,80h,25hDb0b2h,0A4h,30h,08hDb0D6h,54h,01h,8FhDb0c0h,27h,0cDh,09h2.调试过程中最主要的问题就是刚开始为了读取表格在DpTR中存了表格的首地址,但是后面存放负数的时候也要用到DpTR存放0b000h,这样势必会改变DpTR的内容两者不可兼得,但是又不知道还有什么其他工具可以使用,很是困惑(其实还是对于堆栈问题的理解不深刻)。后来深入理解使用堆栈之后这个问题就迎刃而解了,要向不改变其中的内容,将其压栈进行操作就好,累加器A也是这样,但是一定要注意程序结构的严密性,防止破坏指针

13、。pushA;将A压栈,保护里面存储的数据长度10hpushDph;为了保护DpTR中存储的表格地址,压栈以便于放入0b000h,存储负数pushDpLpushA;将A压栈,保护其中负数的数据长度。这次的使用让我真正意义上的了解到压栈的便利和使用方法,受益匪浅。3.其他一些小问题包括取绝对值要取反加1,刚开始忘了加1;对于硬件部分不理解,后来再三询问老师得到解答等等。实验小结本次实验让我们更加深入的了解了51单片机片内外RAsm的存储空间及其用途,联系了片内外RAm数据传送指令的使用。对于各种跳转指令的区别有了进一步的理解,压栈指令的频繁使用让我们明白了栈的重要性及实用性,希望通过本次的实验,

14、我们今后可以熟练运用数据传送方面的内容。篇三:单片机数据传送实验mAIn:moVR0,#30hmoVR2,#00hmoVR3,#10hLoop:moVA,R2;将RAm30h的地址送R0;将00h送到R2中;数据串长度;R2的内容送A;表首地址TAb1送到DpTR中;查表得数据;将累加器A;R2自加一;R0自加一;R3自减一,不等0转移;长转移到mAIn2moVDpTR,#TAb1moVcA,A+DpTRmoVR0,AIncR2IncR0DJnZR3,LoopLJmpmAIn2TAb1:Db0h,01h,02h,03h,04h,05h,06h,07h;数据表Db08h,09h,0Ah,0bh,

15、0ch,0Dh,0eh,0FhmAIn2:moVR0,#30h;数据串首地址送寄存器R0moVR1,#40h;内部RAm首地址30h送R1moVR7,#10h;最大数据串长Loop2:moVA,R0;取数据moVR1,A;数据传送IncR0;寄存器R0加1IncR1;寄存器R1加1DJnZR7,Loop2;循环控制mAIn3:moVR0,#40h;数据串首地址送寄存器R0moVDpTR,#4800h;外部RAm数据首地址送DpTRmoVR7,#10h;最大数据串长Loop3:moVA,R0;取数据moVxDpTR,A;数据传送IncR0;IncDpTR;DJnZR7,Loop3;循环控制mAI

16、n4:moVDpL,#00h;DpL初始化,4800h低8位地址送DpLmoVR7,#10h;最大数据串长Loop4:moVDph,#48h;4800h高8位地址送DphmoVxA,DpTR;取数据到累加器AmoVDph,#58h;5800h高8位地址送DphmoVxDpTR,A;将累加器A中的内容送到5800h中IncDpTR;DpTR加一转移DJnZR7,Loop4;循环控制mAIn5:moVDpTR,#5800h;5800h地址送DpTRmoVR0,#50h;50h地址送寄存器R0moVR7,#10h;最大数据串长Loop5:moVxA,DpTR;取数据moVR0,A;数据传送IncDpTR;DJnZR7,Loop5;循环控制enD结束结束实验数据

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2