time0() interrupt 1 using 0
{
TH0=0x3CTLO=0xB0
P1_0=~P1_0
}
main()
{
TMOD=0x01TH0=0x3CTLO=0xB0
//12MHz下,50ms定时所对应的初值
EA=1ET0=1TRO=1
while(1)
{
}
}
8盏LED灯循环点亮,间隔时间为50ms,你能分辨不?还是给你改为间隔时间为1s,用定时器延时子程序实现
org 0000h
jmp start
org 0030h
start:
mov A,#0FEH
mov R2,#8
LOOP1: mov p1,A 左边4个LED每隔1S亮1个。从P1.0到P1.7。
call delay1s 调用定时1s程序
RL A
djnz R2,LOOP1
jmp start
delay1s:
mov r7,#20
lpr7: call delay50ms
djnz r7,lpr7
ret
delay50ms:
mov TMOD,#01H
mov TH0,#(65536-50000)/256
mov TL0,#(65536-50000) mod 256
setb TR0
jnb TF0,$
clr TF0
ret
jmp $
end
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)