單片機編程用的c語言
① 單片機用什麼語言編程
單片機編程語言很多,大致分成三類:機器語言、匯編語言、高級語言。機器語言由於繁瑣容易出錯,大部分用戶已經不再便用。
1.單片機的匯編語言
匯編語言是一種用文字助記符來表示機器指令的符號語言,是最接近機器碼的一種語言。其主要優點是佔用資源少,程序執行效率高,由於它一條指令就對應一條機器碼,每一步的執行動作都很清楚,並且程序大小和堆棧調用情況都容易控制,調試起來也比較方便。但是不同的類型的單片機,其匯編語言可能有點差異,所以不易移植,因為他們的指令系統是有區別的。但懂得匯編語言可幫助了解影響川可語言效率的特殊規定。例如,懂得匯編語言指令就可以便用在片內ram作變數的優勢,因為片外變數需要幾條指令才能設署累加器和數據指針進行存取。同樣的,當要求便用浮點數和啟用函數時也只有具備匯編編程經驗才能避免生成龐大的、效率低的程序,對於這方面的編程,沒有匯編語言是做不到的。
2.單片機的c語言
單片機的C語言是一種編譯型程序設計語言,它兼顧了多種高級語言的特點,並具備匯編語言的功能。C語言具有功能豐富的庫函數,運算諫磨快,編譯效率高,有良好的可移植性,而且可以實現直接對系統硬體的控制。此外,C語言程序具有完整的程序模塊結構,從而為軟體開發中栗用模塊化程序設計方法提供了有力的保障。與匯編相比,有如下優點:
對單片機的指令系統不要求了解,僅要求對51的存儲器結構有初步了解,至於寄存器分配、不同存儲器的定址及數據類型等細節均由編譯器管理。程序有規范的結構,可分為不同的函數。這種方式可便程序結構化,將可變的選擇與特殊操作組合在一起,改善了程序的可讀性。
編程及程序調試時間顯著縮短,從而提高效率。提供的庫包含許多標准子程序,具有較強的數據處理能將已編好程序可容易的植入新程序,因為它具有方便的模塊化編程技術。
功能強而有彈性,提供的庫包含許多標准子程序,具有較強的數據處理能力,能將已編好程序容易的植入新程序,因為它具有方便的模塊化編程技術。
單片機C語言作為一種非常方便的語言而得到廣泛的支持,(語言程序本身並不依賴於機器硬體系統,基本上不做修改就可根據單片翻U均不同較快地移植過來。
用單片機c語言進行程序設計,已成為單片機軟體開發的一個主流,作為一個技術全面並涉足較大規模的軟體系統開發的單片機開發人員最好能夠掌握基本的C語言編程。
拓展資料
單片機,全稱單片微型計算機(英語:Single-Chip Microcomputer),又稱微控制器(Microcontroller),是把中央處理器、存儲器、定時/計數器(Timer/Counter)、各種輸入輸出介面等都集成在一塊集成電路晶元上的微型計算機。與應用在個人電腦中的通用型微處理器相比,它更強調自供應(不用外接硬體)和節約成本。它的最大優點是體積小,可放在儀表內部,但存儲量小,輸入輸出介面簡單,功能較低。由於其發展非常迅速,舊的單片機的定義已不能滿足,所以在很多應用場合被稱為范圍更廣的微控制器;由於單晶元微電腦常用於當控制器故又名single chip microcontroller,但是目前在中國大陸仍多沿用「單片機」的稱呼。
② 單片機編程用匯編好還是C語言好
單片機編程,C語言編程但很好。
大致分成三類:機器語言、匯編語言、高級語言。機器語言由於繁瑣容易出錯,大部分用戶已經不再便用。
1.單片機匯編語言
匯編語言是一種符號語言,它使用文字助記符來表示機器指令。它是最接近機器代碼的語言。它的主要優點是佔用資源少,程序執行效率高。由於每條指令對應於一個機器碼,所以每一步的執行都非常清楚。
並且程序的大小和棧調用都易於控制,調試也更加方便。但是不同類型的單片機,其匯編語言可能會有一點不同,所以移植起來並不容易,因為它們的指令系統是不同的。但掌握匯編語言可以幫助我們理解影響四川語學習效率的特殊規律。
例如,了解匯編語言指令可以讓您使用晶元內ram作為變數,因為晶元外變數需要多個指令來設置訪問的累加器和數據指針。
類似地,只有匯編編程經驗才能防止在需要浮點數和啟用函數時創建大型、低效的程序,這在沒有匯編語言的情況下是無法做到的。
2.單片機的C語言
MCUC語言是一種經過編譯的程序設計語言,它兼顧了多種高級語言的特點,具有匯編語言的功能。C語言具有豐富的庫函數,計算速度快,編譯效率高,可移植性好,並能實現對系統硬體的直接控制。
此外C語言程序具有完整的程序模塊結構,為軟體開發中的模塊化編程方法提供了強有力的保證。與組裝相比,具有以下優點:
MCU的指令系統不需要知道,只需要對51的內存結構有一個初步的了解,對於寄存器的分配,不同的內存定址和數據類型等細節都由編譯器來管理。程序有一個正式的結構,可以分為不同的功能。這使得程序可以結構化,結合變數選擇和特殊操作,並提高程序的可讀性。
大大減少了編程和調試時間,從而提高了效率。所提供的庫包含許多具有強大數據處理能力的標准子常式,由於其方便的模塊化編程技術,可以很容易地將這些子常式編程到新程序中。
功能強大靈活,庫中包含了很多標準的子程序,具有較強的數據處理能力,可以方便地編程植入新的程序,因為它具有方便的模塊化編程技術。
MCUC語言作為一種非常方便的語言而得到了廣泛的支持,(語言程序本身不依賴於機器硬體系統,基本上不根據單片機的修改就可以將U的不同之處快速移植過來。)
利用單片機c語言進行編程,已經成為單片機軟體開發的主流,作為一門綜合性的技術和參與開發的大型軟體系統,單片機開發人員最好能夠掌握基本的c語言編程。
(2)單片機編程用的c語言擴展閱讀:
SCM語言
MCU支持三種高級語言,即PL/M、C和BASIC。C語言是一種通用的編程語言,其碼率高,數據類型和運算符豐富,並具有良好的程序結構,適用於各種應用程序的設計,是一種廣泛應用的單片機編程語言。
單片機的C語言採用C51編譯器(簡稱C51)。C51生成的目標代碼短小、快速、存儲空間小,符合C語言的ANSI標准,生成的代碼遵循Intel目標文件格式,可與A51匯編語言或PL/M51語言目標代碼混合使用
③ 用C語言進行單片機編程
/*******************************************************************************
*
文件名稱:LED流水燈控制實驗
*
實驗目的:掌握單片機IO口操作的基本方法
*
程序說明:無
*
日期版本:
*******************************************************************************/
#include
"reg52.h"
//定義51單片機特殊功能寄存器
#include
"intrins.h"
//延時函數
void
delay(void)
{
unsigned
char
i,j,k;
for(i=0;
i<20;
i++)
{
for(j=0;
j<20;
j++)
{
for(k=0;
k<248;
k++);
}
}
}
//主函數
void
main(void)
{
unsigned
char
i;
while(1)
{
for(i=0;
i<8;
i++)
{
P2
=
((P2&0x1f)|0x80);
P0
=
~(0x01<<i);
//左移i位,按位取反
P2
&=
0x1f;
delay();
}
}
}
給你一條用c語言編程的流水燈,型號自己選擇。
④ 單片機中大都使用什麼語言編程
一、使用的語言編程
一般接觸的就是匯編和C語言。但還有其他可選擇的項目,比如AVR單片機可以用BASIC;ARM9、ARM11等高端的用C++。
二、什麼是匯編
匯編大多是指匯編語言,匯編程序。把匯編語言翻譯成機器語言的過程稱為匯編。在匯編語言中,用助記符(Memoni)代替操作碼,用地址符號(Symbol)或標號(Label)代替地址碼。這樣用符號代替機器語言的二進制碼,就把機器語言變成了匯編語言。於是匯編語言亦稱為符號語言。用匯編語言編寫的程序,機器不能直接識別,要由一種程序將匯編語言翻譯成機器語言,這種起翻譯作用的程序叫匯編程序,匯編程序是系統軟體中語言處理的系統軟體。
三、什麼是c語言
C語言是一門通用計算機編程語言,應用廣泛。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。盡管C語言提供了許多低級處理的功能,但仍然保持著良好跨平台的特性,以一個標准規格寫出的C語言程序可在許多電腦平台上進行編譯,甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業平台。
C語言繪圖能力強,具有可移植性,並具備很強的數據處理能力,因此適於編寫系統軟體,三維,二維圖形和動畫。它是數值計算的高級語言。
常用的編譯軟體有Microsoft Visual C++,Borland C++,gcc(linux系統下最常用的編譯器),Watcom C++ ,Borland C++, Borland C++ Builder,Borland C++ 3.1 for DOS,Watcom C++ 11.0 for DOS,GNU DJGPP C++, Lccwin32 C Compiler 3.1,Microsoft C,High C等。
⑤ 單片機c語言編程時會用到哪些常用的C語
關鍵字
用 途
說 明
auto
存儲種類說明
用以說明局部變數,預設值為此
break
程序語句
退出最內層循環
case
程序語句
Switch語句中的選擇項
char
數據類型說明
單位元組整型數或字元型數據
const
存儲類型說明
在程序執行過程中不可更改的常量值
continue
程序語句
轉向下一次循環
default
程序語句
Switch語句中的失敗選擇項
do
程序語句
構成do..while循環結構
double
數據類型說明
雙精度浮點數
else
程序語句
構成if..else選擇結構
enum
數據類型說明
枚舉
extern
存儲種類說明
在其他程序模塊中說明了的全局變數
flost
數據類型說明
單精度浮點數
for
程序語句
構成for循環結構
goto
程序語句
構成goto轉移結構
if
程序語句
構成if..else選擇結構
int
數據類型說明
基本整型數
long
數據類型說明
長整型數
register
存儲種類說明
使用CPU內部寄存的變數
return
程序語句
函數返回
short
數據類型說明
短整型數
signed
數據類型說明
有符號數,二進制數據的最高位為符號位
sizeof
運算符
計算表達式或數據類型的位元組數
static
存儲種類說明
靜態變數
struct
數據類型說明
結構類型數據
swicth
程序語句
構成switch選擇結構
typedef
數據類型說明
重新進行數據類型定義
union
數據類型說明
聯合類型數據
unsigned
數據類型說明
無符號數數據
void
數據類型說明
無類型數據
volatile
數據類型說明
該變數在程序執行中可被隱含地改變
while
程序語句
構成while和do..while循環結構
附表1-1 ANSIC標准關鍵字
關鍵字
用 途
說 明
bit
位標量聲明
聲明一個位標量或位類型的函數
sbit
位標量聲明
聲明一個可位定址變數
Sfr
特殊功能寄存器聲明
聲明一個特殊功能寄存器
Sfr16
特殊功能寄存器聲明
聲明一個16位的特殊功能寄存器
data
存儲器類型說明
直接定址的內部數據存儲器
bdata
存儲器類型說明
可位定址的內部數據存儲器
idata
存儲器類型說明
間接定址的內部數據存儲器
pdata
存儲器類型說明
分頁定址的外部數據存儲器
xdata
存儲器類型說明
外部數據存儲器
code
存儲器類型說明
程序存儲器
interrupt
中斷函數說明
定義一個中斷函數
reentrant
再入函數說明
定義一個再入函數
using
寄存器組定義
定義晶元的工作寄存器
附表1-2 C51編譯器的擴展關鍵字
附錄二 AT89C51特殊功能寄存器列表(適用於同一架構的晶元)
符 號
地 址
注 釋
*ACC
E0H
累加器
*B
F0H
乘法寄存器
*PSW
D0H
程序狀態字
SP
81H
堆棧指針
DPL
82H
數據存儲器指針低8位
DPH
83H
數據存儲器指針高8位
*IE
A8H
中斷允許控制器
*IP
D8H
中斷優先控制器
*P0
80H
埠0
*P1
90H
埠1
*P2
A0H
埠2
*P3
B0H
埠3
PCON
87H
電源控制及波特率選擇
*SCON
98H
串列口控制器
SBUF
99H
串列數據緩沖器
*TCON
88H
定時器控制
TMOD
89H
定時器方式選擇
TL0
8AH
定時器0低8位
TL1
8BH
定時器1低8位
TH0
8CH
定時器0低8位
TH1
8DH
定時器1高8位
帶*號的特殊功能寄存器都是可以位定址的寄存器
⑥ 單片機用什麼語言編寫程序
單片機一般用C語言或者匯編語言來編寫程序。
建議先學C語言,匯編語言要算地址,匯編語言比較難,所以建議先學C語言。匯編語言要算地址,大多數情況下,單片機運行的程序,都是C語言編寫的。不過並不是一般意義上的C語言,而是變種後的C51語言。
⑦ C語言與單片機C語言的區別 急求
單片機c語言比起普通C語言增加了一些基本的指令,變數的賦值是16進制,當然單片機c語言只牽涉到普通c語言的基礎部分。具體體現在:
1、單片機中C的語法一般都對ANSIC有些擴展,及一些特殊寫法如C51擴展的dataxdatabitsbit一類的,還有一些中斷程序寫法voidint()interrput1一類的。
2、C是一門語言,由對應平台的編譯器編譯成對應平台匯編的程序,各平台的匯編不一樣,當然編譯器也不一樣DOS上的TC2TC3WINDOWS上的VC8051的C51都有自已的編譯器。具體區別是由編譯器決的,只能參考對應的編譯手冊,即使同種平台不同的編譯器對C的擴展也有不同。
3、單片機c語言編程是基於C語言的單片機編程。單片機的C語言採用C51編譯器(簡稱C51)。由C51產生的目標代碼短,運行速度高,存儲空間小,符合C語言的ANSI標准,生成的代碼遵循Intel目標文件格式,而且可與A51匯編語言PL/M51語言目標代碼混合使用。
C51本質就是C,是為在單片機上使用C而出來的,如果C不牢固,還是多掌握一點C再學C51,不過新增的知識也不少,而且基本上跟C無關。
4、C只是一種高級語言。它除具有一般高級語言的功能特性外,它可以很好的操作底層的硬體介面。在C語言的基礎上,如果你把一些單片機的埠或特殊功能寄存器加於定義,使之方便於在寫語句的時候,直接直觀的編寫。這樣就差不多是單片機C語言。
C語言的特性差不多都可以用於單片機C語言,因為它們的編譯機理都是一樣的。
(7)單片機編程用的c語言擴展閱讀:
C語言:
C語言是一門通用計算機編程語言,廣泛應用於底層開發。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。
盡管C語言提供了許多低級處理的功能,但仍然保持著良好跨平台的特性,以一個標准規格寫出的C語言程序可在許多電腦平台上進行編譯,甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業平台。
C語言是一門面向過程的計算機編程語言,與C++,Java等面向對象的編程語言有所不同。
其編譯器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、TurboC等。
單片機的C語言:
單片機軟體設計使用C語言作為編程開發軟體,採用模塊化的程序結構,設計了按鍵模塊程序、RFID模塊程序、日歷時鍾模塊程序、GPRS模塊程序、顯示存儲模塊程序等,並編寫系統主程序,將五個程序模塊組合在一起,實現單片機控制系統的整體功能。
51單片機支持三種高級語言,即PL/M,C和BASIC。C語言是一種通用的程序設計語言,其代碼率高,數據類型及運算符豐富,並具有良好的程序結構,適用於各種應用的程序設計,是目前使用較廣的單片機編程語言。
單片機的C語言採用C51編譯器(簡稱C51)。有C51產生的目標代碼短,運行速度高,所需存儲空間小,符合C語言的ANSI標准,生成的代碼遵循Intel目標文件格式,而且可與A51匯編語言或PL/M51語言目標代碼混合使用
C語言-網路
單片機C語言-網路
⑧ 單片機編程可以用c語言嗎
c語言也可以,在以前匯編很流行的,但是人們發現匯編代碼量太大,小程序就沒什麼,到了大的程序其大量的代碼,讓程序員調試都很頭疼的,隨後就發展了基於匯編的高級語言--c,而且想對於匯編,c的優勢非常明顯,
可移植性好,直觀,代碼模塊化,調試方便,接近人類語言等等的優點,當然也有缺點啊,最突出的就是精確時間和代碼效率。我個人覺得,這兩個缺點也不算是缺點了,時間可以調試,寫出和匯編相差不多的延時代碼,然後共用,這就是c的一個特點(可移植性),代碼效率也是,通過代碼優化,也不會比匯編差到哪裡,但是真正的強人,是兩種語言都會用,c裡面嵌入匯編,達到提高時間精度及代碼效率。
⑨ 單片機用什麼語言編寫程序
一般是C語言或者匯編語言。
1、大多數情況下,單片機運行的程序,都是C語言編寫的。不過並不是純粹的傳統C語言,而是變種後的C51語言。
單片機C51語言是由C語言繼承而來的。和C語言不同的是,C51語言運行於單片機平台,而C語言則運行於普通的桌面平台。C51語言具有C語言結構清晰的優點,便於學習,同時具有匯編語言的硬體操作能力。對於具有C語言編程基礎的工程師,能夠輕松地掌握單片機C51語言的程序設計。
2、匯編語言:
匯編語言(assembly language)是一種用於電子計算機、微處理器、微控制器或其他可編程器件的低級語言,亦稱為符號語言。在匯編語言中,用助記符(Mnemonics)代替機器指令的操作碼,用地址符號(Symbol)或標號(Label)代替指令或操作數的地址。在不同的設備中,匯編語言對應著不同的機器語言指令集,通過匯編過程轉換成機器指令。普遍地說,特定的匯編語言和特定的機器語言指令集是一一對應的,不同平台之間不可直接移植。
匯編語言不像其他大多數的程序設計語言一樣被廣泛用於程序設計。在今天的實際應用中,它通常被應用在底層,硬體操作和高要求的程序優化的場合。驅動程序、嵌入式操作系統和實時運行程序都需要匯編語言。
在一些情況下,C51並不能完美的實現功能,所以匯編語言是對C51的一個重要補充。一般來說,啟動部分(基礎硬體的初始化),往往是由匯編語言完成的。除此以外,一些要求時效性特別強,效率要求特別高時,也需要使用匯編語言完成。
⑩ 單片機編程語言一般有哪幾種
單片機的編程語言有三種種:機器語言、匯編語言與高級語言。
機器語言是計算機能夠看懂的語言。(形式為一段二進制代碼)
5.由於計算機只能看懂機器語言所以無論是匯編語言還是高級語言都需要經過編譯成為機器語言才能夠執行。
拓展資料
單片機的高級語言
51單片機支持三種高級語言,即PL/M,C和BASIC。C語言是一種通用的程序設計語言,其代碼率高,數據類型及運算符豐富,並具有良好的程序結構,適用於各種應用的程序設計,是目前使用較廣的單片機編程語言。
單片機的C語言採用C51編譯器(簡稱C51)。有C51產生的目標代碼短,運行速度高,所需存儲空間小,符合C語言的ANSI標准,生成的代碼遵循Intel目標文件格式,而且可與A51匯編語言或PL/M51語言目標代碼混合使用