PIC單片機C知識點匯總
PICC變量及定義
1、當變量為多字節(jié)數(shù)據(jù)時,PICC按低字節(jié)存放在低地址、高字節(jié)存放在高地址的原則存放變量,并以最低字節(jié)的地址作為該變量的地址。例如int型變量i的值為0X1234,低字節(jié)0x34存放在0X30,高字節(jié)0x12存放在0X31,并以0x30作為變量i的地址。
2、單片機的帶符號的整數(shù)均以補碼方式存放。對于二進制數(shù)來說,先減一后取反和先取反后加1得到的結(jié)果是一樣的。
3、標準C中沒有位變量,位變量是PICC C語言中特有的。有了位變量,就可以方便的進行位操作,設(shè)置某一引腳是高電平還是低電平。
4、強制類型轉(zhuǎn)換的一般表達式為 (類型說明符)(表達式) 作用:把表達式的運算結(jié)果強制轉(zhuǎn)換成類型說明符所表達的類型
如:(float)x; //強制把X轉(zhuǎn)換成實型,不管X為何類型的變量,轉(zhuǎn)自穎特新基礎(chǔ)知識
PICC變量修飾關(guān)鍵詞
1、extern (外部)變量聲明
如果一個C程序文件要使用一些有其他文件定義的變量或者引用由嵌入式匯編程序定義的變量,那么在本程序文件中要將這些變量聲明成“extern”(外部)類型
2、volatile(易變)型變量聲明
volatile 關(guān)鍵字是標準C中沒有的,告訴PICC,這些變量是隨機的,不要對變量進行隨機處理。
在相關(guān)的頭文件中,相關(guān)的寄存器都被定義成volatile型。
3、const (常數(shù))型變量聲明
在變量定義前冠以"const"關(guān)鍵詞,變量將成為常數(shù),程序運行過程中不能對其進行修改。
單片機的常數(shù)實際是存在于程序存儲器中的,并以查表的形式返回值。通常單片機的程序存儲器相對較大,可以存入較多的常數(shù)。
一個程序存儲器單元(字)只能存儲一個8位的字節(jié)常數(shù),雖然程序存儲器是14位的。
4、persistent(非初始化)常量聲明
聲明此類變量無須在復(fù)位時自動清零,并且在退出某些函數(shù)時這些變量仍然保留。
5、static(靜態(tài))常量聲明
默認的變量都是自動變量,自動變量指的是當調(diào)用函數(shù)返回后這些局部變量不再保留,即不存在。若在聲明中加入靜態(tài)變量修飾詞,在退出函數(shù)后,這些變量仍然保留。
6、bank(體)選擇聲明
由于PIC16系列單片機的RAM數(shù)據(jù)存儲器分為4個體,因此在定義變量時要指明是哪個體,默認為體0.用bank1~bank3指定變量存放在相應(yīng)的體。
設(shè)計者應(yīng)當知道,自己編制的程序的數(shù)據(jù)存儲器占用量是多少。
在PICC的變量定義中,對于全局變量還可以指定地址。例如:char AA @0X30
PICC中支持的結(jié)構(gòu)體與共同體,與標準C沒有區(qū)別。
PICC的指針:
1、指向RAM的指針
PICC在編譯C源程序時將指向RAM的指針操作最終用FSR來實現(xiàn)間接尋址。因此在定義指針時必須明確指定該指針所適用的尋址范圍和指針變量本身存在的范圍。例如 bank3 char *bank1 zz2定義了指向bank2/3的指針,指針本身存在于bank1中。
在用指向RAM的指針時,要注意體的位置匹配。
2、指向FLASHROM常數(shù)的指針
PICC定義的常數(shù)是存放在程序存儲器的,即FALSHROM,簡稱ROM.
指向常數(shù)的指針可以指向?qū)幫庖粋常數(shù)而不必重復(fù)定義。
編輯:admin 最后修改時間:2018-05-22