子程序调用流水灯

        ORG 0000H
        AJMP MAIN
        // 定时0.5s //
delay:  MOV TMOD,#01H    //定时器T0模式1定时
     MOV  TCON,#0             //溢出位清零
     MOV  R7,#10               // 循环次数
NEXT: MOV  TL0,#0b0h             //载入初值 一次50ms
     MOV   TH0,#3ch
     SETB  TR0                 //启动定时器t0
LOOP: JNB TF0,LOOP              //等待定时器溢出位置1,定时时间到
     CLR  TF0                //清除溢出位
     CLR  TR0                  //关闭定时器
     DJNZ  R7,NEXT            //判定循环次数
     RET                      //返回子程序
MAIN:  MOV  A,#0FEH  
     MOV  P2,A      
       MOV  R6,#7
     LCALL  delay           //掉用子程序
CYCLE: RL  A              //循环左移
     MOV  P2,A 
     LCALL  delay
     DJNZ  R6,CYCLE
     SJMP  MAIN
     END
 
posted @ 2019-04-27 18:18  搬瓦匠  阅读(189)  评论(0编辑  收藏  举报