文档库 最新最全的文档下载
当前位置:文档库 › 发光二极管循环点亮

发光二极管循环点亮

例7-2 在P1.7端接一个发光二极管LED,要求利用定时控制使LED亮一秒灭一秒周而复始,
设fosc=6MHZ。
解: 16位定时最大为 *2us=131.072ms,显然不能满足要求,可用以下两种方法解决
方法1: 采用T0产生周期为200ms脉冲,即P1.0每100ms取反一次作为T1的计数脉冲,T1对
下降沿计数,因此T1计5个脉冲正好100ms。
T0采用方式1,
ORG 0000H
MAIN:CLR P1.7
SETB P1.0
MOV TMOD,#61H
MOV TH1,#0FBH
MOV TL1,#0FBH
SETB TR1
LOOP1:CPL P1.7
LOOP2:MOV TH0,#3CH
MOV TL0,#0B0H
SETB TR0
LOOP3: JBC TF0,LOOP4
SJMP LOOP3
LOOP4:CPL P1.0
JBC TF1,LOOP1
AJMP LOOP2
END
方法2:T0每隔100ms中断一次,利用软件对T0的中断次数进行计数,中断10次即
实现了1秒的定时。

MAIN:CLR P1.7
SETB P1.0
MOV TMOD,#61H
MOV TH1,#0FBH
MOV TL1,#0FBH
SETB TR1
LOOP1:CPL P1.7
LOOP2:MOV TH0,#3CH
MOV TL0,#0B0H
SETB TR0
LOOP3: JBC TF0,LOOP4
SJMP LOOP3
LOOP4:CPL P1.0
JBC TF1,LOOP1
AJMP LOOP2
END
方法2:T0每隔100ms中断一次,利用软件对T0的中断次数进行计数,
中断10次即实现了1秒的定时。
ORG 000BH ;T0中断服务程序入口
AJMP IP0
ORG 0030H ;主程序开始
MAIN:CLR P1.7 ;T0定时100ms
MOV TMOD,#01H
MOV TH0,#3CH
MOV TL0,#0B0H
SETB ET0
SETB EA
MOV R4,#0AH;中断10次计数
SETB TR0
SJMP $ ;等待中断
IP0:DJNZ R4,RET0;
MOV R4,#0AH
CPL P1.7
RET0:MOV TH0,#3CH
MOV TL0,#0B0H
SETB TR0
RETI

相关文档
相关文档 最新文档