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