分支与循环程序设计实验解读.docxVIP

  1. 1、本文档共22页,可阅读全部内容。
  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文档。上传文档
查看更多
分支与循环程序设计实验解读

实验名称 分支与循环程序设计实验 成 绩 任务要求1. 设有8bits符号数X存于外部RAM单元,按以下方式计算后的结果Y也存于外部RAM单元,请按要求编写完整程序。利用51系列单片机设计一个24小时制电子时钟,电子时钟的时、分、秒数值分别通过P0、P1、P2端口输出(以压缩BCD码的形式)。P3.0为低电平时开始计时,为高电平时停止计时。设计1s延时子程序(延时误差小于10us,晶振频率12MHz)。提高部分(选做):1)实现4位十进制加、减1计数,千位、百位由P1口输出;十位、个位由P2口输出。利用P3.7状态选择加、减计数方式。2)利用P3口低四位状态控制开始和停止计数,控制方式自定。 设计思路任务一:机器内存入的数默认为无符号数,所以应该先判断正负性。对于8位有符号数,则范围是-128到127。如果是负数则直接归到取反区间;如果是正数,则使用两次比较转移指令,并根据CY的值进行区分,最后得出结果。任务二:判断控制位P3.0是否为0,当P3.0=1时原地踏步重复判断,当P3.0=0时开始计时。计时开始,计时采用多重循环嵌套最内层是秒钟计时,然后是分钟计时,最后是时钟计时。先通过一个延时1s的子程序,每运行一次延时子程序秒钟加1,并通过CJNE指令判断是否等于60,等于60则进入分钟计数并将秒钟清零,否则继续循环计时。当分钟数为60时则向时钟进位,并将分钟数清零。当时钟数为24时,则重新开始计时。任务三(提高部分):先通过检查P3口低四位的状态来控制是否计数,存在高电平则不计数。再检查P3.7端口状态来选择计数模式。加1计数时采用INC A和DA A 指令实现十进制加1计数。减1计数采用与-1(BCD码形式)补码相加即99H相加实现十进制减1计数。其中每计数一次延时1s。资源分配任务一:3000H: 8bit符号数; 3001H:平方低位、商、取反 ;3002H:平方高位、余数任务二:P0:显示小时;P1:显示分钟;P2:显示秒钟;P3.0:时钟开关; R4、R5、R3:存放循环次数任务三(提高部分):P1:显示千位和百位;P2:显示十位和个位;P3:控制计数; R4、R5、R3:存放延时程序中的循环次数流程图 任务一:任务二:任务三(提高部分):五、源代码 (含文件头说明、语句行注释)任务一:File name: text1.asmDescription: 分支程序Source used: 3000H: 8bit符号数 3001H:平方低位、商、取反3002H:平方高位、余数MAIN:MOVDPTR,#3000H;指针赋值,8位有符号数地址MOVXA,@DPTR;3000H取数JNBACC.7,L1;不为负数转L1COMP1:CPLA;取反SJMPSAVE;L1:CJNEA,#10,L2;不等于10转L2SJMPCOMP1;L2:JCCOMP1;小于10转COMP1CJNEA,#64,L3 ;大于10不等于64转L3COMP2:MOVB,A;MULAB;求平方SJMPSAVE;L3:JNCCOMP2;大于64转COMP2MOVB,#2 ;DIVAB ;除以2SAVE:INCDPTR;MOVX@DPTR,A;3001H存:平方低位、商、取反INCDPTR;MOVA,B;MOVX@DPTR,A;3002H存:平方高位、余数END任务二:File name: text2.asmDescription: 电子时钟Source used: P0:显示小时、P1:显示分钟、P2:显示秒钟R4、R5、R3:存放循环次数ORG 0000HLJMP MAINORG 0200HMAIN: MOV P0,#23H;时钟初始值MOV P1,#58H ;分钟初始值MOV P2,#30H ;秒钟初始值JISHU: JB P3.0,JISHU ;P3.0引脚低电平开始计时ACALL DLY ;进入延时1s子程序MOV A,P2ADD A,#1DA AMOV P2,ACJNE A,#60H,JISHU;判断是否达到60sMOV P2,#0;秒钟清零MOV A,P1ADD A,#1DA AMOV P1,A CJNE A,#60H,JISHU;判断是否达到60minMOV P1,#0;分钟清零MOV A,P0 ADD A,#1 DA AMOV P0,A CJNE A,#24H,JISHU;判断是否达到24hMOV P0,#0;时钟清零SJMP JISHU DLY:MOV R4,#46 ;延时一秒程序L3:MOV R5,#152L1:MOV R3,#70L2:DJNZ R3,L2DJNZ R5,L1DJNZ R4,L3RETEND任务三(

文档评论(0)

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

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

1亿VIP精品文档

相关文档