單片機(jī)的C51基礎(chǔ)知識(shí)
單片機(jī)是通過(guò)程序來(lái)實(shí)現(xiàn)各種功能。而單片機(jī)的常用的程序語(yǔ)言有C51、匯編編程等,我們今天就給大家講講其中一種語(yǔ)言:C51。
1.利用C語(yǔ)言開(kāi)發(fā)單片機(jī)的優(yōu)點(diǎn)
每一塊單C語(yǔ)言作為一種非常方便的語(yǔ)言而得到廣泛的支持,很多硬件開(kāi)發(fā)都用C語(yǔ)言編程。單片機(jī)的C51與用匯編編程相比,有如下優(yōu)點(diǎn):
①對(duì)單片機(jī)的指令系統(tǒng)不要求有任何的了解,就可以用C語(yǔ)言直接編程操作單片機(jī)。
②寄存器分配、不同存儲(chǔ)器的尋址及數(shù)據(jù)類型等細(xì)節(jié)完全由編譯器自動(dòng)管理。
③程序有規(guī)范的結(jié)構(gòu),可分成不同的函數(shù),可使程序結(jié)構(gòu)化。
④庫(kù)中包含許多標(biāo)準(zhǔn)子程序,具有較強(qiáng)的數(shù)據(jù)處理能力,使用方便。 、⑤具有方便的模塊化編程技術(shù),使已編好的程序很容易移植。
C語(yǔ)言常用語(yǔ)法不多,尤其是單片機(jī)的C語(yǔ)言常用語(yǔ)法更少,有益于編寫(xiě)小而快的程序。
2.C51中的基本數(shù)據(jù)類型
當(dāng)我們給單片機(jī)編程時(shí),單片機(jī)也要運(yùn)算,而在單片機(jī)的運(yùn)算中,變量中數(shù)據(jù)的大小是有限制的,我們不能隨意給一個(gè)變量賦任意的值,因?yàn)樽兞吭趩纹瑱C(jī)的內(nèi)存中是要占據(jù)空間的,變量大小不同,所占據(jù)的空間就不同,為了合理利用單片機(jī)的內(nèi)存空間,我們?cè)诰幊绦驎r(shí)就要設(shè)定合適的數(shù)據(jù)類型,不同的數(shù)據(jù)類型也就代表了十進(jìn)制中不同的數(shù)據(jù)大小,所以我們?cè)谠O(shè)定一個(gè)變量之前,必須要給編譯器聲明這個(gè)變量的類型,以便讓編譯器提前從單片機(jī)內(nèi)存中分配給這個(gè)變量合適的空間。單片機(jī)的C語(yǔ)言中常用的數(shù)據(jù)類型如表1-1-3所示。
表1-1-3 C51中常用的數(shù)據(jù)類型
那么什么是所占的位數(shù)呢?在編寫(xiě)程序時(shí),無(wú)論是以十進(jìn)制、十六進(jìn)制還是二進(jìn)制表示的數(shù),在單片機(jī)中,所有的數(shù)據(jù)都是以二進(jìn)制的形式存儲(chǔ)在存儲(chǔ)器中的,既然是二進(jìn)制,那么就只有兩個(gè)數(shù),0和1,這兩個(gè)數(shù)每一個(gè)所占的空間就是一位(b),位也是單片機(jī)存儲(chǔ)器中最小的單位。比位大的單位是字節(jié)(B),一個(gè)字節(jié)等于8位(即1B=8b)。
3.C51中的運(yùn)算符
C51中的算術(shù)運(yùn)算符如表1-1-4所示。
表1-1-4 C51中的算術(shù)運(yùn)算符
C51中的關(guān)系(邏輯)運(yùn)算符如表1-1-5所示。
表1-1-5 C51中的關(guān)系(邏輯)運(yùn)算符
C51中的位運(yùn)算符如表1-1-6所示。
表1-1-6 C51中的位運(yùn)算符
4.C51中的基礎(chǔ)語(yǔ)句
C51中用到的基礎(chǔ)語(yǔ)句如表1-1-7所示。
表1-1-7 C51中的基礎(chǔ)語(yǔ)句