導航:首頁 > 操作系統 > 從零學51單片機

從零學51單片機

發布時間:2023-07-29 16:30:09

1. 51單片機系列:單片機最小系統

單片機是一種集成電路晶元。在單片機程序的控制下能准確、迅速、高效地完成程序設計者事先規定的任務。單片機最小系統,或者稱為最小應用系統,是指用最少的元件組成的單片機可以工作的系統。下面給大家介紹51單片機最小系統,一起學習。

工具/材料

單片機

下圖是最小系統原理圖,就是靠這四個部分,單片機就可以運行起來了。第一部分電源組,習慣說負極為”地”,上面GND就是英文ground的縮寫。第二部分晶振組,過濾掉晶振部分的高頻信號,讓晶振工作的時候更加穩定。

第三部分復位組,單片機自動復位,從零開始執行程序,這個就是復位的概念。第四部分其它功能組,使用單片機的內部存儲器,如果內部存儲器不夠容量,最多選擇更高級容量的單片機型號,就可以解決問題。

51單片機最小系統晶振的振盪頻率直接影響單片機的處理速度,頻率越大處理速度越快。

對於一個完整的電子設計來講,首要問題就是為整個系統提供電源供電模塊,電源模塊的穩定可靠是系統平穩運行的前提和基礎。51單片機雖然使用時間最早、應用范圍最廣,但是在實際使用過程中,一個和典型的問題就是相比其他系列的單片機,51單片機更容易受到干擾而出現程序跑飛的現象,克服這種現象出現的一個重要手段就是為單片機系統配置一個穩定可靠的電源供電模塊。

此最小系統中的電源供電模塊的電源可以通過計算機的USB口供給,也可使用外部穩定的5V電源供電模塊供給。電源電路中接入了電源指示LED,圖中R11為LED的限流電阻,S1 為電源開關。

復位電路由按鍵復位和上電復位兩部分組成。

上電復位:STC89系列單片及為高電平復位,通常在復位引腳RST上連接一個電容到VCC,再連接一個電阻到GND,由此形成一個RC充放電迴路保證單片機在上電時RST腳上有足夠時間的高電平進行復位,隨後回歸到低電平進入正常工作狀態,這個電阻和電容的典型值為10K和10uF。
按鍵復位:按鍵復位就是在復位電容上並聯一個開關,當開關按下時電容被放電、RST也被拉到高電平,而且由於電容的充電,會保持一段時間的高電平來使單片機復位。

單片機系統里都有晶振,在單片機系統里晶振作用非常大,全程叫晶體振盪器,他結合單片機內部電路產生單片機所需的時鍾頻率,單片機晶振提供的時鍾頻率越高,那麼單片機運行速度就越快,單片接的一切指令的執行都是建立在單片機晶振提供的時鍾頻率。

在通常工作條件下,普通的晶振頻率絕對精度可達百萬分之五十。高級的精度更高。有些晶振還可以由外加電壓在一定范圍內調整頻率,稱為壓控振盪器(VCO)。晶振用一種能把電能和機械能相互轉化的晶體在共振的狀態下工作,以提供穩定,精確的單頻振盪。

P0口外接上拉電阻。

51單片機的P0埠為開漏輸出,內部無上拉電阻,如下圖。所以在當做普通I/O輸出數據時,由於V2截止,輸出級是漏極開路電路,要使“1”信號(即高電平)正常輸出,必須外接上拉電阻。

單片機的應用分類

通用型。

這是按單片機(Microcontrollers)適用范圍來區分的。例如,80C51式通用型單片機,它不是為某種專門用途設計的;專用型單片機是針對一類產品甚至某一個產品設計生產的,例如為了滿足電子體溫計的要求,在片內集成ADC介面等功能的溫度測量控制電路。

匯流排型。

這是按單片機(Microcontrollers)是否提供並行匯流排來區分的。匯流排型單片機普遍設置有並行地址匯流排、 數據匯流排、控制匯流排,這些引腳用以擴展並行外圍器件都可通過串列口與單片機連接,另外,許多單片機已把所需要的外圍器件及外設介面集成一片內,因此在許多情況下可以不要並行擴展匯流排,大大減省封裝成本和晶元體積,這類單片機稱為非匯流排型單片機。

控制型。

這是按照單片機(Microcontrollers)大致應用的領域進行區分的。一般而言,工控型定址范圍大,運算能力強;用於家電的單片機多為專用型,通常是小封裝、低價格,外圍器件和外設介面集成度高。 顯然,上述分類並不是惟一的和嚴格的。例如,80C51類單片機既是通用型又是匯流排型,還可以作工控用。

2. 零基礎怎麼學單片機

可以的,單片機不難,先學C語言,英語常用的單詞認識就行,一般都可以用翻譯軟體。0基礎建議先學51

3. 零基礎怎麼學單片機

首先需要有一定的電子電路基礎,例如數電和模電,得有基礎,再就是C語言基礎,這兩樣都會的話,兩者湊起來就是單片機了。可以淘寶買一個單片機開發板,51系列的和stm32的都有,51系列的一個開發板幾十塊錢不貴,還送教程,還是比較容易入門的

4. 新手學單片機怎麼入門

循序漸近,一點點吃透學習,方法如下:

1、選擇一本好教材,建議《51單片機輕松入門 基於STC15W4K系列》這本,內容新,講解透徹,有配套視頻可輔助參考,不管是初學入門還是已經懂得單片機皮毛,滿足所有需求。

2、有了書就要理解意思,所以要吃透教材,看不懂也不要緊,多看,多問,在問題中尋找學習方向。

3、選擇配套產品,不要在乎板子的資源多少,推薦吳鑒鷹的單片機,開發板性價比高;軟體建議用Keilc51,硬體要有pc機和開發板,開發板要求有流水燈、數碼管、獨立按鍵、矩陣鍵盤、ad轉換、液晶屏、蜂鳴器,這就差不多了。其它不明白的就網上找視頻找教程,總會有解答的東西。

4、操練起來,從最基本的流水燈開始,試著先控制一個發光管,慢慢的變換花樣,做出自己的個性來。

5、帶著問題解決問題,一開始先不要找人請教,自己試,這樣記憶最深刻,也最有效果,但也不要鑽牛角尖,實在不行就問,要不剛建立起來的那點想法就打擊沒有了。

6、當技術水平,學習方法,心理素質都達到一定的境界了,就算入門了,接下來就要看個人的努力和悟性怎樣了,當然在學習單片機的過程中必須遵循一定的原則,堅守住一定的底線,這樣才能用最少的經歷,在最短的時間內獲得大的進步。

5. 51單片機怎麼入門

1、建議你買個開發板,200塊的配置都非常全了,硬體有個直觀認識
2、網上有視頻教程《十天學會單片機》、《力天手把手教你單片機》等一些可以讓你快速入門,看視頻做筆記,邊練習,進步很快。手頭應該有些比較全面的單片機的書,方便查閱。
3、如果沒有開發板,只有用proteus模擬軟體,我推薦《單片機C語言程序設計實訓100例——基於8051+Proteus模擬》這本書
請看郭天祥大師的《怎樣學習單片機》
很多單片機初學者問我的第一句話就是怎樣才能學好單片機?對於這個問題我今天就我自己是如何開始學單片機、如何開始上手、如何開始熟練這個過程給大家講講。先說說單片機,我們現在用的比較多的是8051單片機,它的資料比較多,用的人也較多,市場也很大,51單片機內部結構比較簡單,非常適合初學者學習,建議初學者將51單片機做為入門級晶元。單片機屬於硬體,我強烈不推薦大家使用單片機模擬軟體來學習單片機,也可以肯定的告訴大家,使用模擬軟體是學不會單片機的,硬體只有把它擺在你的面前,親自操作它,才會有深刻的體會,才能學明白它。單片機這門課是一科非常重視動手實踐的科目,不能總是看書,但是也不能完全不看書,我們需要從書中大概了解一下單片機的各個功能寄存器,如果看的多了反而容易搞亂,尤其是現在市場上大多數講單片機的書一開始就講解較復雜的內存、地址、存儲器什麼的,更讓初學者感到不知所雲、難以入門。簡單的說,當我們使用單片機時,實際上就是用我們自己編寫的軟體去控制單片機的各個功能寄存器,再簡單些,就是控制單片機哪些引腳的電平什麼時候輸出高,什麼時候輸出低。由這些高低變化的電平來控制外圍電路,實現我們需要的各個功能。

關於看書,大家只需大概了解單片機各引腳的功能,了解下寄存器。第一次、第二次你可能看不明白,但這不要緊,因為還缺少實際的感觀認識。所以我總是說,學單片機看書看兩三天就夠了,而我們要把更多的時間放到實踐中去,這才是最關鍵的,在實踐的過程有不懂之處再查書,這樣記憶才深刻。關於實踐有兩種方法你可以選擇,方法一、你自己花錢買一塊單片機的學習板,不要求那種價格上千塊功能太太全的,對於初學者來說你買功能太全的板子,上面有很多東西你這輩子都用不著,我建議有流水燈、數碼管、獨立鍵盤、矩陣鍵盤、AD 和DA、液晶、蜂鳴器、IIC匯流排、有USB擴展也最好,這些就差不多了。如果說我上面提到的這些功能你能熟練應用,那可以說對於單片機本身的操作你已經入門了,剩下的就是自己練習設計外圍電路,不斷的積累經驗。只要過了第一關,後面的路就好走多了,萬事開頭難,大家都聽過。方法二、你身邊如果有單片機方面的高手,向他求助,讓他幫你搭個簡單的最小系統板。對於高手來說,做個單片機的最小系統板可能只需要幾分鍾的時間,而對於初學者可就難多了,因為只有對硬體徹底了解了,你才能熟練的駕馭它。而如果你身邊沒有這樣的高手,又找不到可以幫助你的人,那我勸你還是選擇方法一,畢竟自己有一塊學習板要方便的多,以後做單片機類的小實驗時經常都能用得上,省時又省事。

有了單片機學習板之後你就要多練習,最好是自己有台電腦,少看電影,少打游戲,把學習板和電腦連好,打開調試軟體坐在電腦前,先學會怎麼用調試軟體,然後從最簡單的流水燈實驗做起,等你能讓那八個流水燈按照你的意願隨意流動時你已經入門了,你會發現單片機是多麼迷人的東西啊,太好玩了,這不是在學習知識,而是在玩,比起跑跑卡丁車,比起魔獸世界,要好玩的多的多。當你編寫的程序按你的意願實現時,你比做任何事都開心,你會上癮的,真的,做電子設計的人真的會上癮。然後讓數碼管亮起來,這兩項會了後,你已經不能自拔了。就是要這樣練習,在寫程序的時候你肯定會遇到很多問題,而這時你再去翻書找,或是問別人,或是上網搜索。當得到解答後你會記住一輩子的,知識必須應用於現實生活中,解決實際問題,這樣才能發揮它的作用,你自己好好想想,上了這么多年大學,天天上課,你在課堂上學到了什麼?是不是為了期末考試而忙碌呢?考完得了90分,哈哈哈好高興啊,過一個假期,甚至過一個周末,然後忘的一干二凈,是不是?你學到什麼了?我認為這樣的生活沒有意義。但是我告訴你單片機一旦學會,永遠不會忘了。

另外我再說說關於用匯編語言還是C語言編程的問題。很多同學大一、二就開設了C語言的課,我也上過,我知道那時上課老師講的就是幾乘幾、幾加幾、求個階乘、畫個星星、編個月亮什麼的。學完了有什麼用?雖然考試我考了90分,可我心裡比誰都明白,C語言到底是什麼?它有什麼用?到底它能做什麼我一無所知。我們不能過多的評價當今的高校教育,但我們必須得為自己負責任。讓你用C語言編單片機的程序你是不是就傻了?單片機編程用C語言或匯編語言都可以,但是我建議用C語言比較好,如果原來有C語言的基礎那學起來會更好,如果沒有,也可以邊學單片機邊學C語言,C語言很簡單,只是一門工具而已,我勸大家最好學好學精它,將來肯定用得著,要不然以後也得學,你一點匯編都不會根本無所謂,但你一點C語言都不會那你將來會吃苦頭。給大家推薦一本書,作者譚浩強,書名<程序設計>>,清華大學出版社,大家在學習本書的同時再參考上面提到的這本書更有利C語言學習。也根本沒必要再從頭把<程序設計>>學一邊,就算再學一邊也許結果還是和你現在一樣,最好的辦法就是用到哪裡學哪裡。匯編寫程序代碼效率高,但相對難度較大,而且很繁瑣,尤其是遇到演算法方面的問題時,根本是麻煩的不得了,現在單片機的主頻在不斷的提高,我們完全不需要那麼高效率的代碼,因為有高頻率的時鍾,單片機的ROM也在不斷的提高,足夠裝得下你用C語言寫的任何代碼,C語言的資料又多又好找,將來可移植性非常好,所以我勸大家用C語言。

總結上面,只要你有信心,做事能堅持到底,有不成功絕不放棄的強烈意志,那學個單片機對你來說就是件非常容易的事。建議步驟:
1 、看書大概了解一下單片機結構,大概了解就行。不用都看懂,又不讓你出書。
2 、用學習板練習編寫程序,學單片機主要就是練編程序,遇到不會的再問人或查書。
3 、自己網上找些小電路類的資料練習設計外圍電路。焊好後自己調試,熟悉過程。
4 、自己完全設計具有個人風格的電路、產品 … 你已經是高手了。

6. 51單片機初學者該怎麼學

51單片機初學者學習步驟:

1.第一步:基礎理論知識學習。

單片機編程用C語言或匯編語言都可以,但是我建議用C語言比較好,模塊化管理編程方便,移植性強,適合編寫大程序。如果是用C語言編程對單片機進行編程,需要掌握的知識就那麼3個條件判斷語句、3個循環語句、3個跳轉語句和1個開關語句。別小看這10個語句,用他們組合形成的邏輯要多復雜有多復雜。

學習時要一條語句一條語句的學,學一條活用一條,全部學過用過這些關鍵語句後,相信你的C基礎建立了。你會感覺到單片機不再難學了,而且越學越起勁,在這一過程中我們最好找一本單片機相關的參考書來學習,比如王雲51單片機C語言教程,結合書帶的雲龍51教學視頻一起學習更好理解。

2.第二步:單片機編程。

有一套完寬老整的學習開發工具學習單片機是需要成本的。必須有一台電腦、一塊單片機開發板、一本單片機教材(帶教學視纖差頻的)。電腦是用來編寫和編譯


早了,起慎豎升碼要學了數電和模電以後,尤其是數電


7. 如何自學單片機

1、熟悉單片機的原理,結構; x0dx0a2、學好數電,模電,為設計電路打好基礎; x0dx0a3、熟練使用C語言,多學習別人的程序;x0dx0a4、對操作系統原理有一定的了解; x0dx0a5、Protel至少要有點基礎;x0dx0a6、要實際動手調試電路的能力。x0dx0ax0dx0a學習單片機的步驟 x0dx0ax0dx0a當前的單片機種類很多,但是 51 是最基礎的,因此單片機的學習最好也是從 51 開始,不僅容易上手,而且相當實用。然而 51 單片機畢竟過於基礎,後來的很多單片機在功能上都有很大的擴展,因此按照我們實驗室多數人的路線接下來大多數人會學習 AVR 單片機, AVR 單片機在功能上較 51 有很大提升,集成了 A/D 、快速 PWM 等很多實用的功能,而且和很多大型的單片機在功能上有很多類似之處,因此如果以後還想掌握其他單片機 AVR 無疑是一個很好的跳板。 x0dx0ax0dx0a學習的過程 x0dx0ax0dx0a學習單片機最終要的是當然是練,我所說的學習跟課堂上的單片機學習不同,我以前也看過一些單片機教材,有些教材講的是單片機的工作原理和內部結構,這些東西對於我們暫時並不需要,等以後開課的時候在學習好了。現在要學習的是暫時拋開內部結構原理不談,如何能用單片機寫一些簡單的小程序,是從實用性的角度出發,網上有一種說法稱之為先實踐後理論的學習方法。 x0dx0ax0dx0a因此我的觀點如下,單片機的硬體結構首先要有一個基本的了解,最起碼要知道各引腳的功能、區別,能自己動手搭一個單片機的最小系統,然後就可以直接從程序入手,程序最好還是用 C 語言編程,從簡單的跑馬燈做起,逐漸深入,陸續可以做一些數碼管、液晶、 DS1302 、 DS18B20 等電子元器件的應用,在深入就可以結合一些具體實例擴展一些中斷、串口通訊等功能。還有一點要聲明的是單片機里用到的 C 語言其實很有限,課堂上學習 C++ 的很大一部分內容在初期單片機編程中都用不到,因此沒必要因為覺的自己的 C 語言基礎不是很好而對單片機望而止步! x0dx0ax0dx0a學習的工具 x0dx0ax0dx0a 軟體方面方面, 51 單片機用的是 KEIL 軟體,這個軟體在學校圖書館軟體下載和其他網站上都有,具體用法自己查找相關資料, AVR 的軟體就比較多了,我用的是 CVAVR ,另外還有 ICCAVR 等多款編譯軟體,這要看個人喜好了,建議有了一定的 51 基礎再學。另外就是燒寫軟體,燒寫軟體的作用就是將編譯器生成的 HEX 文件燒寫至單片機里,這要配合下載線實用,如果有並口的話最好用並口下載線,軟體最好用廣州雙龍的 SLISP 軟體,如果是筆記本沒有並口的話則要自己買一個下載器了,名稱為 USBASP ,網上電子市場有賣 20 塊錢左右,軟體會隨光碟自帶。 x0dx0ax0dx0a 硬體方面,首先是要有單片機,對於單片機有一點要注意, 51 單片機最好買 89S51 、 89S52 這兩種型號,上面我所說的燒寫程序是 ISP 方式,這兩種單片機支持 ISP 下載,所以如果買其他型號的燒寫程序可能會不太方便, AVR 單片機常用的就是 ATmega16L 其它型號的區別也不是很大,甚至有些兼容。至於單片機開發板,目前的價格都很貴,從一百到幾百不等,不過像上次學校里廣告的那個六十多塊錢的最好還是免了,沒什麼作用。能買一塊當然好,沒有的話也不要緊,自己動手買個電路板搭一下也很方便,引出 ISP 介面,燒寫程序十分容易,然後將 I/O 口引出擴展也很方便。 x0dx0ax0dx0a學習單片機的其它幾個注意點: x0dx0ax0dx0a1 .理論與實踐並重 x0dx0a 對一個初學單片機的人來說,如果按教科書式的學法,上來就是一大堆指令、名詞,學了半天還搞不清這些指令起什麼作用,也許用不了幾天就會覺得枯燥乏味以致半途而廢。所以學習與實踐結合是一個好方法,邊學習、邊演練,循序漸進,這樣用不了幾次就能將所用到的指令理解、吃透、紮根於腦海,甚至 「 根深蒂固 」 。也就是說,當你學習完幾條指令後 ( 一次數量不求多,只求懂 ) ,接下去就該做實驗了,通過實驗,使你感受到剛才的指令產生的控制效果,眼睛看得見 ( 燈光 ) 、耳朵聽得到 ( 聲音 ) ,更能深刻理解指令是怎樣轉化成信號去實現控制的,通過實驗看到自己所學的成果不僅有一種成就感也能提升你對單片機的興趣。說句實在話,單片機與其說是學出來的,還不如說是做實驗練出來的,何況做實驗本身也是一種學習過程。因此邊學邊練的學習方法,效果特別好。 x0dx0a 2 .合理安排時間持之以恆 x0dx0a 學習單片機不能 「 三天打魚、兩天曬網 」 ,要有持之以恆的毅力與決 4 心。學習完幾條指令後,就應及時做實驗,融匯貫通,而不要等幾天或幾個星期之後再做實驗,這樣效果不好甚至前學後忘。另外要有打 「 持久戰 」 的心理准備,不要興趣來時學上幾天,無興趣時涼上幾星期。學習單片機很重要的一點就是持之以恆。 x0dx0ax0dx0a3 .遇到問題耐心檢查 x0dx0ax0dx0a單片機有軟硬體兩方面的內容,有時一個程序怎麼調都不出效果,然而從理論分析卻又是對的,這是就要仔細找原因了,學習單片機經常碰到很多問題,有時一兩天都不能解決,這是就要有耐心,從底層找起,相信每找出一個錯誤都會有一個新的收獲。切不可輕言放棄!!! x0dx0a 4 .對只短暫學過一遍的知識,充其量只比浮光掠影稍好。因此,較好的方法是過一段時間後 (1-2 個月 ) 再重新學一遍,學過的知識要經常運用,這樣反復循環幾次就能徹底弄懂消化,永不忘卻。 x0dx0a 5 .要進行適當投資購買實驗器材及書籍資料 x0dx0a 單片機技術含金量高,一旦學會後,給你帶來的效益當然也高,無論是應聘求職還是自起爐灶開廠辦公司,其前景都光明無限。因此在學習時要捨得適當投資購買必要的學習、實驗器材。另外還要經常去科技圖書店看看,購買一些適合自己學習、提高的書籍。一本好的書籍真的很重要,可以隨時翻閱,隨時補充不懂或遺忘的知識。

8. 准備學習51單片機,需要哪些預備知識盡量說的全面些,謝謝大牛!

1、先學基礎的,比如51單片機。先認真看一下51單片機的原理,硬體結構,明白為什麼可以通過編程來完成各種功能。
2、然後學習一下51單片機的各功能模塊(主要是相應寄存器的學習和掌握,比如與串口通信有關的寄存器,與定時/計數器有關的寄存器),這些都是應用時經常用到的。
3、去弄一塊學習板,功能不一定要非常多,但基本的模塊要有,比如:數碼管,獨立按鍵,矩陣按鍵,液晶介面,DS18B20(單匯流排),24C02(IIC匯流排),93C46(SPI介面),紅外接收,等。掌握了上述的模塊,就基本上有一定基礎了。
4、多看,多動手,多編程,多想。
5、多交流。

9. 從零開始學51單片機能學好嗎

51單片機算是比較好學的了,有一點c語言基礎學起來並不難,可以自己買一塊51單片機的開發板回來,一般都配套教程的,並不怎麼難

閱讀全文

與從零學51單片機相關的資料

熱點內容
伺服器銷售怎麼做好 瀏覽:85
什麼是com編程 瀏覽:848
演算法工程師最新資訊 瀏覽:608
郵政銀行卡怎麼在app簽約綁定 瀏覽:49
壓縮卷一直轉 瀏覽:976
初一編程小程序怎麼做 瀏覽:826
bt軟體文件夾名稱 瀏覽:157
unix創建命令 瀏覽:622
devc是多少位的編譯器 瀏覽:980
怎麼樣能快點升安卓系統 瀏覽:976
奇跡mu用什麼伺服器 瀏覽:605
如何讓軟體在多個安卓系統上運行 瀏覽:573
java判斷半形 瀏覽:880
java判斷正負 瀏覽:320
刷頭條程序員的日常 瀏覽:102
吉林程序員吐槽 瀏覽:243
單片機溫度范圍 瀏覽:420
程序員為什麼素質低 瀏覽:897
可愛的程序員小姐姐 瀏覽:147
伺服器上網站的地址 瀏覽:800