1、C語言中變量的定義方法
-C語言中變量定義語法為:
#pragma rambank0 ;即以關(guān)鍵詞#pragma開始,rambank0指明資料區(qū)塊為第0塊。
unsigned char m_acc; ;定義一個無符號字符型變量m_acc。
unsigned char m_ststus; ;定義一個無符號字符型變量m_status。
#pragma norambank ;norambank關(guān)鍵詞表示變量在數(shù)據(jù)區(qū)塊0的定義結(jié)束。
-如果要指明某個變量的具體地址,那么定義方法如下:
#pragma rambank0 ;即以關(guān)鍵詞#pragma開始,rambank0指明資料區(qū)塊為第0塊。
unsigned char m_Flag0 @ 0x4f ;此行定義了一個無符號字符型變量m_Glag0,它的地址位于區(qū)塊0的0x4f單元
#pragma norambank ;norambank關(guān)鍵詞表示變量在數(shù)據(jù)區(qū)塊0的定義結(jié)束。
?
-數(shù)組變量定義如下:
#pragma rambank0 ;即以關(guān)鍵詞#pragma開始,rambank0指明資料區(qū)塊為第0塊。
unsigned long g_RfRef[12] @ 0x50 ;定義一個無符號長整形數(shù)組變量g_RfRef[12],其首地址為0x50。
unsigned long g_RfSs[12]@ 0x68 ;定義一個無符號長整形數(shù)組變量g_RfSs[12],其首地址為0x68。
#pragma norambank ;norambank關(guān)鍵詞表示變量在數(shù)據(jù)區(qū)塊0的定義結(jié)束。
2、C語言中旗標定義和操作方法
unsigned char _status @ 0x0a ;定義了一個_status變量。
#degine _c 0a_0 ;C指向status的bit0。
#define _ac 0a_1 ;ac指向status的bit1。
#define _z 0a_2 ;z指向status的bit2。
#define _ov 0a_3 ;ov指向status的bit3。
#define _pdf 0a_4 ;pdf指向status的bit4。
#degine _to 0a_5 ;to指向status的bit5。
若需將status之bit0設(shè)為1,操作方法如下:
_c=1;
若需將status之bit0設(shè)為0,操作方法如下:
_c=0;
若需判斷status之bit0位是否為1,操作方法如下:
If(_c=1)
{
。..。..。..。.
};
3、C語言中宏定義的方法
以下定義了push和pop兩個宏指令,如果宏定義語句在一行內(nèi)無法寫完,那么在一行未要加上反敘杠()。
#define push { m_acc=_acc;
m_status=_status;
m_mp0=_mp0;
m_mp1=mp1;}
#define pop {_mp1=m_mp1;
mp0=m_mp0;
status=m_status;
acc-m_acc;}
宏調(diào)用方法如下:
push;
。..。..。..。.
pop;
4、C語言常數(shù)的定義方法
常數(shù)定義是給一個字符串賦一個值,常數(shù)定義也是宏定義,也是用#define來定義。
#define c_TimeMode 0x80
#define c_TimeOn 0x10
5、C語言I/O口操作方法
-I/O口地址定義如下:
unsigned char pa @0x12 ;PA口地址定義。
unsigned char pac @0x13 ;PA口控制緩存器地址定義。
-I/O口操作方法:
pac=0x00 ;PA口設(shè)為輸出口。
pa=0xff ;PA口全輸出1。
6、C語言定時器操作方法
-定時器地址的設(shè)定:
unsingned char _tmr @0x0d ;
unsigned char _tmrc @0x0e;
-定時器控制緩沖器和定時器初值的設(shè)定:
tmrc=0x22 ;設(shè)置控制緩沖器初值。
tmr=0x55 ;設(shè)置定時器。
7、C語言中斷處理方法
-中斷控制緩沖器地址定義:
unsigned cahr intcl @0x1e ;
-中斷控制緩沖器設(shè)定:
intc0=0x01;
intc1=0x01;
-中斷向量地址定義:
#pragma vector isr_timer1 @ 0x10 ;此語句定義了Timer A中斷向量位址。ist_timer1()是一個函數(shù),當定
時器發(fā)生中斷時,轉(zhuǎn)入執(zhí)行此函數(shù)。
8、C語言Reset程序入口地址
上現(xiàn)講述了Timer A產(chǎn)生中斷以后,執(zhí)行的是iar_timer1()函數(shù),當Reset以后,mian()函數(shù)是程序的入口,這里不需要定義main()函數(shù)的向量地址。
9、C語言查表處理方法
C語言數(shù)據(jù)表的建立是建立一個數(shù)組,并給此數(shù)組賦上初值,并且要用Const加以標識。如下所示,
Const unsigned char T_Data_Value[12]={0x7f, 0x08, 0x08, 0x7f, 0x00, 0x3e, 0x41, 0x41, 0x3e, 0x00};
以上建立了一個含12個數(shù)據(jù)的T_Data-Value數(shù)據(jù)表。
10、C語言嵌入?yún)R編語言,其語法規(guī)則如下:
#asm
[labl1:] opcode [operands]
。..。..。..。..。..
#endasm
#asm和#endasm是內(nèi)嵌式匯編語言的預處理伙指令,其間的代碼可用匯編語言直接書寫。
11、C語言中數(shù)據(jù)類型說明
在利用C語言完成控制類軟件書定時,我們常用到的數(shù)據(jù)類型有三種,即:
-bit對應(yīng)匯編中的位(1bit)操作
-unsigned char 對應(yīng)匯編中的單字節(jié)(8bit) 操作
-unsigned long 對應(yīng)匯編中的雙字節(jié)(16bit)操作
評論
查看更多