打印

单片机编程问题

[复制链接]
919|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
gxgclg|  楼主 | 2012-3-29 18:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求语句解析:
ORG 000H
LJMP MAIN
ORG 0030H
MAIN:MOV SP,#60H
LOP:MOV A,#7FH
LOOP:MOV P1,A
  MOV R7,#08H;重点求解
  LCALL DELAY
  RR A
  DJNZ R7,LOOP;重点求解
  MOV A,#0FEH
LOOP1:MOV P1,A
  MOV R7,#08H
  LCALL DELAY
  RL A
  DJNZ R7,LOOP1
SJMP LOP
DELAY:MOV R5,#10;重点求解对象,特别是延时程序时间的算法
DELAY1:MOV R6,#200
DELAY2:MOV R7,#123
DELAY3:DJNZ R7,DELAY3
  DJNZ R6,DELAY2
  DJNZ R5,DELAY1
  RET
END

相关帖子

沙发
dfsa| | 2012-3-29 18:58 | 只看该作者
ORG 000H 程序入口地址000H
LJMP MAIN 跳转到MAIN代码段
ORG 0030H 程序地址0030H
MAIN:MOV SP,#60H MAIN:堆栈指针设为#60H
LOP:MOV A,#7FH LOP:立即数寻址,使A寄存器的值为60H
LOOP:MOV P1,A LOOP:将寄存器A的值给P1

使用特权

评论回复
板凳
dfsa| | 2012-3-29 18:58 | 只看该作者
MOV R7,#08H;重点求解 将立即数08H给R7寄存器
  LCALL DELAY 调用DELAY延时代码
  RR A 向右循环移动A寄存器的值
  DJNZ R7,LOOP;重点求解 R7自减,如果不为零,则跳到LOOP继续执行,就是个循环操作
  MOV A,#0FEH 将0FEH给A寄存器
LOOP1:MOV P1,A LOOP1:将A的值给P1

使用特权

评论回复
地板
dfsa| | 2012-3-29 18:59 | 只看该作者
MOV R7,#08H 将08H给R7
  LCALL DELAY 调用DELAY
  RL A A向左移位
  DJNZ R7,LOOP1 R7自减,不为零就继续LOOP1
SJMP LOP 跳转到LOP
DELAY:MOV R5,#10; DELAY:R5赋10   
DELAY1:MOV R6,#200 DELAY1:R6赋200
DELAY2:MOV R7,#123 DELAY2: R7赋123
DELAY3:DJNZ R7,DELAY3 DELAY3:R7自减,不为零跳到DELAY3
  DJNZ R6,DELAY2 R6自减,不为零跳到DELAY2
  DJNZ R5,DELAY1 R5自减,不为零跳到DELAY1
  RET 退出delay
END 程序结束

使用特权

评论回复
5
czdo2008| | 2012-3-31 13:59 | 只看该作者
:L楼主初学者吧!!!先翻翻书啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

177

主题

1653

帖子

1

粉丝