专注电子技术学习与研究
当前位置:单片机教程网 >> MCU设计实例 >> 浏览文章

用汇编语言实现单片机的循环灯控制

作者:huqin   来源:本站原创   点击数:  更新时间:2014年04月21日   【字体:
Protues模拟图:
程序:
         ORG           0000H
         LJMP          MAIN

         ORG           0100H
MAIN:    MOV           SP,#60H
         MOV           A,#01H        ;先让第一个发光二极管亮
LOOP:    MOV           P2,A          ;从P2口输出到发光二极管
         LCALL         DELAY         ;延时1秒
         RL            A             ;左移一位,下一个发光二极管亮
         SJMP          LOOP          ;循环

DELAY:   MOV           R0,#10        ;延时0.5秒子程序,使用参数R0、R7、R6。
DELY0:   MOV           R7,#100          
DELY1:   MOV           R6,#250       
         DJNZ          R6,$
         DJNZ          R7,DELY1
         DJNZ          R0,DELY0
         RET

         END           
补充
CPU的时序及有关概念
时序是表达指令执行各控制信号在时间上的相互关系。时序是用定时单位来说明的,89C51单片机的时序定   时单位共有4个,从大到小依次是:拍、状态、机器周期、指令周期,下面依次说明:
1.拍(P):把振荡脉冲的周期称为拍,用P表示。它就是晶体的振荡周期,或是外部振荡脉冲的周期,拍是89C51单片机中最小的时序单位。
2.状态或时钟周期(S):振荡脉冲经过二分频后,就得到单片机的时钟信号,把时钟信号的周期称为状态,用S表示。一个状态包含两个拍,分别称为P1和P2,或者前拍和后拍。时钟周期是单片机最基本的时间单位,在一个时钟周期内,CPU仅完成一个最基本的动作。
3.机器周期:通常把CPU完成一个基本操作所需要的时间称为机器周期。一个机器周期由6个状态(或12拍)组成,可依次表示为S1P1,S1P2,S2P1,S2P2,…,S6P1,S6P2。
当振荡频率为12MHz时,一个机器周期为1us;当振荡脉冲频率为6MHz时,一个机器周期为2us。
4.指令周期:指令周期就是一条指令所需要的时间。指令周期是89C51单片机中最大的时序单位,一般由若干个机器周期组成。指令不同,所需要的机器周期数也不同,但一条指令的周期应在1~4个机器周期范围内。

延时时间为250*10*100*2*1us=0.5s
关闭窗口

相关文章

阅读排行
推荐文章