肺腑之言-寫給喜歡單片機的初學者

2021-01-11 電子產品世界

首先是兩個字 「喜歡」!!

本文引用地址:http://www.eepw.com.cn/article/170492.htm

一個東西 光有10分鐘的熱度是不夠的

從事單片機 就意味著你以後是和枯燥的程序 調試 亂碼 未知的軟硬體錯誤 熬夜 臉上的豆豆 什麼什麼的聯繫在一起(有點誇張 哈哈)

如果你選擇了這種生活 並且確定你有一種精神能指引你一路走到底 至於什麼精神 只有你自己知道 是滿屏幕的 0101 還是 一串串胡亂的ABCD

還是 成功後的成就感 還是天生俱來的對電子類東西的 痴迷 還是喜歡別人在外面花天酒地 卻喜歡獨坐電腦面前 攻克技術的顛峰 不需要理由

世界上就有這樣一種人 不需要理由

那麼確定了上面的之後 讓我們開始吧 單片機 也叫做單板機 單片微型計算機 麻雀雖小 五臟俱全 那麼如果你學過計算機組成原理 我相信你應該能更好的理解 單片機的內部結構 如果沒有學過 也不要緊 那就拿小麻雀開刀 再一層層 自下而上的 到我們所用的PC

剛開始學單片機的時候 看到厚厚的一本書 不要一咬牙 要一下子把書全部看完 看得仔仔細細 明明白白 先看看目錄 無非就是 介紹單片機的歷史 然後它內部的組成原理 然後是指令 然後就是接口 先說歷史 知道51單片機是現在資料最豐富 最適合上手拿來開刀的就是了 不要覺得書上的 知識老 這都 N多年前的了 現在是不是都不一樣了 兼容這個詞 比如你用 ATC51 寫的程序 拿到 ATS51 52 STC 都能用 只是 後續的片子 在一些地方更加完善 功能更強大

比如 在書上來掉牙的 2051 上的 MOV A,#00H 到其他 51系列的 上也是一樣的 你看它的片子的介紹上 寫了一句 「完全兼容51系列單片機」 那麼OK

別管那麼多 只管用就是了 我發覺我廢話多了 這不知道寫到那去了。。抽跟煙 繼續。。。

上面的意思是說 面前是一坐山 很高 然後我就一咬牙 嗎的 慢慢爬吧 我不信我爬不上去了 或許爬到一半就退縮了 退而再攻之

我拿個測量儀來 噢 原來這山總共7000米 半山腰有個亭子 到那是3500米 剛開始那1000米 坡度很小 2000米的時候有個 茅房(^_^) 6000米的時候有個美女正在洗澡 山頂有個和尚廟 行 心中有了底 上!!

剛開始的時候初學一定要用彙編 可能大家也看到了 關與C和彙編的討論 各有各的說法 我個人覺得初學者 完全沒有必要去追求什麼飄逸的風格

就用笨拙的彙編 雖然它像一頭大苯熊一樣 但是 當你能和大笨熊 親切的交流 屈駕自如的時候 再去和 漂亮的兔子MM 鴛鴦戲水 會更加的得心應手

彙編剛開始你會覺得很煩 就是 在那 MOV 過去 MOV 過來 JB JC JNB JNC DJNZ 很難記 不像C 一個 IF 一個 DO WHILE 就搞定的事

但是 用彙編你能更加了解 一條指令在 CPU 內存 的執行過程 能更加親切的和 P0 P1 P2 P3 的每一個 口線 交流 不需要C 的屏蔽底層 而是直接的就和底層 親密接觸 這裡有人要說我了 什麼什麼的 還是那句話 個人意見 僅供參考 在寫延時程序的時候 DJNZ 是雙周期指令 比如12M的 那麼 一條指令是1US 那麼你要精確的知道自己這段延時 能延時多少US 多少MS 那麼你對 51單片機內部的 指令 周期 對以後寫有嚴格時序操作的程序 就更加得心應手 比如 看到一個片子的PDF 數據總線 要拉低多少MS 地址總線 要拉高多少US 等待周期要等待多少US/MS 那麼 不要懷疑 自己寫 指令 搞定它 成功以後 你會發現你從 最底層的了解了 一個片子是怎麼傳送數據 怎麼通信 這樣的經歷 對你以後再接觸其他 片子的時候是莫大的幫助

像關於書上的內容 指令不用記得那麼死 或者說完全不需要記 需要的時候 馬上查 在查的過程中 會更加加深你的印象(說點丟人的話 JC JB JNB JB 這些 指令我到現在都從來不記 我又不應付考試 我書隨時就在旁邊 用的時候去翻就是了 )

這也就提到了練習

程序 和指令 不要只看不用 實踐是檢驗真理的唯一標準 實踐出真知 這都是老話了 不過用在單片機的學習上是太貼切了 單片機 本來就是實踐性很強的

像我在學校的時候 每次實驗課 都認真的做 抓住每次上機的機會 板子很貴 自己買不現實 而上機的時候能接觸到的每一次都很寶貴

LED流水燈 十字口 交通燈 這些程序很基礎 在一次 一次的小程序成功的過程中 你會更加喜歡上單片機 並且堅定繼續為之不離不棄的決心

熟能生巧 我還記得我剛開始的時候 經常是 把指令寫錯 把 跳轉的標號寫錯 經常用系統 的關鍵字 變量未定一存儲空間就用 等等等等。。 但是 一次 又一次錯誤 下來 得到的是程序的正確性的大大的提高

在這裡我建議 剛開始先多讀別人的程序 而且是完整的 備註多的 格式規範的 從最開始就養成良好的 編程風格 而不是隨意的亂添亂加 胡亂的複製粘貼

看懂 別人程序裡的每一句代碼的意思 為什麼要加這條 這條指令的作用是什麼 如果不清楚 馬上翻書去查 在查的過程中 更加加深對這條指令 或者這段子程序的用法的深刻的記憶 下次自己用的時候 才能像自己一樣的拿來 得心應手 這也是為什麼要選擇51系列的單片機 應該它的示例代碼 網上鋪天蓋地 而且高手也不會吝嗇的把 初學要用的代碼 還設置成什麼自動回復 才能看才能下載 得到這些 代碼的途徑是很方面的 得到的有用的信息也是最多的 像 1302 1602 DS18B20 LED 串口 DA AD 常用的接口與51的驅動程序 這些網上都有很多 彙編版本 的 C 版本的 不要覺得都是幾年前的東西 都是人轉來轉去 老掉牙的東西 先都拿來消化掉 再為自己所用

大家也許也發現了 在BAIDU 裡找一些程序的時候看到一版的彙編 代碼 但是沒有一點注釋 2個字 痛苦 所以 為了方便大家 也位了以後你能方便別人

剛開始寫程序就要習慣 給程序寫備註 為了別人能看懂 像一個大的工程 都是團隊合作 你幾千的代碼 沒有備註 別人幾千的代碼也沒備註 那好吧 先花個1天的時間把程序看懂了 再幹其他的吧

程序中像子程序的說名 入口參數 出口參數 內存的分配 關鍵語句的 單條備註 標號的頂格 代碼的 縮進 等等 良好的編程風格絕對會讓你在以後的工作和學習過程中事半功倍

;

;****子程序

;

next:

mov a,th0 ;//讀取計數值TH0

swap a ;//高4位與低4位對換

mov r1,a ;//保存到R1

anl tl0,#0f0h ;//取TL0高4位,低4位忽略不計

相關焦點

  • 初學者關於單片機的幾個最關心的問題
    現在很多晶片都支持ISP(在線可編程),初學者可買一條下載線就可以了(本站實驗板配有下載線,可無需另購買)。3,要有一個仿真器,用來實時仿真,隨時發現問題,修改程序,提高編寫程序的效率。市場價位一般在1000~3000左右,硬體的仿真器固然是好。但是對於初學者一般來講實在有些壓力,尤其是怕自己要是學不明白的話就等於白花錢了!
  • 90%的單片機初學者,都會遇到的10個問題
    而且一些單片機廠家也不一定能提供C編譯器。而彙編語言,一條指令就對應一個機器碼,每一步執行什么動作都很清楚,並且程序大小和堆棧調用情況都容易控制,調試起來也比較方便。所以在資源較少的單片機開發中,還是建議採用彙編語言比較好。 在單片機開發中,主要是彙編和C,沒有用C++的。
  • C51單片機電子防丟器實例
    資源下載:關注我們「單片機」,回復「教程」獲取單片機電子書,回復
  • STC單片機和STM32單片機哪個更適合入門?
    由於在國內,STC系列的51單片機市場佔有率最高,參考資料和使用人群眾多,因此,在下文中,我們將以STC單片機作為51單片機的代表。正如,STM32單片機作為基於ARM公司Cortex-M3內核單片機的代表一樣。在這裡STC單片機是51單片機的代表,STM32是基於ARM公司Cortex-M3內核單片機的代表。
  • 在今天這個時代下,51單片機會被淘汰掉嗎?
    我走過了一條工業發展之路,新的總會淘汰舊的,那我不禁想到,今天學的單片機,明天是不是也要淘汰?首先,個人覺得,淘汰是不可能的,但發展是一定的,以後的單片機會更加複雜是一個趨勢,工業生產技術 的提高。我們學的51單片機是一類單片機的一個統稱,常見的51是AT89C51和STC89C51,這些都是8位單片機,很經典的產品。
  • 51單片機、STM32單片機、PIC單片機性能對比
    51單片機 應用最廣泛的8位單片機當然也是初學者們最容易上手學習的單片機,最早由Intel推出,由於其典型的結構和完善的總線專用寄存器的集中管理,眾多的邏輯位操作功能及面向控制的豐富的指令系統,堪稱為一代「經典」,為以後的其它單片機的發展奠定了基礎。
  • 單片機程序怎麼燒寫?各種單片機程序燒寫方法,快來看看吧!
    單片機學習、使用非常重要的一個步驟就是把寫好的程序燒寫到單片機裡,好多初學者,好不容易才寫好一個程序,馬上想讓他跑起來,但是如何燒寫程序確犯難了!我把單片機常用的燒寫方法做了一下歸納,希望能夠幫到大家!
  • 收藏級:寫給初學者的跑步錦囊
    收藏級:寫給初學者的跑步錦囊On Running跑步很有趣,如果入門了的話。最近有朋友問我,初學者想要去跑步,有沒有什麼經驗可以分享。對於初學者而言,哪個時間能控制,能長期存在於你的生活之中,你就選擇在哪個時間跑。所有說「沒時間跑步」的人,請先自我反思,面壁一小時,然後再回答,是「真的沒時間」跑步嗎?還是不願、不想和不屑。請記住這樣一句話:如果你不能按照思考的方式去生活,就只能按照習慣的方式去思考。
  • 寫給前端初學者,如何學好 JavaScript 和 CSS
    本文寫給即將邁入第二職業的朋友,希望能對幫助您更好的學習前端知識有所指引幫助。本文假定您已經對 HTML 、CSS 和 JavaScript的概念有所了解。關注一些專業領域的人經常去頭條、博客、專業性網站關注一些前端開發人員,他們製作的教程是他們多年的工作積累,非常實用,如果您是初學者,看不懂沒關係,可以將它們收藏,作為您日後的知識儲備。
  • 寫給鋼琴初學者的一封信
    本人音樂入坑數十載,含淚寫下這篇針對鋼琴初學者的建議,無論你是自學,還是準備讓自己家的小朋友學,請一定要耐心看完。作為一名資深的過來人,我有足夠的理由相信,有很多人在學鋼琴的時候,除了選老師,報課以外,還有個比較頭疼的就是買鋼琴!
  • 初次接觸單片機,你會選擇哪款呢
    做電子產品設計,肯定要與單片機打交道。單片機是整個電子產品的核心,相當於人類的心臟。所以,單片機是一款極其重要的電子元器件。硬體,就是指的硬體電路,包括單片機的外圍電路和其它驅動電路。軟體,就是單片機的運行程序,主要c語言和彙編語言編寫。如果大學期間,初次接觸的單片機應該是51單片機。很多大學開設單片機課程,均選擇51單片機。主要是51單片機比較容易上手。它總共40個引腳,有4組IO口,每組有7個IO。單片機外設功能也單一。
  • 8051單片機簡史:深度認識8051單片機的來龍去脈
    8051單片機具有許多功能,例如:串行通信、定時器、中斷等,因此許多學生和初學者都開始使用8051單片機來研究單片機的概念(儘管隨著Arduino的引入,這種趨勢似乎有了一些改變)。即使8051單片機可能看起來有些過時,我們仍認為它是開始學習單片機、嵌入式系統和編程(包括C和彙編語言)的最佳平臺之一。
  • Linux基礎入門:單片機和Linux有什麼不同嗎
    我發現很多初學者只有單片機基礎,甚至沒有單片機基礎。在學習Linux時,對很多概念比較陌生,導致不知道學什麼,也不知道學了之後有什麼用。所以小編在此分享此文。而不應該根據個人偏好來選擇:我喜歡單片機,所以就排斥使用Linux;我喜歡Linux,就排斥使用單片機。為了有更多的選擇,我們需要既懂單片機,又懂Linux。
  • Proteus與Arduino的整合在單片機系統開發中的應用
    ,使使用者不用關心單片機編程繁瑣的細節,如寄存器、地址指針等基本不用管,從而大大降低了單片機系統開發難度,特別適合老師、學生和一些業餘愛好者使用。  由於Arduino使用者一般都是那些對電路知識、電子技術及單片機技術等了解不深入的初學者,如何在Arduino開發過程中快速有效的提高他們的單片機系統開發能力及電子電路設計能力是一個需要迫切解決的問題。  Proteus的引入較好的解決了存在的問題。
  • 單片機控制八隻數碼管滾動顯示1~8 附PROTEUS軟體仿真圖
    數碼管顯示是每一個單片機初學者都必須學的,而單片機驅動數碼管的數字循環顯示實驗,又是單片機基礎中的基礎,同時也是學好C語言編程的關鍵,此實驗在硬體上可以弄清楚單片機驅動原理和數碼管的顯示原理,在軟體上可以幫助建立編程思維和良好的編程習慣,同時加深C語言中 函數,變量和循環結構語句的學習
  • 致單片機初學者,不建議從51單片機學起!
    為什麼我不建議從51單片機學呢?因為現在電子行業發展速度很快,很多比較大的半導體公司發展也很速度,比如ST,它推出的STM32 MCU不僅使用簡單,關鍵是現在的價格也很便宜。而且現在的產品公司也大多以ST的MCU為首選。所以我建議你從STM32開始著手學習,可以從STM32F1、STM32F0開始學起。
  • 現在學單片機還有"錢途"嗎?
    而我從事的單片機行業,前幾年的培訓風還是吹起了浪,似於Linux驅動開發,安卓底層開發等,但是這陣風根本沒有持續多久就停止了。而單片機培訓根本就沒有颳起任何風,好像整個單片機行業都處在平流層,只有某寶上面充斥著各式各樣的開發板提醒著人們有一個培訓叫做單片機課程。那問題來了,是不是目前做Python,做前端的非常賺錢,而做單片機的連溫飽都還沒解決呢?
  • 51單片機教程之基礎編(基於C語言)
    很多初學者有很多的疑惑,我究竟是先學C語言,還是彙編語言?其實我告訴你,本人認為,先學C語言!為什麼呢?C語言是目前使用最廣泛的中級語言,就連現在的windows7也是C語言編寫的,C語言易讀性好,無需對單片機內部結構十分熟悉即會編程,可移植性高,便於維護。C語言只有32個關鍵字,9種控制語句,而且編譯器提供了很多函數庫,使用十分方便。
  • 現在學單片機還有前途嗎
    而我從事的單片機行業,前幾年的培訓風還是吹起了浪,似於Linux驅動開發,安卓底層開發等,但是這陣風根本沒有持續多久就停止了。而單片機培訓根本就沒有颳起任何風,好像整個單片機行業都處在平流層,只有某寶上面充斥著各式各樣的開發板提醒著人們有一個培訓叫做單片機課程。那問題來了,是不是目前做Python,做前端的非常賺錢,而做單片機的連溫飽都還沒解決呢?
  • 51單片機還有沒有必要學?
    二、51單片機入門學習首先根據個人基礎,如果是完全沒有基礎的,應該還是從51單片機入手,目前51單片機的應用還有很多,很多設備還能見到51晶片,尤其成本低的項目,出貨量特別大,51單片機入門簡單,上手快,項目開發進度快。低端產品大量使用,也是教學入門的晶片。