嵌入式C程序基礎與編程結構
Basics of Embedded C Program and Programming Structure
嵌入式C編程是處理器在我們日常生活中遇到的每一個嵌入式系統(如手機、洗衣機和數碼相機)中運行的靈魂。
每個處理器都與一個嵌入式軟件相關聯。首先也是最重要的是決定嵌入式系統功能的嵌入式軟件。嵌入式C語言是單片機最常用的編程語言。
早期,許多嵌入式應用程序是使用匯編級編程開發的。但是,它們沒有提供可移植性。這種缺點被各種高級語言如C、Pascal和COBOL的出現所克服。然而,正是C語言在嵌入式系統中得到了廣泛的接受,而且它還在繼續這樣做。編寫的C代碼更加可靠、可伸縮和可移植;而且事實上,更容易理解。
關於C語言
C語言是丹尼斯·裏奇在1969年開發的。它是一個或多個函數的集合,每個函數都是執行特定任務的語句的集合。
C語言是一種中級語言,它支持高級應用程序和低級應用程序。在深入討論嵌入式C編程的細節之前,我們應該先了解RAM的內存組織。
語言的顯著特點
C語言是一個用不同的關鍵字、數據類型、變量、常量等設計的軟件。
嵌入式C是一個通用術語,它被賦予一種用C編寫的編程語言,它與特定的硬件體系結構相關聯。
Embedded C是C語言的一個擴展,帶有一些附加的頭文件。這些頭文件可能會從一個控制器更改爲另一個控制器。
使用微控制器8051 include<reg51.h>。
嵌入式系統設計者必須瞭解硬件體系結構,才能編寫程序。這些程序在監視和控制外部設備方面發揮着突出的作用。它們還直接操作和使用微控制器的內部結構,如中斷處理、定時器、串行通信和其他可用功能。
Differences between C and Embedded C
嵌入式軟件的基本附加特性
數據類型
數據類型是指一個廣泛的系統,用於聲明不同類型的變量,如整數、字符、浮點等。嵌入式C軟件使用四種數據類型,用於在內存中存儲數據。
“char”用於存儲任何單個字符;“int”用於存儲整數值,“float”用於存儲任何精度浮點值。
下表給出了32位計算機上不同數據類型的大小和範圍。不同字號的機器的大小和範圍可能不同。
有些詞是專門用來完成特定任務的。這些詞被稱爲關鍵字。它們是標準的,在嵌入式C中預定義。
關鍵字總是用小寫字母寫的。在編寫主程序之前,必須定義這些關鍵字。嵌入式軟件的基本關鍵字如下:
sbit:此數據類型用於訪問SFR寄存器的單個位。
語法:sbit variable name=SFR bit;
例:sbit a=P2^1;
說明:如果我們將P2^1指定爲“a”變量,那麼我們可以在程序的任何地方使用“a”而不是p2.1,這樣可以降低程序的複雜性。
位:該數據類型用於訪問RAM(20h-2fh)的位可尋址存儲器。
語法:位變量名;
例:c位;
說明:它是一個小數據區的位序列設置,程序用它來存儲一些東西。
SFR:此數據類型用於通過其他名稱訪問SFR寄存器。所有SFR寄存器必須用大寫字母聲明。
語法:SFR
variable name=SFR寄存器的SFR地址;
例如:SFR端口0=0x80;
說明:如果將0x80指定爲“port0”,則可以在程序中的任何位置使用0x80而不是port0,從而降低程序的複雜性。
SFR寄存器:SFR代表“特殊功能寄存器”。微控制器8051具有256字節的RAM存儲器。這個RAM分爲兩部分:第一部分128字節用於數據存儲,另一部分128字節用於SFR寄存器。所有外圍設備,如I/O端口、定時器和計數器,都存儲在SFR寄存器中,每個元素都有一個唯一的地址。
嵌入式C程序的結構
· comments
· preprocessor directives
· global variables
· main() function
{
· local variables
· statements
· ……………
· ……………
}
· fun(1)
{
· local variables
· statements
· ……………
· ……………
}
註釋:在嵌入式C語言中,我們可以在代碼中添加註釋,這有助於讀者輕鬆理解代碼。
C=a+b;/將兩個值存儲在另一個變量C中的變量相加/
預處理器指令:嵌入式C軟件的所有功能都包含在預處理器庫中,如“includes<reg51.h>,”defines“。這些函數在運行程序時執行。
全局變量
全局變量是在主函數之前聲明的變量,可以在程序中的任何函數上訪問。
Global variable
局部變量
局部變量是在函數中聲明的變量,它只能在該函數中使用。
Local variable
Main()函數
程序的執行從主函數開始。每個程序只使用一個main()函數。
嵌入式C程序的優點
開發應用程序所需時間較短。
它降低了程序的複雜性。
很容易驗證和理解。
從一個控制器到另一個控制器在本質上是可移植的。
幾個嵌入式C程序的例子
以下是一些簡單的嵌入式C程序,用於基於微控制器的項目。
Example-1
Example-2
Example-3
Example-4
希望能夠爲嵌入式C編程的初學者提供一種簡單易行的方法。更好地理解嵌入式C編程是設計基於嵌入式的項目的最基本的先決條件。除此之外,更好的理解和適當的嵌入式C編程知識有助於學生選擇一個有價值的職業。
我們鼓勵並歡迎讀者提出疑問、建議和意見。因此,您可以在下面的評論部分發布您對本文的查詢和反饋。