<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

什么是C語言?單片機有什么特點?為什么要用C語言編程?

玩轉嵌入式 ? 來源:玩轉嵌入式 ? 2023-11-21 10:06 ? 次閱讀

隨著技術的發展,電子產品越來越多,方便了我們的日常生活,大多數電子產品上都有單片機,而單片機是通過執行軟件邏輯來實現功能的。而單片機編程最合適的編程語言是匯編語言,但是最常用、最普及的卻是C語言。單片機為什么要用C語言來編程?

1.什么是C語言

C語言最早是在1972年的時候在DEC PDP-11計算機上首次跑起來的,它的設計者是美國人丹尼斯·麥卡利斯泰爾·里奇,他在貝爾實驗室為UNIX操作系統設計的。后來他和同事共同編寫了C語言編程標準--K&R。沒想到日后C語言會成為廣泛的編程語言并風靡全球。而之所以叫做C語言,是因為它是在B語言的基礎上而設計出來的。

UNIX操作系統、Linux操作系統、MySQL等都是使用C語言編程實現的。

2.單片機有什么特點

單片機是可編程器件,他的控制邏輯是通過軟件來實現的。在單片機之前,控制邏輯是通過純硬件來實現的,受硬件邏輯的約束無法實現太復雜的邏輯。而單片機是有指令集的,最開始通過使用匯編來編程,雖然匯編執行效率非常高,但是匯編的可讀性和移植性非常差,而C語言正好能彌補匯編的不足。

舉例:MOVC  A, @A+DPTR
功能:將 DPTR+A中的值 作為地址,尋找地址中的內容 送到累加器A中

匯編語言舉例

單片機的寄存器配置。對單片機編程其實就是配置單片機的寄存器和端口配置,而這都是具有時許的,需要精準的控制。

單片機存儲和執行程序需要Flash和RAM,而這些資源非常有限。所以,代碼的占用空間情況非常重要。

單片機都是有指令集的。學習過單片機匯編的朋友可能會有印象,8051單片機具有111條指令集,并且有7種不同的尋址方式。

#include 
void bubble_sort(int arr[], int len) {
    int i, j, temp;
    for (i = 0; i < len - 1; i++)
? ? ? ? ? ? ? ? for (j = 0; j < len - 1 - i; j++)
? ? ? ? ? ? ? ? ? ? ? ? if (arr[j] > arr[j + 1]) {
                temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
}
int main() {
    int arr[] = { 22, 34, 3, 32, 82, 55, 89, 50, 37, 5, 64, 35, 9, 70 };
    int len = sizeof(arr) / sizeof(arr[0]);
    bubble_sort(arr, len);
    int i;
    for (i = 0; i < len; i++)
? ? ? ? ? ? ? ? printf("%d ", arr[i]);
? ? ? ? return 0;
}

冒泡排序的C語言實現

3.為什么要用C語言編程

前文所說,單片機的匯編指令比較難記,可能存在兩種情況:1)更換硬件平臺,這要重新適配指令集、更新寄存器訪問地址,比較麻煩;2)換人維護程序,匯編的可讀性比較差需要較長的時間才能理解別人的程序。

而C語言就比較靈活了,正好能彌補匯編的劣勢。

不需要記憶單片機的指令集,只需要通過寄存器的配置就能讓單片機正常工作;

C語言有指針、數組、結構體、聯合體、枚舉等各種類型,大大增強了編程的靈活性和程序處理能力;

C語言方便模塊化編程,可以實現代碼的規范化。

39cfe09c-880b-11ee-939d-92fbcf53809c.png

C語言編程

你用C語言編程嗎?來評論區討論一下吧。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6005

    文章

    44015

    瀏覽量

    621916
  • Linux
    +關注

    關注

    87

    文章

    11011

    瀏覽量

    206839
  • C語言
    +關注

    關注

    180

    文章

    7538

    瀏覽量

    130248
  • 編程
    +關注

    關注

    88

    文章

    3444

    瀏覽量

    92543
  • 匯編語言
    +關注

    關注

    14

    文章

    404

    瀏覽量

    35240

原文標題:單片機編程,為什么要用C語言

文章出處:【微信號:玩轉嵌入式,微信公眾號:玩轉嵌入式】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    PIC單片機C語言編程

    體系和硬件資源深入了解,在這基礎之上再來討論C 語言編程,就有水到渠成的感覺。本書圍繞中檔系列PIC 單片機來展開討論,Microchip
    發表于 09-09 14:13

    PIC 單片機C語言編程

    PIC 單片機C語言編程 用 C 語言來開發單片
    發表于 11-03 10:10

    PIC單片機C語言編程

    對PIC單片機的指令體系和硬件資源深入了解,在這基礎之上再來討論C語言編程,就有水到渠成的感覺。本書圍繞中檔系列PIC
    發表于 03-03 10:55

    C語言單片機編程使用的高級語言

    今天主要分享單片機編程使用的高級語言C語言,單片機編程
    發表于 10-20 16:38

    單片機C語言編程實例

    `本書結合目前應用非常廣泛的C語言以及Keil C51編譯器,詳細介紹單片機C語言
    發表于 06-22 10:29

    單片機主要用C語言編程語句

    單片機主要用C語言編程的,而單片機也有自己獨有的編程語句,例如,51
    發表于 01-08 06:50

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

    單片機為什么還在用C語言編程?答案是:C語言是最適合單片機
    發表于 07-14 06:21

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

    單片機為什么還在用C語言編程?答案是:C語言是最適合單片機
    發表于 07-14 08:43

    單片機C語言編程應注意的若干問題

    特點,就單片機系統資源對C語言編程的制約,匯編與C語言
    發表于 07-15 09:12

    單片機c語言案例教程,單片機C語言案例教程 精選資料分享

    摘要:《單片機C語言案例教程》是中職學校電子類專業單片機課程教材.教材在編寫上貼近中職學生的學習特點,以"案例+項目"的形式展開,適合初中以
    發表于 07-19 06:07

    C語言在51單片機編程中的應用技巧哪些

    C語言在51單片機編程中的應用技巧哪些?如何用c語言
    發表于 10-18 08:41

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

    單片機為什么還在用C語言編程?單片機編程特點是什么
    發表于 10-19 08:38

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

    單片機為什么還在用C語言編程?答案是:C語言是最適合單片機
    發表于 12-03 07:41

    什么是單片機c語言+編程c語言C

    單片機c語言+編程c語言C is probably
    發表于 12-10 08:24

    單片機C語言和匯編語言的混合編程

    . 保持機器語言的優勢,具有直接而簡潔的功能4. 可維護性和可讀性差5. 可移植性差第5章單片機C語言和匯編語言的混合
    發表于 01-25 06:47
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>