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

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

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 7428|回復(fù): 26
收起左側(cè)

51單片機(jī) 里while(1)最多可以運(yùn)行多長(zhǎng)時(shí)間的命令?

  [復(fù)制鏈接]
ID:475031 發(fā)表于 2021-7-18 19:18 | 顯示全部樓層 |閱讀模式
51單片機(jī) 里while(1)最多可以運(yùn)行多長(zhǎng)時(shí)間的命令?
我做個(gè)小玩具,里面有很多步驟,通過(guò)實(shí)驗(yàn),程序并沒(méi)有全部運(yùn)行完,
就返回第一條,每次都是這樣,一分鐘時(shí)間都不到,但我的程序步驟太多,運(yùn)行完也得5分鐘樣子,,
這是為什么?
有沒(méi)有辦法把我的程序全部運(yùn)行完。用的是89C52單片機(jī)。

感覺(jué)這是單片機(jī)短板,比如做一個(gè)無(wú)序燈光閃爍類(lèi),比如坐一首歌曲指揮動(dòng)作控制類(lèi),時(shí)間太長(zhǎng),代碼太多,就完不成任務(wù)功能。。。

例子:

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;


暫寫(xiě)這么多,
后面還有好幾百條命令,
無(wú)序無(wú)規(guī)律,
全部運(yùn)行完,
估計(jì)得5分鐘樣子
........
........

}
}















回復(fù)

使用道具 舉報(bào)

ID:377210 發(fā)表于 2021-7-18 21:55 | 顯示全部樓層
按理說(shuō)能燒錄進(jìn)去就可以運(yùn)行完的,除非你的程序有問(wèn)題。還有,如果實(shí)際的代碼長(zhǎng)延時(shí)也是像你的例子一樣的話(huà),就要改了,應(yīng)該用定時(shí)器做個(gè)時(shí)間基準(zhǔn),用一個(gè)變量或者標(biāo)記在這個(gè)基準(zhǔn)上計(jì)數(shù)/延時(shí)
回復(fù)

使用道具 舉報(bào)

ID:213173 發(fā)表于 2021-7-18 22:01 | 顯示全部樓層
主循環(huán)while(1)運(yùn)行周期多長(zhǎng)時(shí)間沒(méi)有限制,“程序并沒(méi)有全部運(yùn)行完,就返回第一條,每次都是這樣,一分鐘時(shí)間都不到” 那是因?yàn)槟愠绦驅(qū)懙锰珷。單片機(jī)處理一條指令就幾微秒。難道你有上千萬(wàn)條代碼?單片機(jī)也裝不下啊。
回復(fù)

使用道具 舉報(bào)

ID:161164 發(fā)表于 2021-7-18 22:48 | 顯示全部樓層
wulin 發(fā)表于 2021-7-18 22:01
主循環(huán)while(1)運(yùn)行周期多長(zhǎng)時(shí)間沒(méi)有限制,“程序并沒(méi)有全部運(yùn)行完,就返回第一條,每次都是這樣,一分鐘時(shí) ...

贊成!
程序?qū)懙锰珷+單片機(jī)裝不下
回復(fù)

使用道具 舉報(bào)

ID:711539 發(fā)表于 2021-7-19 08:22 | 顯示全部樓層
可以檢查一下是不是看門(mén)狗、復(fù)位引腳、復(fù)位軟指令、電源等導(dǎo)致系統(tǒng)復(fù)位了,然后程序看起來(lái)像“程序并沒(méi)有全部運(yùn)行完,就返回第一條指令執(zhí)行”了
還有,建議程序的延時(shí)不要寫(xiě)成這樣。。。
回復(fù)

使用道具 舉報(bào)

ID:879348 發(fā)表于 2021-7-19 08:27 | 顯示全部樓層
不用擔(dān)心,可以運(yùn)行幾百年
回復(fù)

使用道具 舉報(bào)

ID:367934 發(fā)表于 2021-7-19 09:14 | 顯示全部樓層
厲害一點(diǎn)的玩家已經(jīng)不用delay去延時(shí)了。while(1)里面延時(shí)越多越浪費(fèi)單片機(jī)資源。你這樣的寫(xiě)法只是增加了代碼行數(shù)。
回復(fù)

使用道具 舉報(bào)

ID:123289 發(fā)表于 2021-7-19 13:46 | 顯示全部樓層
編程序是需要智商的。
架構(gòu)程序遠(yuǎn)比寫(xiě)代碼重要。
一看見(jiàn)【delay_ms(2000)】就知道程序很蠢,優(yōu)化的空間很大。
另外:while(1)是沒(méi)有運(yùn)行時(shí)間限制的!!!

回復(fù)

使用道具 舉報(bào)

ID:909204 發(fā)表于 2021-7-19 20:11 | 顯示全部樓層
沒(méi)有限制的
回復(fù)

使用道具 舉報(bào)

ID:950946 發(fā)表于 2021-7-20 11:53 | 顯示全部樓層
死循環(huán),沒(méi)有break不出來(lái)
回復(fù)

使用道具 舉報(bào)

ID:931208 發(fā)表于 2021-7-20 11:54 | 顯示全部樓層
while不是看括號(hào)里面是否為真運(yùn)行的嗎,為1就歐克了啊,如果程序問(wèn)題那就另說(shuō)了
回復(fù)

使用道具 舉報(bào)

ID:451718 發(fā)表于 2021-7-20 15:24 | 顯示全部樓層
dwb123 發(fā)表于 2021-7-20 11:53
死循環(huán),沒(méi)有break不出來(lái)

break出來(lái)之后呢? 去哪里,重新引導(dǎo)啟動(dòng)么?
回復(fù)

使用道具 舉報(bào)

ID:824490 發(fā)表于 2021-7-20 17:47 | 顯示全部樓層
如要可以,會(huì)一直運(yùn)行到地球毀滅。
回復(fù)

使用道具 舉報(bào)

ID:933150 發(fā)表于 2021-7-21 00:02 | 顯示全部樓層
只要你不斷電,一直都運(yùn)行的
回復(fù)

使用道具 舉報(bào)

ID:955021 發(fā)表于 2021-7-21 17:38 | 顯示全部樓層
while是死循環(huán),出不來(lái)的,好好檢查一下你的程序,是不是哪個(gè)地方有bug
回復(fù)

使用道具 舉報(bào)

ID:415064 發(fā)表于 2021-7-22 14:56 | 顯示全部樓層
你還是看下看門(mén)狗吧,理論來(lái)說(shuō),可以運(yùn)行到mcu硬件損壞的
回復(fù)

使用道具 舉報(bào)

ID:272269 發(fā)表于 2021-7-23 11:21 | 顯示全部樓層
這樣的程序建議換成數(shù)組去執(zhí)行
回復(fù)

使用道具 舉報(bào)

ID:272269 發(fā)表于 2021-7-23 11:22 | 顯示全部樓層
一來(lái)容易修改 和 查看
回復(fù)

使用道具 舉報(bào)

ID:272269 發(fā)表于 2021-7-23 11:22 | 顯示全部樓層
而來(lái)程序的可觀性大大增強(qiáng)
回復(fù)

使用道具 舉報(bào)

ID:952752 發(fā)表于 2021-7-23 11:47 | 顯示全部樓層
while(1)是沒(méi)有運(yùn)行時(shí)間限制的
回復(fù)

使用道具 舉報(bào)

ID:401462 發(fā)表于 2021-7-23 14:55 | 顯示全部樓層
while循環(huán)里面是沒(méi)有時(shí)間限制的,應(yīng)該程序跑飛或者是被中途打斷,重啟導(dǎo)致的,可以在線調(diào)試查找問(wèn)題。
回復(fù)

使用道具 舉報(bào)

ID:419909 發(fā)表于 2021-7-24 12:13 | 顯示全部樓層
樓主.說(shuō)句真話(huà),別不開(kāi)心.很久沒(méi)有看到這么牛的代碼了.
風(fēng)涼話(huà)就不多說(shuō).目測(cè)樓主C語(yǔ)言明顯最最基礎(chǔ)都還沒(méi)過(guò)關(guān).真的應(yīng)該重新學(xué)一個(gè)C語(yǔ)言再玩單片機(jī).不然再玩下去,就是從入門(mén)到放棄地.要多看別人的例程.按你這個(gè)寫(xiě)法.一看就是人民幣玩家.豪!!!
題外話(huà):單片機(jī)本身資源就少,要形成了跟它摳資源的習(xí)慣.按字節(jié)計(jì).能省一點(diǎn)算一點(diǎn).偶爾用點(diǎn)DELAY(1000)不傷大雅,盡最大可能復(fù)用函數(shù).....云云.....

回復(fù)

使用道具 舉報(bào)

ID:852300 發(fā)表于 2021-7-24 12:34 | 顯示全部樓層
加幾個(gè)變量,運(yùn)行能快幾億倍!
回復(fù)

使用道具 舉報(bào)

ID:739610 發(fā)表于 2021-7-25 09:41 | 顯示全部樓層
代碼一看,比較整齊 賞心悅目  52 的資源不是很多  多檢查一下程序吧 按你的說(shuō)法程序的問(wèn)題
回復(fù)

使用道具 舉報(bào)

ID:869125 發(fā)表于 2021-7-25 09:52 | 顯示全部樓層
按理說(shuō)是可以全部運(yùn)行的,但while(1)里面的內(nèi)容不要放太多
回復(fù)

使用道具 舉報(bào)

ID:88256 發(fā)表于 2021-7-25 10:08 | 顯示全部樓層
編程思想的問(wèn)題,單片機(jī)編程要學(xué)會(huì)“投機(jī)取巧”,不能死死板板的。
你這個(gè)程序是想編寫(xiě)流水燈之類(lèi)的?你可以看看別人做的流水燈可以跑多久才一個(gè)循環(huán)?再去看看直接讓單片機(jī)I/O驅(qū)動(dòng)蜂鳴器播放音樂(lè)的程序,一首曲子有多長(zhǎng)你也清楚,他們是怎么編寫(xiě)的?
回復(fù)

使用道具 舉報(bào)

ID:476415 發(fā)表于 2021-7-25 10:24 來(lái)自觸屏版 | 顯示全部樓層
沒(méi)有時(shí)間限制。估計(jì)是很新的新手啊,別氣餒,一步步來(lái),會(huì)發(fā)現(xiàn)編程中提高性能和可靠性的方法的。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 两性午夜视频 | 精品国产乱码久久久 | 宅女噜噜66国产精品观看免费 | 午夜精品久久久久久久久久久久 | 欧美综合视频 | 亚洲国产精品一区二区三区 | 天天天操操操 | 午夜影院在线观看免费 | 亚洲色欧美另类 | 一区二区三区免费网站 | 伊人免费观看视频 | 亚洲欧美日韩久久 | 国产99久久精品一区二区永久免费 | 日韩精品一区二区三区中文字幕 | 亚洲欧美日韩中文字幕一区二区三区 | 欧美四虎| 欧美精品99| 看av网址 | 国产精品网址 | 日韩精品成人免费观看视频 | 日本精品在线一区 | 一级亚洲| 精品视频一区二区 | 日韩精品一区二区三区视频播放 | 在线色网 | 亚洲成人网在线观看 | 毛片com | 国产1区2区| 91高清在线观看 | 国产 亚洲 网红 主播 | 亚洲精品中文在线 | 香蕉久久久久久 | 日韩欧美一区二区三区四区 | 天天av天天好逼 | 黄色成人在线网站 | 亚洲日产精品 | 免费艹逼视频 | 精品国产一区久久 | 亚洲一区亚洲二区 | 高清免费在线 | 亚洲激情综合 |