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