90%的單片機初學者,都會遇到的10個問題

2020-12-09 電子工程專輯

彙編語言是一種用文字助記符來表示機器指令的符號語言,是最接近機器碼的一種語言。其主要優點是佔用資源少、程序執行效率高。但是不同的CPU,其彙編語言可能有所差異,所以不易移植。


C語言是一種結構化的高級語言。其優點是可讀性好,移植容易,是普遍使用的一種計算機語言。缺點是佔用資源較多,執行效率沒有彙編高。


對於目前普遍使用的RISC架構的8bit MCU來說,其內部ROM、RAM、STACK等資源都有限,如果使用C語言編寫,一條C語言指令編譯後,會變成很多條機器碼,很容易出現ROM空間不夠、堆棧溢出等問題。而且一些單片機廠家也不一定能提供C編譯器。而彙編語言,一條指令就對應一個機器碼,每一步執行什么動作都很清楚,並且程序大小和堆棧調用情況都容易控制,調試起來也比較方便。所以在資源較少的單片機開發中,還是建議採用彙編語言比較好。


在單片機開發中,主要是彙編和C,沒有用C++的。


彙編語言是一種用文字助記符來表示機器指令的符號語言,是最接近機器碼的一種語言。其主要優點是佔用資源少、程序執行效率高。但是不同的CPU,其彙編語言可能有所差異,所以不易移植。


而C語言是一種編譯型程序設計語言,它兼顧了多種高級語言的特點,並具備彙編語言的功能。C語言有功能豐富的庫函數、運算速度快、編譯效率高、有良好的可移植性,而且可以直接實現對系統硬體的控制。C語言是一種結構化程序設計語言,它支持當前程序設計中廣泛採用的由頂向下結構化程序設計技術。此外,C語言程序具有完善的模塊程序結構,從而為軟體開發中採用模塊化程序設計方法提供了有力的保障。因此,使用C語言進行程序設計已成為軟體開發的一個主流。用C語言來編寫目標系統軟體,會大大縮短開發周期,且明顯地增加軟體的可讀性,便於改進和擴充,從而研製出規模更大、性能更完備的系統。


綜上所述,用C語言進行單片機程序設計是單片機開發與應用的必然趨勢。所以作為一個技術全面並涉足較大規模的軟體系統開發的單片機開發人員最好能夠掌握基本的C語言編程。


當開發一個較複雜而又開發時間短的項目時,用C還是用彙編開發好?

對於複雜而開發時間緊的項目時,可以採用C語言,但前提是要求對該MCU系統的C語言和C編譯器非常熟悉,特別要注意該C編譯系統所能支持的數據類型和算法。雖然C語言是最普遍的一種高級語言,但不同的MCU廠家其C語言編譯系統是有所差別的,特別是在一些特殊功能模塊的操作上。如果對這些特性不了解,那調試起來就有的煩了,到頭來可能還不如用彙編來的快。



8088和196晶片單片機教材,請問哪裡可以找到?

有關這方面的教材,大學裡常用的一本是《IBM-PC彙編語言程序設計》清華大學出版社出版的,在網上以及書店都是可以找到的。另外網上還可以搜索到很多其他的教材如:《微機原理及彙編語言教程》(楊延雙 張曉冬 等編著 )和《16/32 位微機原理、彙編語言及接口技術》(作者:鍾曉捷 陳濤 ,機械工業出版社 出版)等,可以在較大型的科技書店裡查找或者直接從網上訂購。


對於單片機的初學者來說,應該從彙編學起。因為彙編語言是最接近機器碼的一種語言,可以加深初學者對單片機各個功能模塊的了解,從而打好紮實的基礎。


大三生,學了電子線路、數字邏輯、彙編和接口、C語言,但總是感覺很迷茫,覺好像什麼都不會,怎麼辦?

大學過程是一個理論過程,實踐的機會比較少,往往會造成理論與實踐相脫節,這是國內大學教育系統的通病,不過對於學生來說切不可好高騖遠。一般從大三會開始接觸到一些專業課程,電子相關專業會開設相關的單片機應用課程並且會有簡單的實驗項目,那麼要充分把握實驗課的機會,多多地實際上機操作練習。平時可以多看看相關的電子技術雜誌網站,看看別人的開發經驗,硬體設計方案以及他人的軟體設計經驗。有可能的話,還可以參加一些電子設計大賽,藉此機會2--3個人合作做一個完整系統,會更有幫助。到了大四畢業設計階段,也可以選擇相關的課題作些實際案例增長經驗。做什麼事情都有個經驗的積累過程,循序漸進。



學習好單片機,最主要的是實踐,在實踐中增長經驗。在校學生的話,實踐機會的確會比較少,但是有機會的話,可以畢業實習選擇相關的課題,這樣就可以接觸到實際的項目。而且如果單片機微機原理是一門主課的話,相信學校會安排比較多的實踐上機機會。有能力的話,可以找一些相關兼職工作做做,會更有幫助。而且單片機開發應用需要軟硬體結合,所以不能只滿足於編程技巧如何完美,平時也要注意硬體知識的積累,多上上電子論壇網站,買一些相關雜誌。可能的話,可以到電子市場去買一些小零件,自己搭一個小系統讓它工作起來。



要成為單片機高手,應該多實踐,時常關注單片機的發展趨勢;經常上一些相關網站,從那裡可以找到許多有用的資料。


以現在MCU產品主力還是在8位領域,主要應用於汽車應用、消費性電子、電腦及PC周邊、電信與通訊、辦公室自動化、工業控制等六大市場,其中車用市場多在歐、美地區,而亞太地區則以消費性電子為主, 並以量大低單價為產品主流,目前16位MCU與8位產品,還有相當幅度的價差,新的應用領域也仍在開發,至少在目前8位的MCU還有一席之地。


來源:電子產品世界


免責聲明:本文系網絡轉載,版權歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權問題,請第一時間告知,我們將根據您提供的證明材料確認版權並按國家標準支付稿酬或立即刪除內容!本文內容為原作者觀點,並不代表本公眾號贊同其觀點和對其真實性負責。

相關焦點

  • 初學者關於單片機的幾個最關心的問題
    現在很多晶片都支持ISP(在線可編程),初學者可買一條下載線就可以了(本站實驗板配有下載線,可無需另購買)。3,要有一個仿真器,用來實時仿真,隨時發現問題,修改程序,提高編寫程序的效率。市場價位一般在1000~3000左右,硬體的仿真器固然是好。但是對於初學者一般來講實在有些壓力,尤其是怕自己要是學不明白的話就等於白花錢了!
  • 肺腑之言-寫給喜歡單片機的初學者
    本文引用地址:http://www.eepw.com.cn/article/170492.htm一個東西 光有10分鐘的熱度是不夠的從事單片機 就意味著你以後是和枯燥的程序 調試 亂碼 未知的軟硬體錯誤 熬夜 臉上的豆豆 什麼什麼的聯繫在一起(有點誇張 哈哈)如果你選擇了這種生活 並且確定你有一種精神能指引你一路走到底 至於什麼精神
  • 朋友遇到一個電路,單片機復位就關機的問題,我這樣修改了電路
    朋友在設計電路時,遇到這樣一個問題。電路在工作時,單片機復位後,電路就斷電關機,需要重新長按鍵才能開機。但是這不是他想要的,他設計的目的是,長按按鍵開關機,單片機復位時,電路不能斷電關機。開關機電路如下所示。 分析上圖的電路工作原理。
  • ...轉cdr格式也是初學者都會遇到的問題,本文小編將詳解AI文件轉換...
    Illustrator和CorelDRAW是學平面設計必須會使用的矢量繪圖軟體,很多習慣了使用CorelDRAW軟體的朋友會想把ai文件轉到cdr中來編輯,這就涉及到文件格式轉換的問題,ai格式怎麼轉cdr格式也是初學者都會遇到的問題,本文小編將詳解AI文件轉換為CorelDRAW文件的方法。
  • STC單片機和STM32單片機哪個更適合入門?
    1、引言在當今這個模擬電子技術看似被冷落(其實無處不在)和數字電子技術主導的資訊時代,對於剛入電子信息相關專業的大中專學生或需要轉型進入電子產品硬體研發行業的工程師而言,首先面對的第一個問題是:8位的51單片機和32位的基於Cortex-M3內核的STM32單片機哪一個作為電子技術入門的硬體平臺更合適
  • 51單片機還有沒有必要學?
    51單片機是初學者們最容易上手學習的單片機,內部資源相對較少,好理解,資料豐富,基本所有例程網上都可以找到,51單片機由於內部功能模塊少,很容易上手並容易深入了解,定時器如何工作,中斷原理,串口通信,模擬量採集,數據存儲,能接觸到最底層的特殊功能寄存器,熟悉函數聲明,頭文件,宏定義,C語言關鍵字。
  • 51單片機教程之基礎編(基於C語言)
    很多初學者有很多的疑惑,我究竟是先學C語言,還是彙編語言?其實我告訴你,本人認為,先學C語言!為什麼呢?C語言是目前使用最廣泛的中級語言,就連現在的windows7也是C語言編寫的,C語言易讀性好,無需對單片機內部結構十分熟悉即會編程,可移植性高,便於維護。C語言只有32個關鍵字,9種控制語句,而且編譯器提供了很多函數庫,使用十分方便。
  • 51單片機、STM32單片機、PIC單片機性能對比
    51單片機 應用最廣泛的8位單片機當然也是初學者們最容易上手學習的單片機,最早由Intel推出,由於其典型的結構和完善的總線專用寄存器的集中管理,眾多的邏輯位操作功能及面向控制的豐富的指令系統,堪稱為一代「經典」,為以後的其它單片機的發展奠定了基礎。
  • 太極拳初學者都會遇到的問題,一次性全講明白了!
    我們今天分享的這些問題都直接來源於太極拳的實踐當中,主要以健身為目的,具有很強的針對性,專家們對這些問題都做了詳盡的解析。我們把其中一些具有代表性的典型問題摘錄出來,並請專家們進行補充、修訂,收編於此。全部解答通俗易懂,切中實際,力戒繁奧,對太極拳健身具有很好的幫助作用。
  • PHP初學者最常遇到的8個錯誤及解決思路!
    初學者在學習程式語言往往是從面向過程開始的,這樣更容易理解。但是在學習PHP的過程中時常會遇到各種報錯,全是英文,對於英文基礎差的同學會很不友好。本篇為大家收集了初學者最常遇到的8個報錯,並為大家提供對應的解決思路。錯誤一:Parse error: syntax error, unexpected ...
  • 學了這麼久單片機,你入門了嗎?
    單片機是一門學不完的技術,因為不同行業、不同產品所用的技術方案都不一樣,即使是很簡單的一個設計,在調試的過程中也會多多少少的遇到問題;即使是非常複雜的一個項目,在團隊的配合協作下也能很漂亮的完成。單片機怎樣算是入門,沒有一個明確的答案。
  • 90%的人都遇到過這個問題
    當我們在Word文檔中打字的時候,Word後面的字被新的文字覆蓋,這是90%的夥伴都會遇到的問題。對於這個常見的問題應該如何解決呢?給大家分享兩個解決的方法,輕鬆解決Word文字消失的問題。Word文字消失分析:下圖就是我們遇到Word打字後面文字消失的問題,是因為不小心進入了改寫模式,改寫是為了方便我們改寫某段文字,不料給大家造成了麻煩。
  • 製作機器人常用的單片機性能特點及使用經驗
    所有兼容8031指令和內核相似的單片機統稱為51單片機,它是目前應用最廣泛的8位單片機之一。因51單片機結構簡單,指令易學,應用廣泛,因此是初學單片機首選機型。如果有人想不學51,直接學AVR,那麼此人一定會遇到很多難題,困惑和鬱悶將伴隨著學習過程。如果學了51再學AVR和其他單片機,人們會發現「所謂單片機都不過如此」。
  • 現在學單片機還有"錢途"嗎?
    而我從事的單片機行業,前幾年的培訓風還是吹起了浪,似於Linux驅動開發,安卓底層開發等,但是這陣風根本沒有持續多久就停止了。而單片機培訓根本就沒有颳起任何風,好像整個單片機行業都處在平流層,只有某寶上面充斥著各式各樣的開發板提醒著人們有一個培訓叫做單片機課程。那問題來了,是不是目前做Python,做前端的非常賺錢,而做單片機的連溫飽都還沒解決呢?
  • Proteus與Arduino的整合在單片機系統開發中的應用
    ,使使用者不用關心單片機編程繁瑣的細節,如寄存器、地址指針等基本不用管,從而大大降低了單片機系統開發難度,特別適合老師、學生和一些業餘愛好者使用。  由於Arduino使用者一般都是那些對電路知識、電子技術及單片機技術等了解不深入的初學者,如何在Arduino開發過程中快速有效的提高他們的單片機系統開發能力及電子電路設計能力是一個需要迫切解決的問題。  Proteus的引入較好的解決了存在的問題。
  • 單片機keil 常見問題
    1、模塊內接口:使用如下標誌符:#pragma asm彙編語句#pragma endasm注意:如果在c51程序中使用了彙編語言,注意在keil編譯器中需要激活Properties中的「Generate Assembler SRC File」 和「Assembler SRC File 」兩個選項來個實例吧
  • STC單片機程序下載問題及解決方法
    失敗現象:Chinese:正在嘗試與 MCU/單片機 握手連接 ...打開串口失敗!Chinese: 串口已被其它程序打開或該串口不存在。解決方法:1,檢查USB下載模塊的連接是否正常,模塊上的綠色和紅色LED燈都亮起表示連接正常。綠色LED燈不亮表示USB驅動程序出現問題,可以拔下USB模塊重插一次。
  • 單片機簡介
    Atmel 公司的 AT89C51( 以後簡稱「C51」)、AT89C52( 以後簡稱「C52」)、AT89C2051( 以後簡稱「C2051」)以及 C51、C52 的換代產品 AT89S51( 以後簡稱「S51」)、AT89S52( 以後簡稱「S52」)容易上手、價格低廉(不超過 10
  • 初次接觸單片機,你會選擇哪款呢
    做電子產品設計,肯定要與單片機打交道。單片機是整個電子產品的核心,相當於人類的心臟。所以,單片機是一款極其重要的電子元器件。硬體,就是指的硬體電路,包括單片機的外圍電路和其它驅動電路。軟體,就是單片機的運行程序,主要c語言和彙編語言編寫。如果大學期間,初次接觸的單片機應該是51單片機。很多大學開設單片機課程,均選擇51單片機。主要是51單片機比較容易上手。它總共40個引腳,有4組IO口,每組有7個IO。單片機外設功能也單一。
  • 現在學單片機還有前途嗎
    而我從事的單片機行業,前幾年的培訓風還是吹起了浪,似於Linux驅動開發,安卓底層開發等,但是這陣風根本沒有持續多久就停止了。而單片機培訓根本就沒有颳起任何風,好像整個單片機行業都處在平流層,只有某寶上面充斥著各式各樣的開發板提醒著人們有一個培訓叫做單片機課程。那問題來了,是不是目前做Python,做前端的非常賺錢,而做單片機的連溫飽都還沒解決呢?