#include
void delay(void)//延时函数
{
unsigned char i;
for(i=0; i<100; i++)
;
}
void main(void)
{
while(1)
{
//dosomething()
delay();
}
}
在Keil C51 环境下编译后,点击"调试"--"开始";在执行"视图"--"反汇编",可以看到延时函数对应的汇编代码。
#include
void delay(void)//延时函数
{
unsigned char i, j;
for(i=0; i<100; i++)
for(j=0; j<200; j++)
;
}
void main(void)
{
while(1)
{
//dosomething()
delay();
}
}
//函数名:delay_1ms(uint x)
//功能:利用定时器0精确定时1ms
//调用函数:
//输入参数:x,1ms计数
//输出参数:
//说明:延时的时间为1ms乘以x
void delay_1ms(uint x)
{
TMOD=0X01;//开定时器0,工作方式为1
TR0=1;//启动定时器0;
while(x--)
{
TH0=0Xfc;//定时1ms初值的高8位装入TH0
TL0=0X18;//定时1ms初值的低8位装入TL0
while(!TF0);//等待,直到TF0为1
TF0=0; //重置溢出位标志
}
TR0=0;//停止定时器0;
}
延时1s:delay_1ms(1000); //1000ms = 1s