自己算一下啊,你要是用12M晶振的单片机,一个机器周期是1us,也就是说,你用DJNZ,每减1就延时1us,你想要多长时间,你就延时多少不就成了,
。C
include
unsigned int count=0;
main()
{
TMOD=0X01;
EA=1;
ET0=1;
TH0=(65536-50000)/256;TL0=(65536-50000)%256;
TR0=1;
while(1)
{
while(count<=10);
count=0;p1_1=~p1_1
}
}
T0()interrupt 1 using 1
{TH0=(65536-50000)/256;TL0=(65536-50000)%256;
count++;
}
.asm
org 00h
jmp start
start:
mov r1,100
D1: mov r2,20
D2: MOV R3,250
DJNZ R3,$
DJNZ R2,D2
DJNZ R1,D1
CPL P1.1
JMP START
以上都是1HZ程序,其它的就在这个基础上改吧。
以上程序直接复制是用不了,需要在环境里打一遍。
要是加分那就多加点,大晚上给你写的,费老劲了!