找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 5105|回復(fù): 1
收起左側(cè)

六層電梯程序,你想看嗎?

[復(fù)制鏈接]
ID:46254 發(fā)表于 2013-4-28 12:34 | 顯示全部樓層 |閱讀模式
我算是一個(gè)比較喜歡多樣化生活的人吧,有寫六層電梯程序這個(gè)想法的時(shí)候是在去年的暑假,那個(gè)時(shí)候,剛剛用PLC做了四層電梯,感覺很HIGH,手一癢癢就想試著寫六層電梯試試看,但是六層電梯終歸比四層電梯復(fù)雜,之前做個(gè)一個(gè)計(jì)算,貌似五層及其以上的電梯程序就會跟四層及其以下的電梯程序區(qū)分開來。因?yàn)榈搅宋鍖拥臅r(shí)候就會有優(yōu)先級判斷,電梯運(yùn)行過程中還需要自鎖和互鎖。那個(gè)時(shí)候用PLC,但是終歸因?yàn)樽约合胂罅Σ粔蚱孑舛鴳K敗。后又想,如果用C寫的話肯定會比PLC容易好多了。結(jié)果就沒再怎么想,一頭扎進(jìn)了單片機(jī)創(chuàng)作中。 自從用單片機(jī)寫六層電梯,也是寫了好多遍了。我剛開始的想法是用數(shù)組存儲數(shù)據(jù),附加判斷,然后對數(shù)組內(nèi)數(shù)據(jù)做處理,后來仔細(xì)想了一下,覺得這樣做對于單片機(jī)來說工作量好大,仔細(xì)算下來,單片機(jī)的大部分時(shí)間都是在處理數(shù)組內(nèi)的數(shù)據(jù),而且這樣也比較麻煩。后來就這事兒在吃飯的時(shí)候問了毛毛,想讓他給提點(diǎn)兒什么比較好的建議。誰知道那丫比我還奇葩,給我想出了一個(gè)循環(huán)優(yōu)先級的方法。這個(gè)方法在當(dāng)時(shí)看來確實(shí)是無可挑剔,剩下的時(shí)間我就開始做。剛開始在開發(fā)板上實(shí)驗(yàn),但是開發(fā)板上的固件都是死的,用著很不方便,不過還好,勉強(qiáng)把程序?qū)懗鰜砹恕:髞碛肿隽藗€(gè)protues仿真,發(fā)現(xiàn)顯示竟然有問題。這個(gè)讓我很糾結(jié)。人家都說軟件仿真有誤差,不管你們信不信,我是信了。 前段時(shí)間有了時(shí)間和心情,自己做了個(gè)電路板,可恨的是買了個(gè)ISP下載線竟然死活下不進(jìn)程序,白白花了20大洋么?我覺得不至于吧,應(yīng)該還是硬件有點(diǎn)兒問題的。這樣沒辦法就只能用開發(fā)板上的單片機(jī)咯,每次調(diào)試的時(shí)候都要來來回回的拔下、插上、拔下、插上······其實(shí)我倒是不怕麻煩,關(guān)鍵是單片機(jī)引腳來來回回折騰這么幾次,差不多都廢了············ 調(diào)試好了程序在電路板上實(shí)驗(yàn),這個(gè)時(shí)候才發(fā)現(xiàn)當(dāng)初毛毛給我說的循環(huán)優(yōu)先級的方法有多大的問題了,按照他的想法,順時(shí)針循環(huán),電梯在運(yùn)行的時(shí)候,總是會先執(zhí)行高樓層數(shù)據(jù),低樓層數(shù)據(jù)在高樓層數(shù)據(jù)沒有處理完的時(shí)候是不會執(zhí)行。這樣來說問題就很大了呀。更郁悶的是有的時(shí)候電梯竟然會卡死不動(dòng)�?戳死习胩斐绦颍矐械谜疫@方面原因了。 然后,我就想在這個(gè)程序基礎(chǔ)上做一些改變,試試看能不能行的通。也就是在今天,也就是在一個(gè)小時(shí)以前,測試結(jié)果讓我狂喜之后淋了一盆狗血。 程序中我加了互鎖,這樣避免了之前的卡死。但是因?yàn)檫€是只是用了簡單的優(yōu)先級判斷(我用這個(gè)方法就是想試試這個(gè)方法到底行不行得通),程序在執(zhí)行過程中因?yàn)槌绦虻那昂笪恢糜胁町�,會�?dǎo)致電梯在運(yùn)行過程中有一個(gè)優(yōu)先級,這個(gè)是沒辦法避免的。記得之前用PLC做四層電梯和自動(dòng)洗衣機(jī)的時(shí)候也遇到過這種問題。如果不牽涉數(shù)據(jù)重組,這個(gè)還是很容易處理。但是六層電梯數(shù)據(jù)繁多,靠條換程序的位置是沒辦法來解決這個(gè)問題的。這個(gè)時(shí)候我的心情呢???唉~不知該怎么形容了。說不高心,但是總算用親身經(jīng)歷證明了五層及其一以上的電梯都需要用數(shù)組的方法來做了,簡單的與或非判斷行不通。但是你要說我高興???我心里還真的猶如打碎了五味瓶。 我總是用失敗來詮釋真理,我覺得這樣會讓我受益終生吧。不過任何事物都是有代價(jià),還好這個(gè)代價(jià)不大。 同時(shí)呢,為了那些個(gè)看官們的方便,也為了讓你們看到我真正的親身的教訓(xùn),經(jīng)過前思后想,覺得還是把源程序附上得好。再次警告那些個(gè)孩紙們:老夫我用m+n次的失敗告訴了你們,簡單的與或非優(yōu)先級判斷在六層電梯(抑或是五層及其以上電梯吧)上是行不通的。六層電梯還是需要數(shù)組存儲數(shù)據(jù)+判斷處理。如果孩紙你不信,那你也可以花上幾個(gè)小時(shí)或幾天或幾個(gè)月 來自己親身證實(shí)一下吧! 唉~撤了�。�! [upload=c,1-1.c]viewFile.asp?ID=1487[/upload]
回復(fù)

使用道具 舉報(bào)

ID:67404 發(fā)表于 2014-10-14 23:21 | 顯示全部樓層
最近正在學(xué)這個(gè),大神
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

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