核心語法完全相同,差異在於硬體相關擴展:
<reg52.h>(或 <reg51.h>)定義 SFR 位址、位元;標準 C 用 <stdio.h> 等。printf 輸出導向 UART/序列埠;scanf 讀取序列埠輸入。fopen、fread 等標準 I/O 函式通常不可用或需移植檔案系統(如 FatFs)。data、idata、xdata、code 等記憶體空間關鍵字。interrupt、sbit、sfr 等擴展關鍵字。// 標準 C (Turbo C)
#include <stdio.h>
int main() { printf("Hello PC\n"); return 0; }
// 51 單片機 (Keil C51)
#include <reg52.h>
#include <stdio.h> // 僅提供標準庫函式原型
void UartConfig() { /* 設定 SCON, TMOD, TH1... */ }
void main()
{
UartConfig();
while (1) printf("Hello 51\n"); // 輸出至序列埠
}
學好標準 C 是單片機開發基礎,再疊加硬體擴展即可上手。