找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 1768|回復(fù): 6
打印 上一主題 下一主題
收起左側(cè)

linxu下sdcc的蜂鳴器程序疑問

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:656911 發(fā)表于 2020-10-4 21:55 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
為什么沒有做循環(huán)語句繼電器還是循環(huán)吸合與斷開?

#include <8051.h>

__sbit __at 0x80 relay;

typedef unsigned int u16;

void delay(u16 i)
{
        while(i--);
}

int main()
{
        relay=1;
        delay(50000);
        relay=0;
        delay(50000);

        return 0;
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:342822 發(fā)表于 2020-10-5 00:59 | 只看該作者
仿真一下,沒有你說的“循環(huán)吸合與斷開”現(xiàn)象
回復(fù)

使用道具 舉報(bào)

板凳
ID:213173 發(fā)表于 2020-10-5 08:16 | 只看該作者
int main()
{
        relay=1;
        delay(50000);
        relay=0;
        delay(50000);       
        while(1);
}
回復(fù)

使用道具 舉報(bào)

地板
ID:164602 發(fā)表于 2020-10-5 08:49 | 只看該作者
第一:main函數(shù)不應(yīng)該有輸入、輸出的參數(shù)。應(yīng)該是:void main(void)
第二:雖然你沒有用到循環(huán)語句,但,main函數(shù)執(zhí)行完一次后,會(huì)繼續(xù)執(zhí)行下一次,這樣就“循環(huán)”了。如果你不想循環(huán),那么這樣:
int main()
{
        relay=1;
        delay(50000);
        relay=0;
        delay(50000);
        return 0;
        while(1);
}
回復(fù)

使用道具 舉報(bào)

5#
ID:656911 發(fā)表于 2020-10-5 11:04 | 只看該作者
taotie 發(fā)表于 2020-10-5 00:59
仿真一下,沒有你說的“循環(huán)吸合與斷開”現(xiàn)象

百度有相關(guān)的解答:
這是單片機(jī)自身決定的。有的單片機(jī)程序內(nèi)如果沒有循環(huán)程序,那它會(huì)從頭執(zhí)行到最后,然后返回最開始繼續(xù)執(zhí)行。一直重復(fù)。
而有的單片機(jī)再執(zhí)行一次之后,就會(huì)停止。
有的則是執(zhí)行完后可能會(huì)進(jìn)入無序運(yùn)行狀態(tài),就只不知道程序跑哪里去了!
所以,在寫單片機(jī)程序的時(shí)候,最好是加上while循環(huán),即便你的程序只運(yùn)行一次,也要在最后加上while(1);使其一直指向這個(gè)語句而不會(huì)出現(xiàn)誤操作。

實(shí)測(cè)keil5及sdcc對(duì)51、stm32、f103zet6不加while(1)main都會(huì)循環(huán)執(zhí)行
回復(fù)

使用道具 舉報(bào)

6#
ID:656911 發(fā)表于 2020-10-5 11:31 | 只看該作者
有的單片機(jī)程序內(nèi)如果沒有循環(huán)程序,會(huì)從頭執(zhí)行到最后然后返回最開始繼續(xù)執(zhí)行。在寫單片機(jī)程序的時(shí)候,最好是加上while循環(huán),即便你的程序只運(yùn)行一次,也要在最后加上while(1);使其一直指向這個(gè)語句而不會(huì)出現(xiàn)誤操作。實(shí)測(cè)keil5及sdcc編譯51、stm32、f103zet6 不加while(1)main都會(huì)循環(huán)執(zhí)行。
回復(fù)

使用道具 舉報(bào)

7#
ID:656911 發(fā)表于 2020-10-5 17:50 | 只看該作者
HC6800-ES-V2.0 發(fā)表于 2020-10-5 08:49
第一:main函數(shù)不應(yīng)該有輸入、輸出的參數(shù)。應(yīng)該是:void main(void)
第二:雖然你沒有用到循環(huán)語句,但,m ...

確實(shí)如此,感謝回復(fù)
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表