分析:闪烁周期为 1S ,亮、灭各占一半,定时时间需要 500mS 。使用 6MHZ 晶振,单片机最长定时时间仅为 131mS ,所以需要采用软件记数方法扩展定时时间。
使用定时 / 计数器 0 ,定时方式,工作方式 1 。
设置 TMOD 控制字: TMOD = 01H
使用 6MHZ 晶振,机器周期为 2 μ s ,设定时时间 100mS ,定时初值 3CB0H 。定时器溢出 5 次为 500mS 。
程序如下:
ORG 0140H
LED1 : MOV TMOD,#01H ;设置 T0 工作方式
SETB P1.0 ;输出初始状态
CLR P1.1
SETB TR0 ;启动定时器
LOOP0: MOV R2,#05H ;送软件计数初值
LOOP1: MOV TL0,#0B0H ;送定时常数
MOV TH0,#3CH
JBC TF0,$ ;循环等待定时时间到
DJNZ R2,LOOP1 ;软件计数 –1 ≠ 0 循环
XRL P1,#03H ; P1.0、P1.1 求反
SJMP LOOP0 ;循环