本帖最后由 慢慢思考 于 2018-1-8 20:45 編輯
單片機(jī)這東西,它是人設(shè)計出來的,而人設(shè)計出來的東西,必然是根據(jù)人的實際需要來設(shè)計,所以,我們可以從“需要”來從頭理解,也就是先從“知道它能做什么”開始學(xué)習(xí),然后再學(xué)習(xí)“怎么讓它做到”,之后如果你有興趣,你可以去學(xué)習(xí)“它是如何做到的”,猶如汽車,我們知道它能裝著你在路上跑,然后你再學(xué)習(xí)如何操作這東西在路上跑,至于它為什么能在路上跑,你需不需要知道,那要看你的需要。 比如說流水燈吧,我們知道燈要亮就必須給它加上電即一頭接高電位一頭接低電位,要它滅就必須斷開電(嚴(yán)格說是讓兩頭的電位一致),沒有其它方法的。實現(xiàn)它的基本電路,就是燈加開關(guān)加電源,一個燈上一個開關(guān),8個燈就接8個開關(guān),然后順序操作各個開關(guān)進(jìn)行開關(guān),讓燈兩端電位一致或不一致。最簡單的操作方法,就是用你的手嘛。 真讓你去做這個事你肯定煩,其實老板也煩,這點小事,付不起工資啊。于是,可以用單片機(jī)啊,怎么用?前面說了,除了用開關(guān)的辦法來實現(xiàn)流水燈外沒別的辦法,所以,單片機(jī)在這里,它就是起個開關(guān)以變換電位的作用。 如何實現(xiàn)開關(guān)功能?我們知道單片機(jī)的引腳是實現(xiàn)各種功能的應(yīng)用途徑,也就是說要實現(xiàn)這些功能,實際上就是對引腳的應(yīng)用。 單片機(jī)的引腳,其中的電源端、晶振端(也許有也許沒有)那是為其自身能夠工作而設(shè)置的,其它的引腳才是應(yīng)用引腳即稱為端口。其實端口的功能很簡單:輸出、輸入、檢測。簡單解釋就是自身輸出高電位或低電位或者不輸出、接收對方送過來的高電位或低電位或者拒絕接收、檢測自身是處于高電位還是低電位,就這,沒別的,真沒別的。然后我們要知道,通過程序,我們可以控制端口做這些事。 下面我們就清楚了,即然單片機(jī)的端口的電位可以高可以低,那么我們可以將8個燈(假設(shè)是8個燈)的一頭全部接高電平,而另一頭接單片機(jī)的8個端口,在程序中首先將8個端口全部設(shè)為高電位,然后將第一個端口在程序中設(shè)為低電位——拉高為高電位——將第二個端口設(shè)為低電位——拉高為高電位......順序執(zhí)行下去并循環(huán),流水燈就形成了。當(dāng)然,你每一步操作之后,要停留一段時間,不然的話,你的眼睛是看不到變化的(太快了之后看不到變化,那是人的問題,不是單片機(jī)的問題)。單片機(jī)就這么簡單。 前面說了,要讓燈不亮,是要讓其兩頭的電位一樣,所以,你也可以將所有燈的一頭全部接低電平,讓端口輸出高電平亮、低電平滅也行,當(dāng)然,你硬要混著來那沒人能攔著你,因為這樣也能實現(xiàn)流水燈。 在程序設(shè)計時,對于初學(xué)者,我的建議是:一個步驟一個步驟地硬寫,這樣你會很快地上手并實現(xiàn)你所想實現(xiàn)的功能,否則,你會因為對編程技巧的不熟練而在編程中消耗很多時間,進(jìn)而會直接影響你的興趣,比如說流水燈的編程,你要一條一條地逐個端口寫操作程序,等你熟練后再去對程序進(jìn)行優(yōu)化。 另外,一定要從自己搭建電路開始,開發(fā)板可以買,只是在買時加一個面包板、一些線、數(shù)碼管、幾個LED、電阻就行了(最節(jié)省的做法,這個可以玩轉(zhuǎn)LED燈及數(shù)碼管和點陣屏,再買一個可調(diào)電阻還可以玩1602及12864屏。當(dāng)然你也可以買更多的東西用于搭建其它類型實驗電路),至于電源及下載則從開發(fā)板上的接點引出,包括晶振也可以從開發(fā)板上引出。用這些東西搭建電路的目的是快速入門,之后就用開發(fā)板上的東西了。 以上知識,足夠你在數(shù)碼管、點陣屏上顯示出你想要顯示出來的東西了。同樣的,在編程時,先一條一條地硬編,這樣你就可以很快地將數(shù)碼管、點陣屏的顯示玩轉(zhuǎn),同時學(xué)習(xí)編程技巧,然后再從頭設(shè)計程序。然后呢?就是學(xué)習(xí)程序設(shè)計語言,領(lǐng)略單片機(jī)的內(nèi)部功能了。 PS:個人認(rèn)為,學(xué)習(xí)單片機(jī),首先得能理解其端口的功能并熟練地操作端口,然后再進(jìn)階。
|