分支程序设计实验单片机第二次试验.docx

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
分支程序设计实验 - 单片机第二次试验 ———————————————————————————————— 作者 : ———————————————————————————————— 日期: 一、任务要求 1. 设有8 bits 符号数 X 存于外部 RAM单元,按以下方式计算后的结果 Y 也存于外部 RAM单元,请按要求编写程序。 X 2 当 X 40 YX/2 当20 X 40 X 当 X 20 . 利用 51 系列单片机设计一个 24 小时制电子时钟 , 电子时钟的时、分、秒数值分别通过 P0、P1、 P2 端口输出(以压缩B CD码的形式 ) 。 P3.0为低电平时开始计时,为高电平时停止计时。 提高部分(选做) : . 实现 4 位十进制加、 减 1 计数,千位、百位由 P1 口输出; 十位、 个位由 P2 口输出。利用 P3.7 状态选择加、减计数方式。 b. 利用P 3 口低四位状态控制开始和停止计数,控制方式自定。 ? 二、设计思路 ? 1. 将 8bits 符号数从外部 RA M单元取出至 A 中,符号位为 1 的时候为负数 , 进行取反运算;当符号位为 0 的时候为正数,因此将 A 与 20 进行比较 , 当 A ≤20 时跳至取反运算那一步 ; 当 A20 时将 A 与 40 进行比较,如果当A≥ 40时则对其进行 平方运算那一步 , 当 A40 时则进行除法运算那一步。 每次算完之后直接储存, 最后再分配储 存于外部 RA M单元的指定位置。 2. 清零 R0~ R2 和 P0~ P2, 开始先判断控制位 P3.0 是不是 0,当 P3.0 =1 时原地踏 步重复判断 , 当P 3. 0= 0 时开始运行程序。 计时开始, 进行秒钟R 0 计数,每次计数完成用 BCD码子程序转换,然后判断计数后 R0值是否到60,若R0的值不足 60,就直接输出给 2,若 R0 的值为 60, 就把 R0 和P 2 进行清零后 , 开始分钟计数部分。同理,每次分钟计数 完之后用 BCD码子程序转换,然后判断计数后R1 的值是否为6 0,若不为 60,就直接输出 给 P1, 若 R1 的值为 60, 就把R 1 和P 1 清零后开始时钟计数部分。时钟计数完后同样用 BCD 码子程序转换 , 然后判断计数后的 R2 的值是否为 24, 若不为2 4, 就直接输出给P 0,若 R2为 24, 就把R 2 和 P0 清零后直接跳出计数部分 , 从判断P 3. 0部分再开始 . 每两次计数输出之间穿插一个 1s 的延时程序。就可以达到时钟的功能。 三、资源分配 分支程序 : 数据指针 D PTR: 对片外 RAM进行读写操作 2000H: 存放 8bit s符号数 X 201 0H: 存放结果 Y(取反后的数 , 或者平方后的高 8 位,或者除法后 的商) 2011H: 存放结果Y ( 平方后的低 8 位 , 或者除法后的余数) 2. 时钟程序: R0 、R1、 R2: 分别进行秒钟 , 分钟,时钟的计数 P2 、 P1、 P0: 分别输出秒钟 , 分钟,时钟 P3.0: 是否计数的控制位 3、 R4、 R5: 为 1s 延时程序指定循环次数 B : BCD码转换子程序的操作数 四、流程图 1? .分支程序流程图 : 时钟程序的流程图: 五、源代码 ( 含文件头说明、语句行注释) 分支程序代码如下 : O RG 0000H SJMPSTA R T? STA  RT:  MOV  DP  T R, #20  0 0H ?  M O V  A, #  3 1 ?? MOVX ? MOV  @DPTR, A ; B, 0 ; M OVX A,@ DPTR? JNB ACC . 7, C OMP1  存数 寄存器B清零 ; 从 R0中取出数 x ; 判断符号位 , 符号位为  0 时转到 COMP1 LP3:  C PL  A ?  ?;  对 x 取反 SJMP  ST ORE COMP1:  C JNE  A, #20, C  OMP2 ? ;  A≠ 20 时, 转到C OMP2 SJMP  LP3  ? ;  A=20 时, 转到L P3取反 COMP2:  JC  L P 3  ?  ;C= 1, A20, 转到  LP3 取反 C JNE  A,  #4 0,C O MP3  ;C=0, A20.当  A≠ 40  时,转到 COM P3 LP1:  MO V  B, A  ?? ;A= 4 0 时,给B赋值为  A MUL  AB?  ?;计算  x 平方 SJMP  STORE COM P3: J

文档评论(0)

150****2023 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档