详解此延时程序 最好有步骤算法void del10ms() { uint a,b; for(a=25;a!=0;a--) for(b=248;b!=0;b--); } vo
1个回答
展开全部
上述程序等价于:
Mov r7, #a; 单周期指令
Loop1: mov r6, #b 单周期质量
Loop2: djnz r6, loop2; djnz 双周期指令
Djnz r7, loop1,
所用周期为
T+a*T+a*b*2T+a*2T =12.476ms
给你一个10ms的
10ms延时子程序(12MHZ)
void delay10ms(void)
{
unsigned char i,j,k;
for(i=5;i>0;i--)
for(j=4;j>0;j--)
for(k=248;k>0;k--);
}
Mov r7, #a; 单周期指令
Loop1: mov r6, #b 单周期质量
Loop2: djnz r6, loop2; djnz 双周期指令
Djnz r7, loop1,
所用周期为
T+a*T+a*b*2T+a*2T =12.476ms
给你一个10ms的
10ms延时子程序(12MHZ)
void delay10ms(void)
{
unsigned char i,j,k;
for(i=5;i>0;i--)
for(j=4;j>0;j--)
for(k=248;k>0;k--);
}
追问
那c语言在51单片机中,那些指令执行的周期是多少呢??可不可以都列出来看看 谢谢啦
追答
太多了,你给个邮箱我发给你
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询