找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1299|回复: 3
打印 上一主题 下一主题
收起左侧

汇编:51单片机模块化软件延时

[复制链接]
跳转到指定楼层
楼主
ID:644357 发表于 2022-7-12 22:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  1. ORG 0000H
  2.                 PUSH PSW
  3.                 PUSH ACC
  4.                 PUSH B

  5.                 LCALL DELAY1US
  6.                
  7.                 POP PSW
  8.                 POP ACC
  9.                 POP B
  10.                 RET
  11.                
  12. DELAY1US:        NOP
  13.                         RET
  14.                         
  15. DELAY100US:        PUSH R7
  16.                         MOV R7,#100
  17.         LOOP:        NOP
  18.                         DJNZ R7,LOOP
  19.                         POP R7
  20.                         RET
  21.                         
  22. DELAY1MS:        PUSH R7
  23.                         PUSH R6
  24.                         MOV R6,#10
  25.         LOOP1:        MOV R7,#100
  26.                         NOP
  27.         LOOP2:        DJNZ R6,LOOP2
  28.                         DJNZ R7,LOOP1
  29.                         POP R6
  30.                         POP R7
  31.                         RET
  32.                         
复制代码
有错的地方,欢迎大家猛烈批评指正。

评分

参与人数 1黑币 +30 收起 理由
admin + 30 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

来自 2#
ID:123289 发表于 2022-7-28 11:35 | 只看该作者
51单片机中,R0-R7对应的RAM地址可以是00H-07H,也可以是08H-0FH,10H-17H,18H-1FH。
共4套方案,由PSW中的RS1、RS0选择决定,上电时RS1、RS0=00,所以默认R0-R7对应的地址是00H-07H。
PUSH R6,会让CPU无从选择哪一个地址的内容压入堆栈。
所以,51指令中没有 PUSH、POP R0-R7的指令。
PUSH R6 可以改为 PUSH 06H(默认状态下时)替代。

能看出这个问题的人,绝对极少。
回复

使用道具 举报

板凳
ID:163285 发表于 2022-7-13 15:36 | 只看该作者
1微秒估计悬,RET占2个周期。第一个设计为5微秒或10微秒比较合理。
回复

使用道具 举报

地板
ID:644357 发表于 2022-7-13 18:18 | 只看该作者
光说不练 发表于 2022-7-13 15:36
1微秒估计悬,RET占2个周期。第一个设计为5微秒或10微秒比较合理。

感谢大哥指教了,感激不尽
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表