设晶振频率为6MHz,试编制50 ms延时子程序
答案:1 悬赏:10 手机版
解决时间 2021-02-18 22:12
- 提问者网友:饥饿走向夜
- 2021-02-18 17:28
设晶振频率为6MHz,试编制50 ms延时子程序
最佳答案
- 五星知识达人网友:玩世
- 2021-02-18 18:51
很简单,把标准的12M晶振下的1ms延时程序改改就可以了。
下面是12MHz下的延时程序,
void delay1ms(int t)
{
int i,j;
for(i=0;i<t;i++)
for(j=0;j<120;j++) ;
}
而6MHz时,每个机器周期就变成了12MHz时的两倍,则现在的延时循环周期只要原来的一半即可,所以延时1ms的程序就是:
void delay1ms(int t)
{
int i,j;
for(i=0;i<t;i++)
for(j=0;j<60;j++) ;
}
你使用的时候只要在括号里填入你需要延时的毫秒数就可以,比如
delay1ms(50);
就是延时50ms,当然你要延时100ms,10ms都行,任意都行,只要不超过65535(int型的数字上限)。
如果你要非常精密的定式,就得用定时器了,这东西不是一两句话说得完的,你自己去看单片机书,
初值可以告诉你,9E58
下面是12MHz下的延时程序,
void delay1ms(int t)
{
int i,j;
for(i=0;i<t;i++)
for(j=0;j<120;j++) ;
}
而6MHz时,每个机器周期就变成了12MHz时的两倍,则现在的延时循环周期只要原来的一半即可,所以延时1ms的程序就是:
void delay1ms(int t)
{
int i,j;
for(i=0;i<t;i++)
for(j=0;j<60;j++) ;
}
你使用的时候只要在括号里填入你需要延时的毫秒数就可以,比如
delay1ms(50);
就是延时50ms,当然你要延时100ms,10ms都行,任意都行,只要不超过65535(int型的数字上限)。
如果你要非常精密的定式,就得用定时器了,这东西不是一两句话说得完的,你自己去看单片机书,
初值可以告诉你,9E58
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯