久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7002|回復: 26
打印 上一主題 下一主題
收起左側

51單片機 里while(1)最多可以運行多長時間的命令?

  [復制鏈接]
跳轉到指定樓層
樓主
ID:475031 發表于 2021-7-18 19:18 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
51單片機 里while(1)最多可以運行多長時間的命令?
我做個小玩具,里面有很多步驟,通過實驗,程序并沒有全部運行完,
就返回第一條,每次都是這樣,一分鐘時間都不到,但我的程序步驟太多,運行完也得5分鐘樣子,,
這是為什么?
有沒有辦法把我的程序全部運行完。用的是89C52單片機。

感覺這是單片機短板,比如做一個無序燈光閃爍類,比如坐一首歌曲指揮動作控制類,時間太長,代碼太多,就完不成任務功能。。。

例子:

sbit LED1=P2^0;

sbit LED2=P2^1;
sbit LED3=P2^2;
sbit LED4=P2^3;
sbit LED5=P2^4;

void delay_ms(uint n)//11.0592M的晶振 delay_ms(1000);//1000ms毫秒=1s秒
{
uint i,j;
for(i=n;i>0;i--)
{
for(j=114;j>0;j--);
}
}



void main()
{
while(1)
{

LED1=1;
delay_ms(1000);
LED1=0;

LED2=1;
delay_ms(1000);
LED2=0;

LED3=1;
delay_ms(1000);
LED3=0;


LED4=1;
delay_ms(1000);
LED4=0;


LED5=1;
delay_ms(1000);
LED5=0;


LED1=1;
LED2=1;
LED3=1;
LED4=1;
LED5=1;
delay_ms(2000);
LED1=0;
LED2=0;
LED3=0;
LED4=0;
LED5=0;


LED1=1;
LED2=1;

delay_ms(2000);
LED1=0;
LED2=0;


LED3=1;
LED4=1;
LED5=1;

delay_ms(2000);
LED3=0;
LED4=0;
LED5=0;


暫寫這么多,
后面還有好幾百條命令,
無序無規律,
全部運行完,
估計得5分鐘樣子
........
........

}
}















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

使用道具 舉報

沙發
ID:377210 發表于 2021-7-18 21:55 | 只看該作者
按理說能燒錄進去就可以運行完的,除非你的程序有問題。還有,如果實際的代碼長延時也是像你的例子一樣的話,就要改了,應該用定時器做個時間基準,用一個變量或者標記在這個基準上計數/延時
回復

使用道具 舉報

板凳
ID:213173 發表于 2021-7-18 22:01 | 只看該作者
主循環while(1)運行周期多長時間沒有限制,“程序并沒有全部運行完,就返回第一條,每次都是這樣,一分鐘時間都不到” 那是因為你程序寫得太爛。單片機處理一條指令就幾微秒。難道你有上千萬條代碼?單片機也裝不下啊。
回復

使用道具 舉報

地板
ID:161164 發表于 2021-7-18 22:48 | 只看該作者
wulin 發表于 2021-7-18 22:01
主循環while(1)運行周期多長時間沒有限制,“程序并沒有全部運行完,就返回第一條,每次都是這樣,一分鐘時 ...

贊成!
程序寫得太爛+單片機裝不下
回復

使用道具 舉報

5#
ID:711539 發表于 2021-7-19 08:22 | 只看該作者
可以檢查一下是不是看門狗、復位引腳、復位軟指令、電源等導致系統復位了,然后程序看起來像“程序并沒有全部運行完,就返回第一條指令執行”了
還有,建議程序的延時不要寫成這樣。。。
回復

使用道具 舉報

6#
ID:879348 發表于 2021-7-19 08:27 | 只看該作者
不用擔心,可以運行幾百年
回復

使用道具 舉報

7#
ID:367934 發表于 2021-7-19 09:14 | 只看該作者
厲害一點的玩家已經不用delay去延時了。while(1)里面延時越多越浪費單片機資源。你這樣的寫法只是增加了代碼行數。
回復

使用道具 舉報

8#
ID:123289 發表于 2021-7-19 13:46 | 只看該作者
編程序是需要智商的。
架構程序遠比寫代碼重要。
一看見【delay_ms(2000)】就知道程序很蠢,優化的空間很大。
另外:while(1)是沒有運行時間限制的!!!

回復

使用道具 舉報

9#
ID:909204 發表于 2021-7-19 20:11 | 只看該作者
沒有限制的
回復

使用道具 舉報

10#
ID:950946 發表于 2021-7-20 11:53 | 只看該作者
死循環,沒有break不出來
回復

使用道具 舉報

11#
ID:931208 發表于 2021-7-20 11:54 | 只看該作者
while不是看括號里面是否為真運行的嗎,為1就歐克了啊,如果程序問題那就另說了
回復

使用道具 舉報

12#
ID:451718 發表于 2021-7-20 15:24 | 只看該作者
dwb123 發表于 2021-7-20 11:53
死循環,沒有break不出來

break出來之后呢? 去哪里,重新引導啟動么?
回復

使用道具 舉報

13#
ID:824490 發表于 2021-7-20 17:47 | 只看該作者
如要可以,會一直運行到地球毀滅。
回復

使用道具 舉報

14#
ID:933150 發表于 2021-7-21 00:02 | 只看該作者
只要你不斷電,一直都運行的
回復

使用道具 舉報

15#
ID:955021 發表于 2021-7-21 17:38 | 只看該作者
while是死循環,出不來的,好好檢查一下你的程序,是不是哪個地方有bug
回復

使用道具 舉報

16#
ID:415064 發表于 2021-7-22 14:56 | 只看該作者
你還是看下看門狗吧,理論來說,可以運行到mcu硬件損壞的
回復

使用道具 舉報

17#
ID:272269 發表于 2021-7-23 11:21 | 只看該作者
這樣的程序建議換成數組去執行
回復

使用道具 舉報

18#
ID:272269 發表于 2021-7-23 11:22 | 只看該作者
一來容易修改 和 查看
回復

使用道具 舉報

19#
ID:272269 發表于 2021-7-23 11:22 | 只看該作者
而來程序的可觀性大大增強
回復

使用道具 舉報

20#
ID:952752 發表于 2021-7-23 11:47 | 只看該作者
while(1)是沒有運行時間限制的
回復

使用道具 舉報

21#
ID:401462 發表于 2021-7-23 14:55 | 只看該作者
while循環里面是沒有時間限制的,應該程序跑飛或者是被中途打斷,重啟導致的,可以在線調試查找問題。
回復

使用道具 舉報

22#
ID:419909 發表于 2021-7-24 12:13 | 只看該作者
樓主.說句真話,別不開心.很久沒有看到這么牛的代碼了.
風涼話就不多說.目測樓主C語言明顯最最基礎都還沒過關.真的應該重新學一個C語言再玩單片機.不然再玩下去,就是從入門到放棄地.要多看別人的例程.按你這個寫法.一看就是人民幣玩家.豪!!!
題外話:單片機本身資源就少,要形成了跟它摳資源的習慣.按字節計.能省一點算一點.偶爾用點DELAY(1000)不傷大雅,盡最大可能復用函數.....云云.....

回復

使用道具 舉報

23#
ID:852300 發表于 2021-7-24 12:34 | 只看該作者
加幾個變量,運行能快幾億倍!
回復

使用道具 舉報

24#
ID:739610 發表于 2021-7-25 09:41 | 只看該作者
代碼一看,比較整齊 賞心悅目  52 的資源不是很多  多檢查一下程序吧 按你的說法程序的問題
回復

使用道具 舉報

25#
ID:869125 發表于 2021-7-25 09:52 | 只看該作者
按理說是可以全部運行的,但while(1)里面的內容不要放太多
回復

使用道具 舉報

26#
ID:88256 發表于 2021-7-25 10:08 | 只看該作者
編程思想的問題,單片機編程要學會“投機取巧”,不能死死板板的。
你這個程序是想編寫流水燈之類的?你可以看看別人做的流水燈可以跑多久才一個循環?再去看看直接讓單片機I/O驅動蜂鳴器播放音樂的程序,一首曲子有多長你也清楚,他們是怎么編寫的?
回復

使用道具 舉報

27#
ID:476415 發表于 2021-7-25 10:24 來自手機 | 只看該作者
沒有時間限制。估計是很新的新手啊,別氣餒,一步步來,會發現編程中提高性能和可靠性的方法的。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲一区二区网站 | 免费国产视频 | 91精品国产综合久久久久 | 国产一区二区三区免费视频 | 欧美一区二区 | av一二三区 | 在线观看午夜视频 | www.色.com | 亚洲成人激情在线观看 | 日韩欧美中文字幕在线观看 | 91国自产| 超碰97免费 | 国产成人a亚洲精品 | 福利影院在线看 | av中文在线观看 | 欧美精品一区二区免费 | aaaaa毛片| 天天干在线播放 | 国产91 在线播放 | 亚洲精品www. | 精品一区二区久久久久久久网精 | 精品96久久久久久中文字幕无 | 国产日韩精品视频 | 神马久久久久久久久久 | 91视频进入 | 粉嫩一区二区三区性色av | 一级特黄a大片 | 亚洲精品在线观看视频 | 国产91丝袜在线播放 | 国产一区二区日韩 | 国产一区二区三区在线视频 | 亚洲视频在线观看免费 | 日韩三级视频 | 中文字幕高清 | 亚洲欧美国产精品一区二区 | 精品免费视频一区二区 | 久久九 | 日韩精品在线网站 | 成人欧美一区二区 | 国产亚洲精品精品国产亚洲综合 | 五月天激情综合网 |