51单片机5个例程修改实验报告课件.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
MCS-51单片机实验报告 专业:通信工程 指导老师: 学号: 姓名: 1-1. 实验要求 :修改例程一的源程序 (1)将 A寄存器的初值改为 80H(正逻辑,数据位为 1 表示发光二极管点亮) , 再对源程序进行简单修改,使程序运行后发光二极管点亮情况与修改前相同。 (2)将 LED向左循环移位点亮改为向右循环移位点亮。 (3)加快 LED循环移位点亮的速度。 实验过程:针对三个小问题,分别有以下实验方法: (1)对 A赋值 80H,然后对 A取反可达到原始点亮情况。 (2)改变 A内位移数据的方向。 (3)减少调用 DELAY函数的次数。 原程序: MOV A,#0FFH ; 清除挂接在总线上的数码管的显示内容 MOV DPTR,#00H MOVX @DPTR,A MOV A,#07FH ; 赋初始值并在发光二极管上显示该数值 MOV P1,A LOOP: CALL DELAY CALL DELAY RR A ;A 寄存器内容右移 1 位并送发光二极管显示 MOV P1,A AJMP LOOP ; 无限循环 DELAY: MOV R5,#0H ; 延时子程序 D1: MOV R6,#0H DJNZ R6,$ DJNZ R5,D1 RET END 最终程序: $include (C8051F020.inc) INIT: LCALL Init_Device MOV A,#080H CPL A MOV P3,A LOOP: CALL DELAY CALL DELAY CALL DELAY CALL DELAY RL A MOV P3,A AJMP LOOP DELAY: MOV R5,#0H D1: MOV R6,#00H DJNZ R6,$ DJNZ R5,D1 RET $include (Init_Device.inc) END 1-2. 实验要求 :将例程二 0-F 的循环显示改为 0-9 的循环显示 实验过程:减少了数字显示, 修改循环语句中归零判定语句的判定值即可 原程序: ORG 0000H LJMP INIT TAB: DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H ; 字符段码表 0-7 DB 080H,090H,088H,083H,0C6H,0A1H,086H,08EH ; 字符段码表 8-F INIT: MOV A,#0FFH ; 清除挂接在总线上的数码管的显示内容 MOV DPTR,#00H MOVX @DPTR,A MOV R1,#00H ; 操作数据初始值 MOV A,R1 MAIN: MOV DPTR,#TAB ; 读取与 A 中数值对应的显示段码 MOVC A,@A+DPTR MOV P1,A ; 段码送并行口 1 显示 CALL DELAY CALL DELAY CALL DELAY CALL DELAY CALL DELAY INC R1 ; 操作数据 (R1) 增 1 MOV A,R1 CJNE A,#10H,MAIN ; 检查操作数据是否大于显示范围( F) SJMP INIT ; 无限循环 DELAY: MOV R5,#0H ; 延时子程序 D1: MOV R6,#0H DJNZ R6,$ DJNZ R5,D1 RET END 最终程序: $include (C8051F020.inc) ORG 0000H LJMP INIT TAB: DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H DB 080H,090H INIT: LCALL Init_Device INIT1: MOV R1,#00H MOV A,R1 MAIN: MOV DPTR,#TAB MOVC A,@A+DPTR MOV P5,A CALL DELAY CALL DELAY CALL DELAY CALL DELAY CALL DELAY CALL DELAY INC R1 MOV A,R1 CJNE A,#0AH,MAIN SJMP INIT1 DELAY: MOV R5,#0H D1: MOV R6,#0H DJNZ R6,$ DJNZ R5,D1 RET $include (Init_Device.inc) END 2-1 实验要求 :通过对例程 5 的程序进行修改和上机调试, 改变原程序的功能。 (1) 将 Key2.Key4 功能对调, (2) 每次停下再启动时,更改发光二极管循环点亮的方向 实验过程: (1)将序中的中断部分 EX1与EX0对调即可; (2)在每次点亮前进行点亮方向判定,即加入一个循环。 原程序: ORG 0000H LJMP INITIAL ; 主程序入口 ORG 0003H LJMP STAR ; 外中断 0 服务程

文档评论(0)

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

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

1亿VIP精品文档

相关文档