c51怎么写延时程序??
来源:百度知道 编辑:UC知道 时间:2024/06/10 10:56:19
c51怎么写延时程序??要怎么计算??
不是用定时器
不是用定时器
用汇编语句写循环,看每个指令的周期是多少
循环一次要多少个指令,加上前后的几个,就是总的延时
网上有关于这方面的讨论的帖子的
举个例子
延迟500uS
unsigned char i;
for(i=248;i>0;i--);
相当于
BUF: MOV R7,#0xF8 ;0xF8=248
DJNZ R7,BUF
第一条指令要用2个机器周期
第二条指令要用2个机器周期
2+2*248约等于500个机器周期
先在主函数声明一下:
void TIME(uint t);
子程序很简单:
void TIME(uint t)
{
while(--t);
}
单片机晶振为12MHZ,
如需“延时100ms”,将“t”赋值“50”
即 TIME(50);