標(biāo)題:
問個(gè)小白的單片機(jī)延時(shí)函數(shù)調(diào)用問題
[打印本頁]
作者:
zpy88
時(shí)間:
2017-3-25 11:32
標(biāo)題:
問個(gè)小白的單片機(jī)延時(shí)函數(shù)調(diào)用問題
用STC的軟件得到的延時(shí)程序:
void Delay100us() //@12.000MHz
{
unsigned char i, j;
i = 2;
j = 39;
do
{
while (--j);
} while (--i);
}
如何在后面的程序中實(shí)現(xiàn)調(diào)用次數(shù)。
現(xiàn)程序延時(shí)是100ms,如想延時(shí)1000和10000就應(yīng)分別調(diào)用10次和100次。如何實(shí)現(xiàn)。
直接Delay100us(10)是錯(cuò)誤的。
作者:
Mr.king
時(shí)間:
2017-3-25 18:23
直接delay(10000)就可以了吧,不過變量要int型的,65535之內(nèi)
作者:
天下大同
時(shí)間:
2017-3-25 18:31
我只知道用延時(shí)函數(shù)這種可以隨你輸入
#include<reg52.h>
#define PORT P1
typedef unsigned int u16;
void delay(u16 num)
{
unsigned int x,y;
for(x=num;x>0;x--)
for(y=110;y>0;y--);
}
void main(void)
{
PORT=0xff;
while(1)
{
PORT=0xfe;
delay(500);
}
}
作者:
bili
時(shí)間:
2017-3-25 19:13
可以用FOR 的方法,參考例子void delay2ms(unsigned char delay_counter) { unsigned char i,j; for(i=0;i<=delay_counter;i++) { for(j=0;j<249;j++) { _nop_(); _nop_(); } } }
作者:
zl2168
時(shí)間:
2017-3-25 19:19
設(shè)置形參,用實(shí)參調(diào)用。建議再學(xué)學(xué)c51基本感念。
作者:
wosiyabo
時(shí)間:
2017-3-25 19:35
哈哈~~你也在數(shù)碼之家注冊啦!
void Delayus(uint us) //@12.000MHz
{
while(us--)
{_nop_();
_nop_();
_nop_();
_nop_();}
}
作者:
zpy88
時(shí)間:
2017-4-9 21:52
謝謝各位解答,論壇審查時(shí)間太長,我都將這個(gè)問題忘了。已解決,用的和4樓類似的方案。
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1