89c51单片机编写一段2分钟的延时程序

来源:百度知道 编辑:UC知道 时间:2024/07/08 13:12:54
明天要用的 拜托知道的高手快点写出来 先谢了哈

假设石英晶振频率为12MHZ,单片机为51
汇编:
delay:
mov r4, #10
dly0: mov r5, #120
dly1: mov r6, #200
dly2: mov r7, #250
dly3: djnz r7, dly3
djnz r6, dly2
djnz r5, dly1
djnz r4, dly0
ret

C51:
void delay()
{
TMOD=0x01;
unsigned int i=24000;
while(i--)
{
TH0=-(50000/256);
TL0=-(50000%256);
while(TF0==0);
TF0=0;
}
TR0=0;
}

对于12M的晶振来说,因为采用软件延时,时间约等于2S,如果想要精确的,就用定时器
DELAY: MOV R1,#40
D1: MOV R2,#100
D2: MOV R3,#250 ;2us*250约等于500us
DJNZ R3,$
DJNZ R2,D2 ;500us*100约等于50000us,约等于50ms
DJNZ R1,D1 ;50ms*40约等于2000ms,约等于2s
RET