單片機(jī)簡介
單片機(jī)主要由運(yùn)算器、控制器和寄存器三大部分構(gòu)成。其中,運(yùn)算器由算術(shù)邏輯單元(ALU)、累加器、寄存器等構(gòu)成,首先累加器和寄存器向ALU輸入兩個8位源數(shù)據(jù),其次ALU完成源數(shù)據(jù)的邏輯運(yùn)算,最后將運(yùn)算結(jié)果存入寄存器中;控制器由程序計數(shù)器、指令寄存器、指令譯碼器、時序發(fā)生器和操作控制器等構(gòu)成,是一個下達(dá)命令的“組織”,用于協(xié)調(diào)整個系統(tǒng)各部分之間的運(yùn)作;寄存器主要有累加器A、數(shù)據(jù)寄存器DR、指令寄存器IR、指令譯碼器ID、程序計數(shù)器PC、地址寄存器AR等。
在微處理器內(nèi)部運(yùn)算器、控制器、寄存器之間是相互連接的,由控制器向各部分發(fā)布操作命令,運(yùn)算器接到命令后進(jìn)行相應(yīng)運(yùn)算,并將運(yùn)算后結(jié)果存入相應(yīng)的寄存器中。
單片機(jī)的基本工作原理
單片機(jī)自動完成賦予它的任務(wù)的過程,也就是單片機(jī)執(zhí)行程序的過程,即一條條執(zhí)行的指令的過程,所謂指令就是把要求單片機(jī)執(zhí)行的各種操作用的命令的形式寫下來,這是在設(shè)計人員賦予它的指令系統(tǒng)所決定的,一條指令對應(yīng)著一種基本操作;單片機(jī)所能執(zhí)行的全部指令,就是該單片機(jī)的指令系統(tǒng),不同種類的單片機(jī),其指令系統(tǒng)亦不同。
為使單片機(jī)能自動完成某一特定任務(wù),必須把要解決的問題編成一系列指令(這些指令必須是選定單片機(jī)能識別和執(zhí)行的指令),這一系列指令的集合就成為程序,程序需要預(yù)先存放在具有存儲功能的部件——存儲器中。存儲器由許多存儲單元(最小的存儲單位)組成,就像大樓房有許多房間組成一樣,指令就存放在這些單元里,單元里的指令取出并執(zhí)行就像大樓房的每個房間的被分配到了唯一一個房間號一樣,每一個存儲單元也必須被分配到唯一的地址號,該地址號稱為存儲單元的地址,這樣只要知道了存儲單元的地址,就可以找到這個存儲單元,其中存儲的指令就可以被取出,然后再被執(zhí)行。
程序通常是順序執(zhí)行的,所以程序中的指令也是一條條順序存放的,單片機(jī)在執(zhí)行程序時要能把這些指令一條條取出并加以執(zhí)行,必須有一個部件能追蹤指令所在的地址,這一部件就是程序計數(shù)器PC(包含在CPU中),在開始執(zhí)行程序時,給PC賦以程序中第一條指令所在的地址,然后取得每一條要執(zhí)行的命令,PC在中的內(nèi)容就會自動增加,增加量由本條指令長度決定,可能是1、2或3,以指向下一條指令的起始地址,保證指令順序執(zhí)行。
單片機(jī)要學(xué)習(xí)的內(nèi)容
第一步:數(shù)字I/O的應(yīng)用
在大多數(shù)的單片機(jī)實驗中,跑馬燈實驗正是數(shù)字I/O的典型應(yīng)用,也是跑馬燈的實驗被安排第一個的原因。通過將單片機(jī)的I/O引腳位進(jìn)行置位或清零來點亮或關(guān)閉LED燈,雖然簡單,但是這就是數(shù)字電路中的邏輯功能。數(shù)學(xué)I/O應(yīng)用的實驗還有按鍵實驗,當(dāng)按下某鍵時,某LED燈被點亮。數(shù)字I/O實驗教會我們單片機(jī)的編程思想,必須首先對單片機(jī)的相應(yīng)寄存器進(jìn)行配置,以初始化I/O引腳,這樣才能使該引腳具備數(shù)字輸入與輸出功能。 單片機(jī)的一個內(nèi)置或外置功能的使用,就是對該功能相關(guān)的寄存器進(jìn)行設(shè)置,初始化,而這便是單片機(jī)編程的特點。少則4、5個函數(shù)搞定,多則十幾行程序,要有耐心,別怕麻煩,所有的單片機(jī)都是這樣。
第二步:RS232串口通訊
單片機(jī)都有UART接口,這個簡單、古老的通訊方式可以與我們PC機(jī)的RS232接口直接連接通訊,當(dāng)然,因為它們兩者電平邏輯不同,必須要使用一個RS232電平轉(zhuǎn)換芯片才能與PC機(jī)連接,例如Max232芯片。
UART接口的使用是非常重要的,通過這個接口,我們可以使單片機(jī)與PC機(jī)之間交換信息,“接口”概念的學(xué)習(xí)也便由此引入。使用UART接口也會學(xué)習(xí)到目前最為簡單與常用的通信協(xié)議等知識。我們也可以通過PC機(jī)的串口調(diào)試軟件來監(jiān)視到單片機(jī)實驗板的數(shù)據(jù),想一想,這會是一個多么神奇的事情啊~~
第三步:定時器的使用
學(xué)會定時器的使用,就可以利用單片機(jī)來實現(xiàn)典型的時序邏輯電路。時序邏輯電路的應(yīng)用是最強(qiáng)大、最廣泛的。例如,在工業(yè)的控制中,我們讓某個開關(guān)每隔1秒鐘打開與關(guān)閉一次。這個方案可以通過普通的數(shù)字集成電路實現(xiàn),也可以通過PLC來實現(xiàn),也可以通過CPLD或FPGA來實現(xiàn),但是只有單片機(jī)的實現(xiàn)是最簡單,成本也是最經(jīng)濟(jì)的。定時器是單片機(jī)內(nèi)部資源里最為重要的一個,更是邏輯與時間控制實現(xiàn)的基礎(chǔ)。
第四步:中斷
在單片機(jī)軟件設(shè)計架構(gòu)中,一段程序循環(huán)執(zhí)行是其一個特點,也是一個弊端。每個操作指令的執(zhí)行都需要一定的執(zhí)行時間,如果程序沒有執(zhí)行到該指令,則該指令的動作就不會觸發(fā),這樣就會忽略許多快速發(fā)生的事件,例如方波頻率檢測的上升沿。針對在單片機(jī)程序正常運(yùn)行時能夠?qū)ν獠渴录⒓醋龀鲰憫?yīng)而設(shè)計了中斷功能。當(dāng)中斷功能執(zhí)行時,單片機(jī)優(yōu)先處理中斷程序,當(dāng)中斷處理完成后,再回到單片機(jī)的正常程序執(zhí)行中。中斷的機(jī)理是比較容易理解的,但是什么時候打開中斷,什么時候關(guān)閉、屏蔽中斷,需要如何配置才能使能中斷的某些功能,中斷里要執(zhí)行哪些程序,這些程序的要滿足哪些要求就需要花些時間去理解與實踐了。中斷學(xué)會后,就可以編寫復(fù)雜結(jié)構(gòu)功能的程序,可以一邊閃著小LED燈,一邊掃描著按鍵,一邊發(fā)送著數(shù)據(jù),也可以干著多個事情……打個比喻,中斷功能可以使單片機(jī)吃著碗里的,看著鍋里的。根據(jù)傳說中的8020定律,如果您掌握了上面提到的這四步,那么,您已經(jīng)學(xué)會了80%的內(nèi)容了。
第五步:I2C、SPI通訊接口
單片機(jī)系統(tǒng)畢竟資源有限,而利用I2C、SPI通訊接口進(jìn)行擴(kuò)展外設(shè)是最常用的方法,也是非常重要的方法。這兩個通訊接口都是串行通訊接口,典型的基礎(chǔ)實驗就是I2C的EEPROM實驗與SPI的SD卡讀寫實驗。
第六步:比較,捕捉,PWM功能
比較,捕捉與PWM功能可以使單片機(jī)更加適合電機(jī)控制,信號檢測,實現(xiàn)電機(jī)速度與步長的調(diào)節(jié)。PWM波現(xiàn)在又是LED調(diào)光的主要手段。這里已經(jīng)初步接觸了數(shù)字電路里的模擬電路部分。
第七步:A/D模數(shù)采集
單片機(jī)目前基本都自帶多通道A/D模數(shù)轉(zhuǎn)換器,通過這些A/D轉(zhuǎn)換器可以單片機(jī)獲取模擬量,用于檢測電壓、電流等信號。學(xué)習(xí)時要分清模擬地與數(shù)字地,參考電壓,采樣時間,轉(zhuǎn)換速率,轉(zhuǎn)換誤差等重要概念。這一步學(xué)會了數(shù)字電路控制模擬電路部分,而最簡單的A/D模數(shù)轉(zhuǎn)換器就是電壓表實驗。
第八步:學(xué)習(xí)USB接口、TCP/IP協(xié)議、工業(yè)總線
目前主流的通訊協(xié)議為USB協(xié)——下位機(jī)與上位機(jī)高速通訊接口;TCP/IP——萬能的互聯(lián)網(wǎng)使用的通訊協(xié)議;工業(yè)總線——諸如Modbus,CANOpen等工業(yè)控制各個模塊之間通訊的協(xié)議。這些都會應(yīng)用在未來的項目里,集成入單片機(jī)里的固件,并且也是當(dāng)前產(chǎn)品開發(fā)的一個發(fā)展方向。
學(xué)習(xí)單片機(jī)的心得體會
首先,學(xué)習(xí)單片機(jī)要有必須的基礎(chǔ):電子技術(shù)方面要有數(shù)字電路和模擬電路等方面的理論基礎(chǔ),個性是數(shù)字電路;編程語言要求匯編語言或C語言。要想成為單片機(jī)高手,推薦初學(xué)者首先學(xué)習(xí)匯編語言,學(xué)的差不多的時候,轉(zhuǎn)入C語言學(xué)習(xí)。盡管匯編語言屬于低級語言,編程效率低,但是較C語言具有目標(biāo)代碼簡短,占用內(nèi)存少,執(zhí)行速度快等優(yōu)點,更重要的是能使初學(xué)者盡快熟悉單片機(jī)的內(nèi)部結(jié)構(gòu),并能對其進(jìn)行精確的控制。匯編語言在單片機(jī)教材里面都會涉及,不需要單獨(dú)購買教材和學(xué)習(xí)。C語言是一門學(xué)問,有很多專業(yè)書籍來講解,并且對我們今后的編程生涯有絕對的好處,因此要深入學(xué)習(xí),千萬不要自以為看了某某的視頻教程就以為掌握了C語言,那只是C語言的一部分。在那里給大家推薦一本單片機(jī)C語言程序設(shè)計參考書,馬忠梅等著,北京航空航天大學(xué)出版社出版的《單片機(jī)的C語言應(yīng)用程序設(shè)計》,要求C語言基礎(chǔ)。如果沒學(xué)過C語言,推薦學(xué)習(xí)清華大學(xué)譚浩強(qiáng)編寫的C語言程序設(shè)計,這本書寫的不錯,通俗易懂。
其次,是單片機(jī)教材選取。單片機(jī)是一門十分重視實踐的技術(shù),不能總是看書,但要學(xué)習(xí)它首先應(yīng)看書,對單片機(jī)引腳、內(nèi)部結(jié)構(gòu)、寄存器和原理有必須地了解和感官認(rèn)識,它的是怎樣工作的,能干些什么?剛開始時,也許你看不明白,但這并不要緊,因為你還缺乏實踐經(jīng)驗。此刻單片機(jī)應(yīng)用廣泛,因此各個廠家分別推出了自己的單片機(jī),按內(nèi)部結(jié)構(gòu)體系派系分:51系列、PIC系列、AVR系列、摩托羅拉等等……我們沒必要每樣都學(xué)!因為他們的編程方法和調(diào)試過程以及內(nèi)部指令結(jié)構(gòu)有必須的相似,只要學(xué)精通一款就OK了!尤其是用C語言編程,就幾乎不用分什么派系,但是我們要選取一款有代表性的知識范圍廣,并且入門容易,書籍多。一般來說,MCS-51系列單片機(jī)已經(jīng)得到廣泛的普及和應(yīng)用,市場上它的資料也比較多,用的人也很多。給大家推薦一些參考書,學(xué)習(xí)時只需要一本就足夠拉。書名:《新編MCS-51單片機(jī)應(yīng)用設(shè)計》,哈爾濱工業(yè)大學(xué)出版,作者:張毅剛;書名:《單片機(jī)原理及應(yīng)用》,高等教育出版社,作者:張毅剛等;書名:《單片機(jī)高級教程:應(yīng)用與設(shè)計》,北京航空航天大學(xué)出版社,作者:何立民。相關(guān)教材還有很多,在這不一一列舉。
然后,是開發(fā)工具和開發(fā)環(huán)境的選取。選取一塊適宜的學(xué)習(xí)板,對于初學(xué)者來說一般無力理解,如果經(jīng)濟(jì)條件允許、本人又對單片機(jī)很感興趣、有從事相關(guān)工作意向的話,鼓勵大家購買。隨便說一句,學(xué)習(xí)板功能要求太全,具有流水燈、數(shù)碼管、獨(dú)立鍵盤、矩陣鍵盤、AD或DA、液晶、蜂鳴器等就差不多啦,畢竟,功能齊全的價格比較高。仿真器對單片機(jī)初學(xué)者來說既是那么耳熟,同時又有些陌生,這主要是因為市場上傳統(tǒng)的仿真器價格都在千元以上,對經(jīng)濟(jì)不是十分寬裕的人來說是不小的開支。同時仿真器是用來提高調(diào)試程序效率的,也不是非需不可的,如果你沒有仿真器,遇到程序出錯的時候,只好苦思冥想,反復(fù)燒寫調(diào)試。隨便推薦一下,學(xué)林電子的51tracer仿真器,有興趣的朋友可關(guān)注一下。有了單片機(jī)教程板以后,先看下指導(dǎo)說明書,熟悉一下學(xué)習(xí)板,開卷有益。以后就得靠自己多練習(xí)了,將學(xué)習(xí)板與電腦連接好,先學(xué)會開發(fā)軟件的使用,然后從最簡單的流水燈實驗做起,按照你自己的意愿控制流水燈,當(dāng)你完成時,你會發(fā)現(xiàn)這是多么愜意的事情。太好玩了,你會覺得這不是在學(xué)習(xí),而是在玩,當(dāng)你發(fā)現(xiàn),單片機(jī)能夠按照你編寫的程序工作時,你會覺得十分興奮,比做什么事情都開心,這樣你會慢慢迷上單片機(jī),真的。不少網(wǎng)站上說搞
定某個實驗,就恭維的告訴你一聲”恭喜你,學(xué)會了”自己學(xué)會了單片機(jī),這有點可笑,這只能說明你算過關(guān)了,對單片機(jī)有了必須了解和會使用它了。但是單片機(jī)能完成的功能太多了,尤其是對外圍器件的控制,綜合起來能設(shè)計出許多意想不到的產(chǎn)品。因此除了入門外,精通可千萬別輕易說出口。
最后,在熟練掌握和應(yīng)用后,那能夠說對于單片機(jī)方面的硬件你已經(jīng)入門了,剩下的就是自己練習(xí)設(shè)計電路,不斷的積累經(jīng)驗。最終,自己完全設(shè)計具有個人風(fēng)格的電路,產(chǎn)品,這樣你就是單片機(jī)高手拉。只要過了第一關(guān),后面的路就好走多了,萬事開頭難,大家可能都聽過。時下多家電子類的報刊雜志如:《電子制作》《無線電》《電子報》《電子世界》都開設(shè)了詳細(xì)的單片機(jī)教程專欄,對于想學(xué)習(xí)單片機(jī)的朋友來說幫忙很大,能夠說此刻的單片機(jī)教程環(huán)境是最好的,有網(wǎng)絡(luò),有書籍,有報刊雜志,還有視頻教程,元件的采購方面也十分充足,相關(guān)的器材又多有便宜。如果每一天能抽出兩小時的時間去學(xué)習(xí),快的一個月,慢的三個月就入門拉。
經(jīng)驗總結(jié)
(1)學(xué)習(xí)單片機(jī)沒有捷徑,別指望兩三天就學(xué)會,要堅持不懈,重在積累。
(2)別崇拜高手,別相信天才,大部分人都不是天才(相信你也不是)!
(3)單片機(jī)是一門應(yīng)用性和實踐性很強(qiáng)的學(xué)科,要多動手,多做實驗。
(4)要學(xué)會參考別人的程序,減少自己琢磨的時間,迅速提高自己的編程潛力。
(5)碰到問題能夠借助網(wǎng)絡(luò)來搜尋答案和對自己有幫忙的問題,能夠大大減少你的開發(fā)時間。
(6)要多交一些朋友,多交流。技術(shù)是靠不斷的積累和交流才會進(jìn)步的,封閉自守只會更加落后。
-
單片機(jī)
+關(guān)注
關(guān)注
6043文章
44621瀏覽量
638488
發(fā)布評論請先 登錄
相關(guān)推薦
制作單片機(jī)的幾點心得體會
![制作<b class='flag-5'>單片機(jī)</b>的幾點<b class='flag-5'>心得體會</b>](https://file1.elecfans.com//web2/M00/A6/3E/wKgZomUMPHeAd-JDAAALWb5qEHo445.jpg)
學(xué)習(xí)單片機(jī)的心得體會(轉(zhuǎn)載)精選資料推薦
單片機(jī)學(xué)習(xí)心得分享
單片機(jī)應(yīng)用研發(fā)暑期實習(xí)小結(jié)_第四周STM32心得體會
嵌入式系統(tǒng)開發(fā)學(xué)習(xí)心得體會_經(jīng)驗總結(jié)
單片機(jī)學(xué)習(xí)心得體會_經(jīng)驗總結(jié)
![<b class='flag-5'>單片機(jī)</b><b class='flag-5'>學(xué)習(xí)心得體會</b>_<b class='flag-5'>經(jīng)驗總結(jié)</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
【學(xué)習(xí)心得】學(xué)習(xí)SDRAM課程體會
![【<b class='flag-5'>學(xué)習(xí)心得</b>】<b class='flag-5'>學(xué)習(xí)</b>SDRAM課程<b class='flag-5'>體會</b>](https://file1.elecfans.com/web2/M00/AE/6F/wKgZomVIZH6ABMzUABZf3JVB9Dg469.png)
評論