c51蜂鸣器实验报告.docxVIP

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
c51蜂鸣器实验报告   实验一   一、实验题目:试编写一段程序,其功能为将21H单元的内容8位分别依次存放到从22H开始的8单元中。   二、keil代码:   org0000h   jmpstart   org0100h   start:   mov21h,#8;   movA,21h;取出21中的数   movR0,#22h;初始化   movR1,#7h;循环次数为7   loop:   RRCA;把A之中的最低位移到C   JCreal;判断C里面是数是否为1,如果是1.则跳转到realmov@R0,#0h   jmpkk;   real:   mov@R0,#1h;如果是1,则将1赋到R0单元里   kk:   INCr0;依次判断A中的每一位   DJNZR1,loop;   jmp$;死循环   end   三、实验截图:   四、实验小结:   这是我们单片机的第一个实验,因为刚接触,所以会感觉很陌生,内心有一种畏惧感,看到题目的时候也是没有头绪,可以说完全是不知道到底题目是一个什么意思,更是不知道我们应该如何编写程序。不过后面通过老师的讲解,自己也去查看了一些有关的书籍,慢慢也理解了该如何去实现这种实验题目。   在认真琢磨之后,我开始学会像以前刚开始学习C语言一样慢慢绘制一个程序的流程图,理清思绪,然后根据流程图编写相应的代码。   下面是本题的实验流程图:   通过完成这个实验,我对单片机的程序有了很大的认识。实验中,也是深刻的理解到了一个单片机程序每一步的实现与运行。当然,也掌握了在keil中调试的方法。   实验二   一、实验题目:若0-5号键的键值分别是:EEH、DEH、BEH、7EH、   EDH、DDH。设键值存放在内部RAM20H单元中,编程实现根据2OH中的键值分别使程序转移到PR0-PR4程序段。要求当以上程序段的功能完成后,都采用RET指令,指定返回到程序的初始入口START标号处。   要求:PR0:教材75页习题。   PR1:同上习题9题   PR2:同上习题10   其余入口,只需完成空操作就返回。   二、keil代码:   org0000   ljmpstart   org0100   TAB:DB0EEH,0DEH,0BEH,7EH,0EDH,0DDH   start:   movdptr,#start   pushdpl   pushdph   movA,#0EEH   MOV20H,A   MOVDPTR,#TAB   MOVA,#0   NEXT:   PUSHACC;先保存A寄存器中的值   MOVCA,@A+DPTR;A是键码表的编码;置键码表首址;表的起始位置的偏移量为零   CJNEA,20H,NEXT1   POPACC   RLA;将20H值和键码表的值比较;如相等,序号乘以2,得到分支表内偏移量2n   MOVDPTR,#APJ   JMP@A+DPTR   PRn指令   NEXT1:   POPACC   INCA   CJNEA,#6,NEXT;表示如果==6了,说明编码查完了也没有相等的,程序直接结束   SJMP$   APJ:   AJMPPR0   AJMPPR1   AJMPPR2   AJMPPR3   AJMPPR4;不相等,则比较下一个;置分支表首址;执行表JPT+2H中的AJMP   1实验要求   在实验板上编程实现XX年日历和实时时钟:   1.时-分-秒显示   可通过键盘置入时间值(参照电子表设置时间工作模式)。   2.可通过按键控制在LED上从右向左滚动显示年_月_日3次,如:   XX_01_20空空XX_01_20   3.实现每日闹铃提醒功能,闹铃时间可用按键设置。闹铃采用提示音   表示。   4.实现秒表功能。   5.实现定时器功能。   选通信号产生电路图:   图   数码管位选择原理:   1.输出位选信号指令:   MOVA,#SELECT;SELECT为位选信号对应的数值   MOVDPTR,#8000H   MOV@DPTR,A   2.电路实现原理:   在指令“MOVDPTR,#8000H”中,8000H代表外部存   储器的地址,对应于A15=1,Ai=0(i=0~14)。由图可知,此时74138译码器有效,由A=B=C=0,得:AJ00=0,AJ0i=1。有由于执行指令“MOV@DPTR,A”时,/WR=0,因此,由图可知74HC573有效,它将D0~D7信号保持并输入ULN2803,信号经过放大后,作为位选信号驱动8位数码管。   数码管段选择原理:   1.输出段选信号指令:   LJMPSTART   ORG000BH   INC20H;中断服务,中断计数器加1MOVTH

文档评论(0)

a888118a + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档