100秒是长延时,要四重循环才可以,给你一个6M XT,10S的延时程序
DEL: MOV R5,#100
DEL0:MOV R6,#200
DEL1:MOV R7,#248
DEL2:DJNZ R7,DEL2
DJNZ R6,DEL1
DJNZ R5,DEL0
RET
程序再加重循环就可以改成100秒的了,或连续调用10本程序也可
用C语言写的话,时间不好估计,你在调试时通过改变实参的值可以更改时间的长度,如果将RAM不当数的话,可以更改数据类型.时间可延得更长,不过我提醒你,长时间延时最好别这样做,利用中断吧.如100ms中断一次,计数器Rn加1,再检测Rn到某值时R(n+1)再加1计算一下就可以了.
void delay(int x)
{
uchar j;
while(x--){
for(j=0;j<150;j++)
{;}
}
}
04-05-27 10:21