利用MCS-51的定时器0,工作于方式1,采用中断方式由P1.7输出周期为10S,占空比为6:4的方波。晶振6MHZ。

要求完整程序,带解释说明。谢谢

第1个回答  2012-06-07
ORG 000H
LJMP START
ORG 0BH
LJMP INT_T0
ORG 0100H
START: MOV TMOD,#01H
MOV TH0,#3CH ; 定时100mS
MOV TL0,#0B0H
MOV R7,#10
MOV R6,#0
SETB TR0
SETB ET0
SETB EA
SJMP $
INT_T0: MOV TH0,#3CH ; 定时100mS
MOV TL0,#0B0H
DJNZ R7,T0_END
MOV R7,#10 ; 定时1S
INC R6
CJNE R6,#6,T0_1
CLR P1.7 ; 定时6S
SJMP T0_END
T0_1: CJNE R6,#10,T0_END
MOV R6,#0 ; 定时10S, 归0
SETB P1.7
T0_END: RETI追问

MOV TH0,#3CH 3CH 从何而来
MOV TL0,#0B0H 0B0H呢

追答

定时中断时间设定为100ms。定时器T0,工作于定时方式1,晶振6MHZ,据此可计算出定时初值为3CB0H。

追问

占空比为6:4 是说明高电平和低电平之比吗?和下面有区别吗?
在一串理想的脉冲周期序列中(如方波),正脉冲的持续时间与脉冲总周期的比值。   例如:脉冲宽度1μs,信号周期4μs的脉冲序列占空比为0.25。

追答

本题中6:4 是高电平和低电平之比。占空比的严格定义是指正脉冲的持续时间与脉冲总周期的比值。

追问

INT_T0中 DJNZ R7,T0_END 不等于0 跳转到最后一步 T0_END RETI 是返回到
INT_T0这吗?

追答

RETI 返回断点处继续运行后面的程序。本题主RETI返回到主程序SJMP $指令处。

本回答被提问者采纳