『壹』 單片機原理
單片機(Micro-controller)是一種集成了多種電子元器件(如 CPU、存儲器、介面、模擬電路、晶振等)在一塊半導體基板上的微型計算機。它可以通過程序控制外部設備,實現自動控制和數據處理的功能。單片機的工作原理是:通過存儲在存儲器中的指令,控制 CPU 運行不同的程序,從而實現對外部設備的控制和數據處理。
『貳』 MCU單片機的基本功能芯巴巴電子元器件都告訴你
對於絕大多數MCU,下列功能是最普遍也是最基本的,針對不同的MCU,其描述的方式可能會有區別,但本質上是基本相同的。
外部觸發信號的檢測:一種是基於實時性的要求,比如可控硅的控制,突發性信號的檢測等,而另一種情況則是省電的需要。
信號頻率的測量:為了保證信號不被遺漏,外部中斷是最理想的選擇。
數據的解碼:在遙控應用領域,為了降低設計的成本,經常需要採用軟體的方式來對各種編碼數據進行解碼,如Manchester和PWM編碼的解碼。
按鍵的檢測和系統的喚醒:對於進入Sleep狀態的MCU,一般需要通過外部中斷來進行喚醒,最基本的形式則是按鍵,通過按鍵的動作來產生電平的變化。
『叄』 IC、MCU、集成電路,單片機,模塊到底有什麼區別,有什麼聯系,求大蝦賜教
區別:
1、概括電產品的范圍不用
電子模塊通常是由多種IC組成的具有某種功能的器件或集成電路板,范圍之廣,其次是IC即集成電路最後是mcu即單片機。
2、 作用不同
大型系統一般由很多模塊組成,IC主要成品驅動外部設備工業產品等,IC則由mcu和其他電子晶元組成。
3、工藝要求不同
IC與模塊工藝相差不大集成電路按製作工藝可分為半導體集成電路和膜集成電路;膜集成電路又分類厚膜集成電路和薄膜集成電路。單片機主要是半導體技術。
聯系:這些都是電子產品的范疇,大的元件板子都是由曉得元件組裝而成。
(3)電子元器件單片機知識擴展閱讀
IC電路的檢測常識:
1、檢測前要了解集成電路及其相關電路的工作原理
檢查和修理集成電路前首先要熟悉所用集成電路的功能、內部電路、主要電氣參數、各引腳的作用以及引腳的正常電壓、波形與外圍元件組成電路的工作原理。
2、測試避免造成引腳間短路
電壓測量或用示波器探頭測試波形時,避免造成引腳間短路,最好在與引腳直接連通的外圍印刷電路上進行測量。任何瞬間的短路都容易損壞集成電路,尤其在測試扁平型封裝的CMOS集成電路時更要加倍小心。
3、嚴禁在無隔離變壓器的情況下,用已接地的測試設備去接觸底板帶電的電視、音響、錄像等設備
嚴禁用外殼已接地的儀器設備直接測試無電源隔離變壓器的電視、音響、錄像等設備。雖然一般的收錄機都具有電源變壓器。
當接觸到較特殊的尤其是輸出功率較大或對採用的電源性質不太了解的電視或音響設備時,首先要弄清該機底盤是否帶電,否則極易與底板帶電的電視、音響等設備造成電源短路,波及集成電路,造成故障的進一步擴大。
『肆』 單片機工作總結
單片機工作總結
總結是對過去一定時期的工作、學習或思想情況進行回顧、分析,並做出客觀評價的書面材料,它可以促使我們思考,因此十分有必須要寫一份總結哦。我們該怎麼去寫總結呢?下面是我幫大家整理的單片機工作總結,希望對大家有所幫助。
單片機是一門應用性和綜合性很強的學科,它綜合了電子技術中的模擬電路和數字電路方面的知識,特別是數字電路,因為數字電路在裡面的應用很多。學習單片機最好先從匯編語言入手,雖然匯編語言是低級語言 ,編程效率低,但它比C語言佔用內存小,執行速度快等優點,在剛接觸單片機時更容易學習。由於單片機涉及的知識很多,所以我們只能循序漸進的學習,逐步的積累,沒有什麼捷徑可循。
剛開始學習的時候,對單片機沒有什麼認識,不知道什麼是單片機,更不知道它有什麼作用。通過學習才大體知道了單片機的一些知識。由中央處理器CPU、隨機存儲器RAM、只讀存儲器ROM、I/O介面、定時器/計數器以及串列通信介面等集成在一塊晶元上,構成了一個單片微型計算機,簡稱為單片機。它的應用范圍很廣,在工業自動化中應用有數據採集、測控技術。在智能儀器儀表中應用有數字示波器、數字信號源、數字萬用表、感應電流表,自動取款機等。在消費類電子產品中應用有洗衣機、電冰箱、空調機、電視機、微波爐、手機、IC卡、汽車電子設備等。在通訊方面應用有數據機、程式控制交換技術、手機、小靈通等。在武器裝備方面應用有飛機、軍艦、坦克、導彈、太空梭、魚雷制導、智能武器等。剛開始學習是總覺得指令語句太過復雜,怎麼也記不住,這時只能多練、多記,剛開始連一個最簡單的控制一盞小燈的亮滅的程序都不會寫,只能抄寫別人做成功的程序,一遍一遍的寫,直到能熟練的獨自將程序寫出來,從簡單的入手,逐步的積累,對單片機就會有新的認識,能夠自己獨立的寫一些小的程序,能夠將小的程序結合到一起,拼接成較為復雜一些的程序。剛接觸KEIL時確實很讓人頭疼,使用 KEIL不會建項目、不會使用實驗板。遇到困難要一件件攻克,不會建項目,就到教學視頻里找,仔細看一下,做幾次就懂了。然後可以參考已經成功的程序,抄過來,寫一個最簡單的,讓它運行起來,先培養一下自己的感覺,知道寫程序是怎麼一回事,無論寫大程序還是小程序,要做的工序不會差多少,總得建個項目,再配置一下項目,然後建個程序,加入項目中,再寫代碼、編譯、生成HEX,刷進單片機中、運行。
我的英文得到了提高,自己也愛上了單片機,下面是我學習單片機中的一些經驗總結:
1. 萬事開頭難,要勇敢的邁出第一步。開始時候是有點難度,但不要為自己找借口,要勇敢的邁出第一步,以後的路就會慢慢地順起來了。
2. 知識點用到才學,不用的暫時放在一邊。這個世界,如果每樣東西都學,自己就會太累,但這並不是說有些東西可以不學,像在哪裡都可以用到的時序圖等就要好好的研究一下了。
3. 程序不要光看別人的而不寫,一定要自己看了別人怎麼寫後自己再寫一遍,最好這時什麼都不要參考,憑自己的印象去寫,遇到錯誤時再好好看下,可以收到事半功倍效果。
4. 必須學會掌握調試程序的方法,自己的程序遇到錯誤時一定要自己慢慢的把它調出來,有些人寫好程序後發現問題,就到q群里或論壇上發表帖子,等著別人來回答,這對自己是沒有好處的。
5. 找到解決問題的思路比找到代碼更重要,世界上的事情千變萬化,就像不可能找到兩片相同的葉子一樣,世界上也找不到使用同一個代碼的項目,所以要學會自己分析問題,找出解決問題的方案。
6. 開動腦筋,運用多種方法,不斷優化自己的程序,這是鍛煉你寫程序能力的一個很好的方法,這對於提高元器件執行的效率也是很重要的。
7. 看別人的代碼,學習別人的思路。這是一種很有用的方法,可以把別人的思路與自己的相比較,發現自己的優缺點。
8. 著重培養自己解決問題的能力,而不是看自己寫過多少代碼或者做過什麼,這個最好的方法就是做一些具體的項目,從中培養自己解決問題的能力。
9. 嘗試寫一下綜合應用的程序,這個是很重要的,因為獨立可以的綜合在一起後並不一定可以正常工作。
10. 如果有可能,多學習一下計算機專業的課程,例如數據結構,畢竟單片機與程序的設計也是不能分開的,這是一個綜合的科目。
11. 面對一個新的項目,要先自己想下怎麼做,而不是單單地找別人的代碼,這是很重要的,因為只有這樣做,自己才能獨立去思考一個新的東西,也更有可能創造出一個更好的程序。 有時候單片機的學習很單調,有些知識學起來很抽象,不容易理解,只能慢慢適應,一邊學習理論知識,一邊編寫程序,將程序刷入單片機進行調試,通過這種方式才能更快速的學習單片機。同事也會從學習中體會成功的喜悅。
好了,自己的單片機的學習心得也就這么幾句,若有不對的地方,請多包涵,也願學習單片機的人能學有所成。
作為一個剛剛從事單片機工作不久的我來說,對於單片機我了解了一段時間,但總感覺無從入手,理論性的東西看了幾遍也不會把它用到實處,通過這次彩燈控制實驗,我也對單片機有了一定的了解。單片機是一門非常重視實踐的技術,不能總是看書,但要學習它首先應看書,對單片機引腳、內部結構、寄存器和原理有一定地了解和感官認識,它的是怎樣工作的,能幹些什麼?以前看學長做的流水燈我還不知道原理,現在總算清楚了。
在短短的幾周工作時間里,真的學了很多,對我來說,編程是個問題,但我知道這是任重而道遠的。我上的第一節課是關於流水燈左右循環移動在實驗箱上的實現,這個程序老師教了但還是搞不懂,後來通過同學之間相互探討,終於理解了,最重要的還是C語言沒學好,二進制轉換為十六進制是很普通的但我還是不會,現在已經掌握了。『紙上得來終覺淺,絕知此事要躬行。』在短暫的學習過程中,我深深感覺到自己在實際應用中的專業知識的匱乏,總以為自己還可以,一旦接觸到實際,才知道自己知道的是多麼少,這時才真正領悟到「學無止境」的含義。
「千里之行,始於足下。」這是一個短暫而充實的話。每看懂一個程序自己試著學人家編,去修改,去記錄,終於能略懂,這確實讓人深有體會。興趣是最好的老師,這樣才能堅持,要在以後積累很多經驗。主要肯不恥下問,那就會學到很多東西。最後一句:基礎很重要,實踐也同樣重要。必須要有學習單片機的熱情,這樣才能學好單片機。謝謝老師幾周以來的指導。
經過一周的課程設計,我收獲頗多,有深刻的心得體會。實訓讓我們受益匪淺。首先是關於單片機方面的。我們學到了許多關於單片機系統開發的知識,從最開始選題到最後的結題,更使我們得到了充分的鍛煉。其次,它讓我體會到了什麼才是teamworkspirit。一如:團隊管理的經驗、團隊意識的提升和協調能力等等,這些都會讓我們終身受益。
通過此次課程設計,使我更加扎實的掌握了有關電子線路單片機方面的知識,在設計過程中雖然遇到了一些問題,但經過一次又一次的思考,一遍又一遍的檢查我終於找出了問題所在,也暴露出了前期我在這方面的知識欠缺和經驗不足。實踐才能出真知,實踐才是檢驗真理的唯一標准,唯有通過親自動手製作,才能令我們掌握的知識不再是一些紙上談兵的東西。
在這次的課程設計中,我們遇到了很多困難,過程很艱難,但是我們都克服了,這是對我們自己的肯定。我們不斷發現錯誤,不斷改正,不斷領悟,不斷獲取。我們也曾灰心,也曾茫然,也曾不知所措,從一開始的自信滿滿,到最後的緊張繁雜,所有的這些都令我們回味無窮,這已經成為了我們人生的一個寶藏。我想今後的學習和工作也是這樣的,汗水見證著成功,我想十年過後,但我們都已經走入了社會,在某個陽光明媚的夏日,午後醒來,突然想起大學經歷的時候,最先映入腦海里的就是這門課程吧,就是這些為了一個共同的目標,相互合作,共同奮斗的日子吧。
不可否認,單片機是一門比較難的專業學科。但是經過這一學期的學習,我們覺得單片機這門課很好,讓我們在設計中掌握課程,具有很強的實用性。在社會上,單片機也應用極其廣泛。通過這次課程設計,我掌握了常用元件的識別和測試;熟悉了常用儀器、儀表;了解了電路的連線方法;以及如何提高電路的性能等等。我相信在接下來的日子裡,我會更深刻地去研究它,發掘它。
在這次的實訓里,我覺得過得很充實。實訓,不僅培養了我們獨立思考、動手操作的能力,在各種其它能力上也都有了提高。更重要的是,在實驗課上,我們學會了很多學習的方法。而這是日後最實用的,真的是受益匪淺。要面對社會的挑戰,只有不斷的學習、實踐,再學習、再實踐。這對於我們的將來也有很大的幫助。以後,不管有多苦,我想我們都能變苦為樂,找尋有趣的事情,發現其中珍貴的事情。汗水,是我們努力的過程,更是成功的使者。它是希望的凝聚。
回首此次實訓,我們真的學到了很多很多。鞏固了以前所學過的知識,將理論與實際結合起來,不斷提高自己的實際動手能力和獨立思考的能力,並學會去使用知識。當然不僅僅是這些課本上的知識,更重要的是一些課本上沒有但是也很重要的知識,像是團隊合作精神等。當我們都已經走入了社會,在某個陽光明媚的夏日,午後醒來,突然想起大學經歷的時候,回憶起這些泛著汗水的時光的時候,定然會被我們的團隊感動。
成功後會很喜悅,但過程一樣令我們回味無窮。此次設計也讓我明白了思路即出路,學問學問,有學必問。只要認真鑽研,動腦思考,動手實踐,就沒有弄不懂的知識。親歷親為,親手實踐才是硬道理。希望這樣的實訓能夠繼續下去,並不斷地前進,幫助更多的學生更好地學習單片機,並能夠在使用中發現它的無窮魅力!
從剛開始接觸單片機,到現在已經有4年的時間了,在這期間學習和使用了51單片機、飛思卡爾單片機,lpc2138,pic16f887等系列的單片機,每接觸一款單片機,都會經歷熟悉其基本開發,然後將其用於項目中的過程,對於如何學習一款單片機,自己做了如下的總結。
大家都知道,51單片機是最容易入門的,不僅因為其編程簡單,更重要的是網上的資料非常豐富。所以一般學習單片機開發的都將51單片機作為入門開發的首選。我學習51單片機的時候是採用這樣的一個步驟進行學習的:
第一步(熟悉的過程):買了一款51單片機開發板,然後就開始了我的學習之旅,剛開始的時候沒有去看視頻教程,而是對著一本實驗教材進行學習,那本實驗教材的名字記不清楚了,但是其內容就是圍繞單片機的led燈進行控制,將51單片機內部的各個功能部件全部都使用到了,這樣就能使我在很短的時間內,通過控制led燈的亮、滅熟悉了51單片機的內部的各種資源,這時對51單片機也就沒有感到陌生了。所以,個人覺得,學習單片機,要從實驗入手,先熟悉單片機再說,開發語言開始使用的是c語言。
第二步(進階的過程):有了第一步的基礎之後,接下來的便是進階的過程,當時,我看的是郭天祥十天學會單片機的視頻教程,因為這個教程從基礎到復雜的編程慢慢深入,講的比較的全面,而且也生動,所以那一階段,也是我學習單片機進步最快的階段,每次聽課的時候,按照上面的實驗,以及課堂上面調試程序時出現的一些問題,自己認真的在電腦上進行調試,並分析產生故障的原因,讓我有了一定的開發基礎。在看完了視頻教程之後,後面又對基礎的知識進行了下補習,主要是看單片機原理性的教材,因為有些細節性的東西還是要從教材上面獲得。
第三步(項目實戰的階段):學習單片機的時候,雖然也編寫了一些程序,但是那些都是一些很小的模塊程序,並沒有起到綜合應用的目的,所以在這之後,我和另外一個學習硬體的同學一起組成了一個小的團隊,進行項目實踐開發,那時候,實驗室的條件比價好,有很多的器件可以自己使用。所以,我們就設計了我們的第一個作品,基於單片機的`液體點滴監控系統。做這個系統時,就將以前單片機所學的知識,做了一個綜合的應用,包括有lcd1602控制,串口的控制等。
經過以上三個步驟的學習之後,對於51單片機的開發基本上就算入門了。而對於其他類型的單片機,如飛思卡爾單片機,lpc2148arm7單片機,pic16f887等,雖然每個系列的功能不一樣,但是最基本的編程思想還是一樣的,不同的可能就是編譯器,程序下載的軟體等差別,所以有了51單片機的開發基礎之後,學習其他單片機所採用的方法就是一個差異化的學習,學習各種單片機不同的地方,這樣,就能很快的熟悉一款新的型號的單片機。
如在學習pic16f887這個系列的單片機時,我首先做的工作不是去閱讀數據手冊,而是先拿著demo代碼,在編譯軟體中編譯、鏈接、生成hex文件,然後將其下載到開發板中跑起來,這個過程主要就是學習其軟體的基本操作,有了這個基礎之後,就能自己進行編程、測試。之後就是熟悉其編程的模式,所謂其編程模式,就是寄存器的控制,中斷程序的編寫,熟悉了這個操作,也就能控制其他的功能模塊了,如串口的控制、i2c硬體控制器的控制。這些基本的開發熟悉了之後,接下來便是學習差異的部分,例如pic單片機c語言中,其堆棧深度不能超過8級,超過了之後,將會使得程序出現跑飛的現象。而且內存的分配完全要靠自己來控制,分成了4個bank的數據,bank0,bank1,bank2,bank3等。這些就是每個系列單片機所獨有的一些東西,這些東西需要詳細的了解,因為它們可能為你的編程帶來很大的便利。
以上就是我學習單片機的總結,如果大家有更好的學習方法,希望大家能夠提出來,一起討論,共同進步。
單片機系統學習總結[篇2]
人的一生是一個不斷學習、不斷成長的過程。轉眼間,研究生的學習生涯結束了,走上新的工作崗位。回頭看看,發現自己不知不覺已經走過了五年的單片機學習之旅。
在20xx年最初接觸單片機的時候,在我心中覺得51就是單片機,單片機就是51,根本不知道還有其他單片機的存在。那時候老師只教會了我們匯編語言,根本不知道用c語言也可以進行單片機開發。幸運的是,我加入了單片機興趣小組,在老師的指導下,做了一系列實驗,有「基於ds18b20的溫度採集系統」、「有基於164的移位寄存器的燈光控制系統」、「有步進電機和直流電機的控制系統」。這時候我才發現,這是學習單片機的一個最好途徑——在實踐中領悟理論,用理論指導實踐。在上課的整整一個學期中,雖然老師講得很詳細,但是大部分概念都是到了實際動手做東西的時候才弄明白的。而且在經歷了迷惑之後再搞清楚,印象就特別深刻。直到現在我對那些概念和介面都非常清晰。其實我也很慶幸學習和使用了兩年多的匯編語言。由於有這些鍛煉,我對單片機底層結構和介面時序就弄得很清楚。在使用c語言開發的時候,優化代碼和處理中斷也就不會太費勁。我覺得,雖然現在絕大部分單片機開發都使用c語言,甚至有些公司還推出了圖形化編程的工具,這樣對於項目的開展從時間上快了很多,在管理上也規范了不少,但是從學習和想深入掌握單片機精髓的角度來說,還是需要熟練掌握匯編語言的使用。
機會總是青睞於有準備的人。也許有了前面一段時間的理論和實踐的積累,我才慢慢得到了一些參加科技競賽和參與科研項目的機會。在參加第一屆浙江省機械設計競賽的時候,我們設計的由多單片機系統協調控制的「月球車」機器人奪得了唯一的一個特等獎。這個競賽給我最大的收獲是我對單片機的認識改變了,它不再僅僅是一門學科了,它是一個可以讓你的創意得到充分發揮的平台。後來參與了「基於視頻分劃技術的鋼捲尺自動切零位機」、「電能表渦杠渦輪嚙合深度檢測系統」、「基於公共電話網的水表集抄數據路由器」、「高精度電感微位移測量系統」等一些實際的項目。在這些過程中,我發現只是精通單片機技術還不能很好的解決問題。體會最深的是,單片機只有融合到各種應用領域中,才能展現它的最大活力。然而單片機僅僅是一個工具而已,要做好單片機系統還需要各種應用領域的專業知識的支持。例如,在「基於視頻分劃技術的鋼捲尺自動切零位機」中,就需要搞清楚全電視信號的時序,弄明白鋼捲尺切零位機的工作原理,懂得怎麼利用疊加在視頻信號中的橫豎線來進行刻度的瞄準等。沒有這些專業知識,就算單片機技術再厲害也不可能做好這個項目。脫離應用背景的單片機開發,就像一個沒有靈魂的軀體一樣。
隨著arm的出現,我曾經認為,8位單片機可能在32位單片機的沖擊下就此走進歷史,可是很快就認識到我是錯誤的。隨著技術的革新和時間的推移,各大單片機公司紛紛將單片機朝著片上系統這個方向發展,集成了現在各種流行的技術和常用的模塊。我相信,在當前國內和國外的這個市場中,8位單片機應用的市場仍然是充滿生機,活力無限。在市場的不斷變化和技術的不斷更新過程中,8位單片機也會順應潮流不斷革新。
從我五年走過的路來看,單片機學習的過程應該是一個循序漸進、不斷學習、不斷積累的過程,可以分為三個階段。
第一階段:掌握開發單片機的必備基礎知識。首先是熟練掌握單片機的基本原理,其實各家各門的單片機其基本結構和原理都差不多,特別是共有的知識需要好好理解和掌握。例如,內核結構、內存分配、中斷處理、定時計數、串列通信、埠復用等一些最基本的概念和原理。除此之外,我們還需要具備模擬電子、數字電子、c語言程序開發知識以及原理圖和pcb設計等一些技能。在進行系統開發的時候,進行原理設計、pcb布板、程序編寫、系統聯調這些工作都是在所難免的。
第二階段:在掌握好一款單片機原理和應用的基礎上,開始學習其他各家單片機的獨有技術,學不了那麼多也要多了解了解。同時盡可能多地掌握單片機的一些外圍器件和常用電路,以備不時之需。有時候客戶要求低成本,那我們只好選用合鈦、義隆、華邦等這類那個島晶元;如果客戶要求工業級的性能,那麼我們就得從pic、nec、飛思卡爾、nxp等這些歐美和日式單片機中選擇;若要進行功耗的開發,選用msp430系列應該有一定優勢;在進行測量儀器設計的時候,c8051和ac842這類數模混合晶元就顯得比較方便。所以說最好每個類型的單片機都會一兩款,在實際項目選型中可以更加靈活。另外,要注意平時的技術積累。比如,在項目開發過程中將一些常用的介面程序和控制演算法整理成模塊或者函數,在其他的項目開發中,有同樣或者接近的需求時馬上就可以使用,又快又好。
第三階段:在實際的項目開發過程中,不斷深化單片機應用技術,不斷積累應用行業的專業知識。例如,我完成了「高精度電感微位移測量系統」,就會對電感感測器的測量機理和信號特性、測量電路的設計、電磁兼容處理、誤差修正和非線性處理等測控方面的專業技術有很深的認識。以後碰到類似的項目時,很多東西就可以直接利用了。有了扎實的單片機應用相關的基礎知識,並且熟悉掌握了幾款不同類型單片機的開發方法,再結合實際的應用背景,那麼就可以隨心所欲,設計出性能最優、結構最合理的單片機應用系統。這是我最大的奮斗目標,我覺得這也應該是單片機應用的最高境界吧。
在這五年的學習中,有感慨、有遺憾、有憧憬、有希望,更重要的是我對單片機應用這個領域充滿熱情。由於才疏學淺、涉世未深,希望能與行業里的各位老師多多交流,不斷學習,不斷成長。
單片機系統學習總結[篇3]
基於本人學習單片機的痛苦經歷,特編寫本教程,以此獻給廣大的單片機初學者,希望您能從中受益。
作者提示:本教程乃最通俗易懂之單片機教材也,如果您還是看不懂,請千萬不要涉足此行,以免誤入歧途,耽誤您的前程*_*
拿到這本教程您首先就會想,什麼是iap教學法?是不是一種什麼全新的教學方法?當然不是,我可沒有那麼大的本事,其實這只是我杜撰的一個新名詞,意思就是inapplicationsprogram(在應用中編程),當然這只是針對單片機教學,說法是否正確,還得您說了算。
至於為什麼要提這種說法,那我倒想說幾句。大家都知道,學習電子技術是一件非常無聊和枯燥的事情,為什麼會有這種想法,就是因為我們傳統的教學方法只重理論而忽略了實踐,要一個人記住那些空洞而有無聊的理論知識實在不是一件容易的事,好在我們總算熬過來了,不管如何,也多多少少的學習了一些電子基礎知識。
接下來我們應該進一步掌握些什麼知識呢,凡涉足此行的朋友都知道,那就是單片機。不過這可不是一件容易的事,倒不是因為單片機很難學,而實在是我們身邊很難找到一本專為單片機入門者而編寫的教材。翻一下傳統的單片機教材,都好象是為已經懂單片機的人而寫的,一般總是以單片機的結構為主線,先講硬體原理,然後是指令,接著講軟體編程,再是系統擴展和外圍器件,最後舉一些實例(隨
,很少涉及單片機的基礎知識,如果按照此種學習方法,想便說一點:很多書中的實例都是有錯誤的)
進行產品開發,就必須先把所有的知識全部掌握了才可以進行實際應用。孰不知,單片機不象模擬電路和數字電路那樣,只要搞懂了電路原理,再按照產品要求設計好相應的電路就可以了。它是一種以簡單的硬體結構,復雜而有靈活的軟體系統來完成設計的通用性產品,不同的設計者只會使用其不同的功能,幾乎沒有人會把它的全部指令都使用起來,所以學習使用單片機只能靠循序漸進的積累,而不可能先把
。它全部掌握了再去做產品開發(當然天才就例外了*_*)
基於以上原因,本人想嘗試一種全新的單片機教學方法,打破傳統的循序漸進式的教學方法,以單片機的應用為藍本,結合基本的工業控制系統和實踐工作中的具體應用,不分先後順序,將各條指令貫串於一個又一個的實驗中,通過所見即所得的實驗來講解各種指令的編程方法,順便講解相關的基本概念,使您盡快地熟悉單片機應用的基本步驟,掌握軟體編程的基本方法。
如果您學完了就能成為單片機的入門者,完全可以進行一般產品的開發;下冊部分是單片機應用的提高部分,主要學習單片機的系統擴展(比如:rom和ram存儲器的擴展,並行口的擴展,串列口的擴展,a/d和d/a與單片機的介面)以及相關開發工具和軟體的使用(包括kellc51的應用與調試技巧,硬體模擬器的使用)等等,如果您學完了下冊部分,那就得恭喜您成為了單片機開發的高手了,不過單片機的技術是在不斷的發展和提高的,您也不要太驕傲哦!
為了盡量把最新的單片機知識和應用成果收錄進我們的教程,希望您能不吝賜教,共同來努力把我們的教程不斷的改進和完善。還是那句題外話,技術是靠不斷的積累和交流才會進步的,固封自守只會更加落後。
由於時間和精力的限制,我還是希望在您學習本教程之前,自己先熟悉一點相關的電子技術知識,特別是數字電路基礎,這對您學習中碰到的相關概念會有很大的幫助。
;『伍』 單片機晶元的作用
單片機是指一個集成在一塊晶元上的完整計算機系統。盡管他的大部分功能集成在一塊小晶元上,但是它具有一個完整計算機所需要的大部分部件:CPU、內存、內部和外部匯流排系統,目前大部分還會具有外存。同時集成諸如通訊介面、定時器,實時時鍾等外圍設備。而現在最強大的單片機系統甚至可以將聲音、圖像、網路、復雜的輸入輸出系統集成在一塊晶元上。
單片機也被稱為微控制器(Microcontroler),是因為它最早被用在工業控制領域。單片機由晶元內僅有CPU的專用處理器發展而來。最早的設計理念是通過將大量外圍設備和CPU集成在一個晶元中,使計算機系統更小,更容易集成進復雜的而對提及要求嚴格的控制設備當中。INTEL的Z80是最早按照這種思想設計出的處理器,從此以後,單片機和專用處理器的發展便分道揚鑣。
早期的單片機都是8位或4位的。其中最成功的是INTEL的8031,因為簡單可靠而性能不錯獲得了很大的好評。此後在8031上發展出了MCS51系列單片機系統。基於這一系統的單片機系統直到現在還在廣泛使用。隨著工業控制領域要求的提高,開始出現了16位單片機,但因為性價比不理想並未得到很廣泛的應用。90年代後隨著消費電子產品大發展,單片機技術得到了巨大的提高。隨著INTEL i960系列特別是後來的ARM系列的廣泛應用,32位單片機迅速取代16位單片機的高端地位,並且進入主流市場。而傳統的8位單片機的性能也得到了飛速提高,處理能力比起80年代提高了數百倍。目前,高端的32位單片機主頻已經超過300MHz,性能直追90年代中期的專用處理器,而普通的型號出廠價格跌落至1美元,最高端的型號也只有10美元。當代單片機系統已經不再只在裸機環境下開發和使用,大量專用的嵌入式操作系統被廣泛應用在全系列的單片機上。而在作為掌上電腦和手機核心處理的高端單片機甚至可以直接使用專用的Windows和Linux操作系統。
單片機比專用處理器最適合應用於嵌入式系統,因此它得到了最多的應用。事實上單片機是世界上數量最多的計算機。現代人類生活中所用的幾乎每件電子和機械產品中都會集成有單片機。手機、電話、計算器、家用電器、電子玩具、掌上電腦以及滑鼠等電腦配件中都配有1-2部單片機。而個人電腦中也會有為數不少的單片機在工作。汽車上一般配備40多部單片機,復雜的工業控制系統上甚至可能有數百台單片機在同時工作!單片機的數量不僅遠超過PC機和其他計算的綜合,甚至比人類的數量還要多。
單片機介紹
[編輯本段]
單片機又稱單片微控制器,它不是完成某一個邏輯功能的晶元,而是把一個計算機系統集成到一個晶元上。概括的講:一塊晶元就成了一台計算機。它的體積小、質量輕、價格便宜、為學習、應用和開發提供了便利條件。同時,學習使用單片機是了解計算機原理與結構的最佳選擇。
單片機內部也用和電腦功能類似的模塊,比如CPU,內存,並行匯流排,還有和硬碟作用相同的存儲器件,不同的是它的這些部件性能都相對我們的家用電腦弱很多,不過價錢也是低的,一般不超過10元即可......用它來做一些控制電器一類不是很復雜的工作足矣了。我們現在用的全自動滾筒洗衣機、排煙罩、VCD等等的家電裡面都可以看到它的身影!......它主要是作為控制部分的核心部件。
它是一種在線式實時控制計算機,在線式就是現場控制,需要的是有較強的抗干擾能力,較低的成本,這也是和離線式計算機的(比如家用PC)的主要區別。
單片機是靠程序的,並且可以修改。通過不同的程序實現不同的功能,尤其是特殊的獨特的一些功能,這是別的器件需要費很大力氣才能做到的,有些則是花大力氣也很難做到的。一個不是很復雜的功能要是用美國50年代開發的74系列,或者60年代的CD4000系列這些純硬體來搞定的話,電路一定是一塊大PCB板!但是如果要是用美國70年代成功投放市場的系列單片機,結果就會有天壤之別!只因為單片機的通過你編寫的程序可以實現高智能,高效率,以及高可靠性!
由於單片機對成本是敏感的,所以目前占統治地位的軟體還是最低級匯編語言,它是除了二進制機器碼以上最低級的語言了,既然這么低級為什麼還要用呢?很多高級的語言已經達到了可視化編程的水平為什麼不用呢?原因很簡單,就是單片機沒有家用計算機那樣的CPU,也沒有像硬碟那樣的海量存儲設備。一個可視化高級語言編寫的小程序裡面即使只有一個按鈕,也會達到幾十K的尺寸!對於家用PC的硬碟來講沒什麼,可是對於單片機來講是不能接受的。 單片機在硬體資源方面的利用率必須很高才行,所以匯編雖然原始卻還是在大量使用。一樣的道理,如果把巨型計算機上的操作系統和應用軟體拿到家用PC上來運行,家用PC的也是承受不了的。
可以說,二十世紀跨越了三個「電」的時代,即電氣時代、電子時代和現已進入的電腦時代。不過,這種電腦,通常是指個人計算機,簡稱PC機。它由主機、鍵盤、顯示器等組成。還有一類計算機,大多數人卻不怎麼熟悉。這種計算機就是把智能賦予各種機械的單片機(亦稱微控制器)。顧名思義,這種計算機的最小系統只用了一片集成電路,即可進行簡單運算和控制。因為它體積小,通常都藏在被控機械的「肚子」里。它在整個裝置中,起著有如人類頭腦的作用,它出了毛病,整個裝置就癱瘓了。現在,這種單片機的使用領域已十分廣泛,如智能儀表、實時工控、通訊設備、導航系統、家用電器等。各種產品一旦用上了單片機,就能起到使產品升級換代的功效,常在產品名稱前冠以形容詞——「智能型」,如智能型洗衣機等。現在有些工廠的技術人員或其它業余電子開發者搞出來的某些產品,不是電路太復雜,就是功能太簡單且極易被仿製。究其原因,可能就卡在產品未使用單片機或其它可編程邏輯器件上。
單片機的應用領域
[編輯本段]
目前單片機滲透到我們生活的各個領域,幾乎很難找到哪個領域沒有單片機的蹤跡。導彈的導航裝置,飛機上各種儀表的控制,計算機的網路通訊與數據傳輸,工業自動化過程的實時控制和數據處理,廣泛使用的各種智能IC卡,民用豪華轎車的安全保障系統,錄象機、攝象機、全自動洗衣機的控制,以及程式控制玩具、電子寵物等等,這些都離不開單片機。更不用說自動控制領域的機器人、智能儀表、醫療器械了。因此,單片機的學習、開發與應用將造就一批計算機應用與智能化控制的科學家、工程師。
單片機廣泛應用於儀器儀表、家用電器、醫用設備、航空航天、專用設備的智能化管理及過程式控制制等領域,大致可分如下幾個范疇:
1.在智能儀器儀表上的應用
單片機具有體積小、功耗低、控制功能強、擴展靈活、微型化和使用方便等優點,廣泛應用於儀器儀表中,結合不同類型的感測器,可實現諸如電壓、功率、頻率、濕度、溫度、流量、速度、厚度、角度、長度、硬度、元素、壓力等物理量的測量。採用單片機控制使得儀器儀表數字化、智能化、微型化,且功能比起採用電子或數字電路更加強大。例如精密的測量設備(功率計,示波器,各種分析儀)。
2.在工業控制中的應用
用單片機可以構成形式多樣的控制系統、數據採集系統。例如工廠流水線的智能化管理,電梯智能化控制、各種報警系統,與計算機聯網構成二級控制系統等。
3.在家用電器中的應用
可以這樣說,現在的家用電器基本上都採用了單片機控制,從電飯褒、洗衣機、電冰箱、空調機、彩電、其他音響視頻器材、再到電子秤量設備,五花八門,無所不在。
4.在計算機網路和通信領域中的應用
現代的單片機普遍具備通信介面,可以很方便地與計算機進行數據通信,為在計算機網路和通信設備間的應用提供了極好的物質條件,現在的通信設備基本上都實現了單片機智能控制,從手機,電話機、小型程式控制交換機、樓宇自動通信呼叫系統、列車無線通信、再到日常工作中隨處可見的行動電話,集群移動通信,無線電對講機等。
5.單片機在醫用設備領域中的應用
單片機在醫用設備中的用途亦相當廣泛,例如醫用呼吸機,各種分析儀,監護儀,超聲診斷設備及病床呼叫系統等等。
此外,單片機在工商,金融,科研、教育,國防航空航天等領域都有著十分廣泛的用途。
學習應中六大重要部分
[編輯本段]
單片機學習應中的六大重要部分
一、匯流排:我們知道,一個電路總是由元器件通過電線連接而成的,在模擬電路中,連線並不成為一個問題,因為各器件間一般是串列關系,各器件之間的連線並不很多,但計算機電路卻不一樣,它是以微處理器為核心,各器件都要與微處理器相連,各器件之間的工作必須相互協調,所以就需要的連線就很多了,如果仍如同模擬電路一樣,在各微處理器和各器件間單獨連線,則線的數量將多得驚人,所以在微處理機中引入了匯流排的概念,各個器件共同享用連線,所有器件的8根數據線全部接到8根公用的線上,即相當於各個器件並聯起來,但僅這樣還不行,如果有兩個器件同時送出數據,一個為0,一個為1,那麼,接收方接收到的究竟是什麼呢?這種情況是不允許的,所以要通過控制線進行控制,使器件分時工作,任何時候只能有一個器件發送數據(可以有多個器件同時接收)。器件的數據線也就被稱為數據匯流排,器件所有的控制線被稱為控制匯流排。在單片機內部或者外部存儲器及其它器件中有存儲單元,這些存儲單元要被分配地址,才能使用,分配地址當然也是以電信號的形式給出的,由於存儲單元比較多,所以,用於地址分配的線也較多,這些線被稱為地址匯流排。
二、數據、地址、指令:之所以將這三者放在一起,是因為這三者的本質都是一樣的——數字,或者說都是一串『0』和『1』組成的序列。換言之,地址、指令也都是數據。指令:由單片機晶元的設計者規定的一種數字,它與我們常用的指令助記符有著嚴格的一一對應關系,不可以由單片機的開發者更改。地址:是尋找單片機內部、外部的存儲單元、輸入輸出口的依據,內部單元的地址值已由晶元設計者規定好,不可更改,外部的單元可以由單片機開發者自行決定,但有一些地址單元是一定要有的(詳見程序的執行過程)。數據:這是由微處理機處理的對象,在各種不同的應用電路中各不相同,一般而言,被處理的數據可能有這么幾種情況:
1•地址(如MOV DPTR,#1000H),即地址1000H送入DPTR。
2•方式字或控制字(如MOV TMOD,#3),3即是控制字。
3•常數(如MOV TH0,#10H)10H即定時常數。
4•實際輸出值(如P1口接彩燈,要燈全亮,則執行指令:MOV P1,#0FFH,要燈全暗,則執行指令:MOV P1,#00H)這里0FFH和00H都是實際輸出值。又如用於LED的字形碼,也是實際輸出的值。
理解了地址、指令的本質,就不難理解程序運行過程中為什麼會跑飛,會把數據當成指令來執行了。
三、P0口、P2口和P3的第二功能用法:初學時往往對P0口、P2口和P3口的第二功能用法迷惑不解,認為第二功能和原功能之間要有一個切換的過程,或者說要有一條指令,事實上,各埠的第二功能完全是自動的,不需要用指令來轉換。如P3.6、P3.7分別是WR、RD信號,當微片理機外接RAM或有外部I/O口時,它們被用作第二功能,不能作為通用I/O口使用,只要一微處理機一執行到MOVX指令,就會有相應的信號從P3.6或P3.7送出,不需要事先用指令說明。事實上『不能作為通用I/O口使用』也並不是『不能』而是(使用者)『不會』將其作為通用I/O口使用。你完全可以在指令中按排一條SETB P3.7的指令,並且當單片機執行到這條指令時,也會使P3.7變為高電平,但使用者不會這么去做,因為這通常這會導致系統的崩潰。
四、程序的執行過程: 單片機在通電復位後8051內的程序計數器(PC)中的值為『0000』,所以程序總是從『0000』單元開始執行,也就是說:在系統的ROM中一定要存在『0000』這個單元,並且在『0000』單元中存放的一定是一條指令。
五、堆棧: 堆棧是一個區域,是用來存放數據的,這個區域本身沒有任何特殊之處,就是內部RAM的一部份,特殊的是它存放和取用數據的方式,即所謂的『先進後出,後進先出』,並且堆棧有特殊的數據傳輸指令,即『PUSH』和『POP』,有一個特殊的專為其服務的單元,即堆棧指針SP,每當執一次PUSH指令時,SP就(在原來值的基礎上)自動加1,每當執行一次POP指令,SP就(在原來值的基礎上)自動減1。由於SP中的值可以用指令加以改變,所以只要在程序開始階段更改了SP的值,就可以把堆棧設置在規定的內存單元中,如在程序開始時,用一條MOV SP,#5FH指令,就時把堆棧設置在從內存單元60H開始的單元中。一般程序的開頭總有這么一條設置堆棧指針的指令,因為開機時,SP的初始值為07H,這樣就使堆棧從08H單元開始往後,而08H到1FH這個區域正是8031的第二、三、四工作寄存器區,經常要被使用,這會造成數據的渾亂。不同作者編寫程序時,初始化堆棧指令也不完全相同,這是作者的習慣問題。當設置好堆棧區後,並不意味著該區域成為一種專用內存,它還是可以象普通內存區域一樣使用,只是一般情況下編程者不會把它當成普通內存用了。
六、單片機的開發過程: 這里所說的開發過程並不是一般書中所說的從任務分析開始,我們假設已設計並製作好硬體,下面就是編寫軟體的工作。在編寫軟體之前,首先要確定一些常數、地址,事實上這些常數、地址在設計階段已被直接或間接地確定下來了。如當某器件的連線設計好後,其地址也就被確定了,當器件的功能被確定下來後,其控制字也就被確定了。然後用文本編輯器(如EDIT、CCED等)編寫軟體,編寫好後,用編譯器對源程序文件編譯,查錯,直到沒有語法錯誤,除了極簡單的程序外,一般應用模擬機對軟體進行調試,直到程序運行正確為止。運行正確後,就可以寫片(將程序固化在EPROM中)。在源程序被編譯後,生成了擴展名為HEX的目標文件,一般編程器能夠識別這種格式的文件,只要將此文件調入即可寫片。在此,為使大家對整個過程有個認識,舉一例說明:
ORG 0000H
LJMP START
ORG 040H
START:
MOV SP,#5FH ;設堆棧
LOOP:
NOP
LJMP LOOP ;循環
END ;結束
單片機學習
[編輯本段]
目前,很多人對匯編語言並不認可。可以說,掌握用C語言單片機編程很重要,可以大大提高開發的效率。不過初學者可以不了解單片機的匯編語言,但一定要了解單片機具體性能和特點,不然在單片機領域是比較致命的。如果不考慮單片機硬體資源,在KEIL中用C胡亂編程,結果只能是出了問題無法解決!可以肯定的說,最好的C語言單片機工程師都是從匯編走出來的編程者因為單片機的C語言雖然是高級語言,但是它不同於台式機個人電腦上的VC++什麼的單片機的硬體資源不是非常強大,不同於我們用VC、VB等高級語言在台式PC上寫程序畢竟台式電腦的硬體非常強大,所以才可以不考慮硬體資源的問題。
以8051單片機為例講解單片機的引腳及相關功能;
《單片機引腳圖》
40個引腳按引腳功能大致可分為4個種類:電源、時鍾、控制和I/O引腳。
⒈ 電源:
⑴ VCC - 晶元電源,接+5V;
⑵ VSS - 接地端;
註:用萬用表測試單片機引腳電流一般為0v或者5v,這是標準的TTL電平,但有時候在單片機程序正在工作時候測試結果並不是這個值而是介於0v-5v之間,其實這之是萬用表反映沒這么快而已,在某一個瞬間單片機引腳電流還是保持在0v或者5v的。
⒉ 時鍾:XTAL1、XTAL2 - 晶體振盪電路反相輸入端和輸出端。
⒊ 控制線:控制線共有4根,
⑴ ALE/PROG:地址鎖存允許/片內EPROM編程脈沖
① ALE功能:用來鎖存P0口送出的低8位地址
② PROG功能:片內有EPROM的晶元,在EPROM編程期間,此引腳輸入編程脈沖。
⑵ PSEN:外ROM讀選通信號。
⑶ RST/VPD:復位/備用電源。
① RST(Reset)功能:復位信號輸入端。
② VPD功能:在Vcc掉電情況下,接備用電源。
⑷ EA/Vpp:內外ROM選擇/片內EPROM編程電源。
① EA功能:內外ROM選擇端。
② Vpp功能:片內有EPROM的晶元,在EPROM編程期間,施加編程電源Vpp。
⒋ I/O線
80C51共有4個8位並行I/O埠:P0、P1、P2、P3口,共32個引腳。
P3口還具有第二功能,用於特殊信號輸入輸出和控制信號(屬控制匯流排)
『陸』 芯巴巴電子元器件MCU單片機工作原理是什麼
單片機由運算器、控制器、存儲器、輸入輸出設備構成。 單片機自動完成賦予它的任務的過程,也就是單片機執行程序的過程,即一條條執行的指令的過程,所謂指令就是把要求單片機執行的各種操作用的命令的形式寫下來,這是在設計人員賦予它的指令系統所決定的,一條指令對應著一種基本操作;