單片機c語言編程,51單片機C語言編程100例.docx

單片機為什么還在用C語言編程?

單片機c語言編程,51單片機C語言編程100例.docx


單片機為什么還在用C語言編程?答案是:C語言是最適合單片機編程的高級語言 。這個問題的意思應該是:現在有很多很好用的高級語言,如java,python,VC等等,為什么這些語言不能用來編寫單片機程序呢?那么這個問題的答案就是:不能不能,而是不合適 。一、單片機編程的特點對單片機編程來說,首先要考慮的是單片機的程序空間和數據空間都是有限的,所以要讓程序盡量短小精悍,以節省程序占用的存儲空間 。
第二、單片機編程的一個主要對象是對單片機的端口和內部寄存器的操作和配置,這個需要比較精確的時序控制 。第三、單片機算法運算中,盡量使用加法、減法、移位運算,因為乘法和除法運算會非常費時間,尤其是除法,會耗費很多時間,這對于速度本身就有限制的單片機來說,是一個很大的負擔 。二、高級語言編寫單片機程序的缺陷高級語言可以實現更為優化的算法,更為方便的執行方案,但是,高級語言對程序存儲空間的占用要比匯編和C語言多很多 。
這是最致命的一點,單片機有限的存儲空間需要靠精打細算來設計程序,根本經不起高級語言臃腫的代碼體積 。高級語言無法實現精確的時序控制 。三、C語言是一個折中選擇其實用C語言開發單片機也是一個折中方案,因為最適合單片機開發的編程語言實在太過晦澀難懂,并且每一種單片機的匯編指令有很大區別,所以想把一個程序從這種單片機移植到另一種單片機簡直是癡心妄想,還不如重新寫一遍程序 。
單片機用C語言編程很好學,為什么還要用匯編呢?
單片機c語言編程,51單片機C語言編程100例.docx


C語言是發展趨勢,匯編可以幫助學生熟悉單片機內部結構 。首先匯編語言和C語言都是編程語言,匯編是一種機器語言直接面對底層,與單片機底層硬件構架息息相關,相對于C語言,是一門低級語言,C語言面向過程的語言,在編譯執行會轉為匯編在生成單片機可執行文件 。是一門高級語言,兩種語言各有優缺點 。一,C語言/匯編優缺點 。
1學習難度 。匯編因為的理解難度和開發難度比C語言大,所以學習難度大,都是對寄存器操作,學習匯編就要學習這個單片機的硬件結構和基本組成、存儲器訪問方式、單片機I/O操作時序、定時計數器、中斷處理、指令系統、尋址方式等知識點;而且每個系列芯片的內部寄存地址和寄存器都有差異,維護起來也十分困難 。2執行效率匯編實時性比C語言好,占用單片機資源少,生成的執行文件更小,匯編語言程序直接被轉換成機器指令 。
【單片機c語言編程,51單片機C語言編程100例.docx】而C語言編譯過程會先形成匯編,在轉為機器語言 。3移植性C語言比匯編移植性好,程序可讀性比匯編要強 。實現相同功能,C語言的代碼數量會比較短,對于匯編來說,每一種單片機匯編語言都不一樣 。所以移植性差 。C語言通過結構體,指針映射寄存器地址,當有需要時候,只需要簡單更改寄存器地址,或者更改寄存器定義,即可滿足程序和工程的移植 。
4,調試C語言調試方便,例如STM32開發過程中,可以使用jlink通過SWD進行在線仿真,調試各語法,語句執行情況,還可以查看各變量值的變化,很容易就能定位到BUG問題 。而匯編調試困難,很多時候難以很快定位問題 。二,單片機開發不一定都能用C語言單片機在上個世紀七十年代開始出現,早期都使用匯編語言進行開發,隨著技術的發展進步,制程工藝快速提升,單片機的處理速度越來越快,很多單片機的開發環境都使用C語言編譯,生產二進制文件 。

推薦閱讀