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
|