单片机实验报告解析.docx

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机实验报告解析

实验一实验题目:试编写一段程序,其功能为将21H单元的内容8位分别依次存放到从22H开始的8单元中。keil代码:org 0000hjmp startorg 0100hstart:mov 21h,#8;mov A ,21h;取出21中的数mov R0,#22h ;初始化mov R1,#7h ;循环次数为7loop: RRC A;把A之中的最低位移到C JC real;判断C里面是数是否为1,如果是1.则跳转到realmov @R0,#0hjmpkk;real:mov @R0,#1h;如果是1,则将1赋到R0单元里kk:INC r0;依次判断A中的每一位DJNZ R1,loop;jmp $;死循环end实验截图:实验小结:这是我们单片机的第一个实验,因为刚接触,所以会感觉很陌生,内心有一种畏惧感,看到题目的时候也是没有头绪,可以说完全是不知道到底题目是一个什么意思,更是不知道我们应该如何编写程序。不过后面通过老师的讲解,自己也去查看了一些有关的书籍,慢慢也理解了该如何去实现这种实验题目。在认真琢磨之后,我开始学会像以前刚开始学习C语言一样慢慢绘制一个程序的流程图,理清思绪,然后根据流程图编写相应的代码。下面是本题的实验流程图:通过完成这个实验,我对单片机的程序有了很大的认识。实验中,也是深刻的理解到了一个单片机程序每一步的实现与运行。当然,也掌握了在keil中调试的方法。实验二实验题目:若0-5号键的键值分别是:EEH、DEH、BEH、7EH、EDH、DDH。设键值存放在内部RAM 20H单元中,编程实现根据2OH中的键值分别使程序转移到PR0-PR4程序段。要求当以上程序段的功能完成后,都采用RET指令,指定返回到程序的初始入口START标号处。要求:PR0 :教材75页习题。PR1 :同上习题9题PR2:同上习题10其余入口,只需完成空操作就返回。keil代码:org 0000 ljmp startorg 0100TAB: DB 0EEH,0DEH,0BEH,7EH,0EDH,0DDHstart:movdptr ,#startpushdplpushdphmov A,#0EEHMOV 20H,AMOV DPTR ,#TAB;置键码表首址MOV A,#0 ;表的起始位置的偏移量为零NEXT:PUSH ACC;先保存A寄存器中的值MOVC A,@A+DPTR ;A是键码表的编码CJNE A,20H,NEXT1 ;将20H值和键码表的值比较POP ACCRL A ;如相等,序号乘以2,得到分支表内偏移量2n(8位变16位)MOV DPTR,#APJ ;置分支表首址JMP @A+DPTR ;执行表JPT+2H中的AJMP PRn指令NEXT1:POP ACC;不相等,则比较下一个INC ACJNE A,#6,NEXT;表示如果==6了,说明编码查完了也没有相等的,程序直接结束SJMP $APJ:AJMP PR0AJMP PR1AJMP PR2AJMP PR3AJMP PR4PR0: MOV R7,#5HMOV 3DH,#00HMOV 3EH,#20HMOV 4EH,#88HMOV 5EH,#98HMOV A,#0MOV R4,A ;正数个数MOV R5,A ;负数个数MOV R6,A ;零的个数MOV R0,#40HMOV R1,#50HMOV SP,#3FHLOOP:POP ACCJZ ZEROJB ACC.7,FSINC R4MOV @R0,AINC R0AJMP DJFS:INC R5MOV @R1,AINC R1AJMP DJZERO:INC R6DJ:DJNZ R7,LOOPRETDATA1:DB 0EFH,3FH,3EH,07HPR1: MOV R7,#03H;进行3次循环MOV R0,#DATA1MOV A,@R0CPL A;取反ADD A,#01 ;加1MOV @R0,AAB1:INC R0MOV A,@R0CPL AADDC A,#0 ;带进位DJNZ R7,AB1;SJMP $RETBUF1:DB 1111B,0101B,0010B,0100B,0101B,0010B,0001B,0000B,1001B,0000B,1010B,1011B,0000B,0011B,0010B,0001BBUF2:DB 0BUF:DB 0PR2:;30h放平均值 40h放余数MOV R0,#BUF1 MOV R7,#16 ;循环16次数MOV B,#0MOV A,@R0MOV R2,ALOOP1:MOV A,R2INC R0ADD A,@R0MOV R2,AMOV A,BADDC A,#0MOV B,ADJNZ R7,LOOP1MOV R6,#04HMOV 30H,#BUF2MOV 30

文档评论(0)

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

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

1亿VIP精品文档

相关文档