单片机定时问题:亮100ms、灭300ms
扫描二维码
随时随地手机看文章
6MHz晶振,用定时计数器1,采用中断方式,通过P1.0让一个发光二极管亮100ms、灭300ms,周而复始。
汇编编程实现。
最佳答案:
;下列程序,经过编译、仿真,符合要求:
ORG 0000H
SJMP START
ORG 000BH
SJMP T0_INT
START:
MOV TMOD, #01H
MOV TH0, #03CH
MOV TL0, #0B0H ;100ms@6MHz
SETB TR0
SETB ET0
SETB EA
MOV R2, #4
CLR P1.0
SJMP $ ;设置结束,原地转移,等待中断
T0_INT:
MOV TH0, #03CH
MOV TL0, #0B0H ;100ms@6MHz
SETB P1.0 ;100ms就上升为高电平
DJNZ R2, T0_END ;不够四次,退出中断
MOV R2, #4
CLR P1.0 ;每中断四次,输出一次低电平
T0_END:
RETI
END
;----------------------------------