附表1-1 ANSIC標(biāo)準(zhǔn)關(guān)鍵字附表1-2 C51編譯器的擴(kuò)展關(guān)鍵字
建立了第一個(gè)單片機(jī)C語(yǔ)言項(xiàng)目,但為了讓編譯好的程序能通過(guò)編程器寫入51芯 片中,要先用編譯器生成HEX文件,下面來(lái)看看如何用KEIL uVISION2來(lái)編譯生成用于燒寫 芯片的HEX文件。HEX文件格式是Intel公司提出的按地址排
指針就是指變量或數(shù)據(jù)所在的存儲(chǔ)區(qū)地址。如一個(gè)字符型的變量 STR 存放在內(nèi)存單元DATA 區(qū)的 51H 這個(gè)地址中,那么 DATA 區(qū)的 51H 地址就是變量 STR 的指針。在 C 語(yǔ)言中 指針是一個(gè)很重要的概念,正確有效的使用指針類
數(shù)組不過(guò)就是同一類型變量的有序集合。形象的能這樣去理解,就像一個(gè) 學(xué)校在操場(chǎng)上排隊(duì),每一個(gè)級(jí)代表一個(gè)數(shù)據(jù)類型,每一個(gè)班級(jí)為一個(gè)數(shù)組,每一個(gè)學(xué)生就是 數(shù)組中的一個(gè)數(shù)據(jù)。數(shù)據(jù)中的每個(gè)數(shù)據(jù)都能用唯一的下標(biāo)來(lái)確
其實(shí)一直出現(xiàn)在例子中的 main()也算是一個(gè)函數(shù),只不過(guò)它比較特殊,編譯時(shí)以它做為程序的開始段。有了函數(shù)C 語(yǔ)言就有了模塊化的優(yōu)點(diǎn),一般功能較多的程序,會(huì)在編寫程序時(shí)把每項(xiàng)單獨(dú)的功能分成數(shù)個(gè)子程序模塊,每個(gè)子
單片機(jī)C語(yǔ)言教程:C51數(shù)組的使用
一個(gè)指針變量?jī)?nèi)部可以存儲(chǔ)一個(gè)值,這個(gè)值是另外一個(gè)對(duì)象的地址,所以我們說(shuō)一個(gè)指針變量可以指向一個(gè)普通變量,同樣這個(gè)指針變量也有一個(gè)地址,也就是 說(shuō)有一個(gè)東西可以指向這個(gè)指針變量,然后再通過(guò)這個(gè)指針變量指向
指針數(shù)組一個(gè)指針數(shù)組是指一個(gè)數(shù)組中的每個(gè)元素都是一個(gè)指針,例如:int *p[10];//而不能是int (*p)[10]或者char *p[10];此時(shí)p是一個(gè)指針(數(shù)值上和&p[0]一樣);在前面有int t[10];int * pt=t;//使用pt指向t那么這里我
多維數(shù)組對(duì)于二維數(shù)組a[4][6];由于數(shù)組名代表數(shù)組的起始地址,所以a(第一層)和第一個(gè)元素a[0][0]地址的數(shù)字是相同的,但是意義卻是不同的。 對(duì)于該數(shù)組我們可以理解為:a的一維數(shù)組(第一層),它有四個(gè)元素a[0]、a[1]
在c和c++中數(shù)組的指針就是數(shù)組的起始地址(也就第一個(gè)元素的地址),而且標(biāo)準(zhǔn)文檔規(guī)定數(shù)組名代表數(shù)組的地址(這是地址數(shù)值層面的數(shù)組表示)。例如:int a[10];int *p;p=&a[0]//和p=a是等價(jià)的。因?yàn)閍是數(shù)組名,所以他是該
AVR單片機(jī)C語(yǔ)言編程技巧1、選擇合適的算法和數(shù)據(jù)結(jié)構(gòu)應(yīng)該熟悉算法語(yǔ)言,知道各種算法的優(yōu)缺點(diǎn),具體資料請(qǐng)參見相應(yīng)的參考資料,有很多計(jì)算機(jī)書籍上都有介紹。將比較慢的順序查找法用較快的二分查找或亂序查找法代替,
PORTX和PINX的使用區(qū)別AVR單片機(jī)每組I/O口有3個(gè)8位寄存器,分別是DDRx、PORTx和PINx;DDR用于控制I/O口的輸入輸出方向:DDRx=1時(shí),I/O口輸出,PORTx=1時(shí)輸出高電平,PORTx=0時(shí)輸出低電平,DDRx=0時(shí),I/O口輸入,這時(shí)要讀
將C向MCU(俗稱單片機(jī))8051上的移植始于80年代的中后期??陀^上講,C向8051 MCU移植的難點(diǎn)不少。如:·8051的非馮·諾依慢結(jié)構(gòu)(程序與數(shù)據(jù)存儲(chǔ)器空間分立),再加上片上又多了位尋址存儲(chǔ)空間;·
學(xué)習(xí)一種編程語(yǔ)言,最重要的是建立一個(gè)練習(xí)環(huán)境,邊學(xué)邊練才能學(xué)好。Keil軟件是目前最流行開發(fā)80C51系列單片機(jī)的軟件,Keil提供了包括C編譯器、宏匯編、連接器、庫(kù)管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方
循環(huán)語(yǔ)句是幾乎每個(gè)程序都會(huì)用到的,它的作用就是用來(lái)實(shí)現(xiàn)需要反復(fù)進(jìn)行多次的操 作。如一個(gè) 12M 的 51 芯片應(yīng)用電路中要求實(shí)現(xiàn) 1 毫秒的延時(shí),那么就要執(zhí)行 1000 次空語(yǔ)句 才能達(dá)到延時(shí)的目的(當(dāng)然能使用定時(shí)器來(lái)做
學(xué)習(xí)了條件語(yǔ)句,用多個(gè)條件語(yǔ)句能實(shí)現(xiàn)多方向條件分支,但是能發(fā)現(xiàn)使用過(guò)多的 條件語(yǔ)句實(shí)現(xiàn)多方向分支會(huì)使條件語(yǔ)句嵌套過(guò)多,程序冗長(zhǎng),這樣讀起來(lái)也很不好讀。這個(gè)時(shí)候 使用開關(guān)語(yǔ)句同樣能達(dá)到處理多分支選擇的目的
曾經(jīng)在BBS上有朋友問(wèn)過(guò)我{}是什么意思?什么作用?在 C 中是有不少的括號(hào),如{},[],()等,確實(shí)會(huì)讓一些初入門的朋友不解。在 VB 等一些語(yǔ)言中同一個(gè)()號(hào)會(huì)有不一樣的 作用,它能用于組合若干條語(yǔ)句形成功能塊,能用
前面學(xué)習(xí)了大部分的基本語(yǔ)法,以下所要學(xué)習(xí)的各種基本語(yǔ)句的語(yǔ)法能說(shuō)是組成程序的靈魂。在前面的課程中的例子里,也簡(jiǎn)單理解過(guò)一些語(yǔ)句的使用方法,能看出C語(yǔ)言是一種結(jié)構(gòu)化的程序設(shè)計(jì)語(yǔ)言。C 語(yǔ)言供給了相當(dāng)豐富的程
我們學(xué)習(xí)數(shù)據(jù)類型時(shí),學(xué)習(xí)過(guò)指針類型,知道它是一種存放指向另一個(gè)數(shù)據(jù)的地址的變量類型。指針是單片機(jī)C語(yǔ)言中一個(gè)十分重要的概念,也是學(xué)習(xí)單片機(jī)C語(yǔ)言中的一個(gè)難點(diǎn)。對(duì)于指針將會(huì)在第九課中做詳細(xì)的講解。在這里我
學(xué)過(guò)匯編的朋友都知道匯編對(duì)位的處理能力是很強(qiáng)的,但是單片機(jī)C語(yǔ)言也能對(duì)運(yùn)算對(duì)象進(jìn)行按位操作,從而使單片機(jī)C語(yǔ)言也能具有一定的對(duì)硬件直接進(jìn)行操作的能力。位運(yùn)算符的作用是按位對(duì)變量進(jìn)行運(yùn)算,但是并不改變參與