每寫一個程序,總離不開數(shù)據(jù)的應用,在學習 c51 語言的過程中掌握理解數(shù)據(jù)類型也是 很關鍵的。先看表 3-1,表中列出了 KEIL uVision2 單片機c語言編譯器所支持的數(shù)據(jù)類型。
一、變量和運算符
Cx51中的算術運算符
二、函數(shù)
函數(shù)可分為主函數(shù)、標準庫函數(shù)、自定義函數(shù)三類。
1、主函數(shù)
Cx51語言程序中有且只能有一個主函數(shù)main()。一個Cx51語言程序的執(zhí)行從主函數(shù)開始,主函數(shù)可以調(diào)用其它函數(shù),包括庫函數(shù)和自定義函數(shù),其它函數(shù)不能調(diào)用主函數(shù)。
主函數(shù)的標準寫法是 int main( void )
前面的int是main 函數(shù)的返回值類型,用于向操作系統(tǒng)說明程序的退出狀態(tài),返回0代表正常退出,1代表異常。形式參數(shù)“void”用于說明主函沒有輸入?yún)?shù)。
2、庫函數(shù)
Cx51編譯器提供了豐富的庫函數(shù),庫函數(shù)是已經(jīng)編寫好的功能函數(shù),可完成數(shù)學計算、輸入輸出等常用功能,供開發(fā)人員調(diào)用,以提高編程效率。
如果程序中使用了庫函數(shù),則應該在程序的開頭處使用#include包含語句,將所用的函數(shù)頭文件包含到程序中來。
3、自定義函數(shù)
可根據(jù)需要編寫自定義功能函數(shù),結(jié)構(gòu)如下:
返回值類型函數(shù)名(類型 形參)
{
數(shù)據(jù)定義;
執(zhí)行語句;
返回值;
}
形參和返回值是函數(shù)與外界聯(lián)系的橋梁。形參是在函數(shù)調(diào)用時由外界傳入函數(shù)體內(nèi)的參數(shù),形參可以沒有,也可以有多個;返回值是函數(shù)運行完畢時返回給調(diào)用該函數(shù)語句的值。如果函數(shù)沒有返回值,那么應聲明為void類型,凡不加返回值類型限定的函數(shù),就會被編譯器作為返回整型值處理。
根據(jù)作用范圍的不同,變量可分為局部變量和 全局變量 。局部變量是定義在函數(shù)內(nèi)部的變量,只在該函數(shù)內(nèi)部有效;全局變量是定義在函數(shù)外部的變量,從其定義位置開始到源文件結(jié)束都有效。如果全局變量和某一函數(shù)的局部變量同名,則在該函數(shù)內(nèi)部只有局部變量有效。
三、函數(shù)舉例
下圖是8051單片機的P1.0口上連接了一個LED,請編程實現(xiàn)LED周期閃爍。
#include //包含單片機定義寄存器的頭文件
sbit led = P1^0; //將led定義為P1.0位
void delay(void) //延時函數(shù)
{
unsigned int i; //定義無符號整數(shù),最大取值范圍65535
for(i=0;i<20000;i++);//做20000次空循環(huán),以進行延時。
}
int main(void ) //主函數(shù)
{
while(1) //無限循環(huán),以使LED持續(xù)閃爍。
{
led =0; // P1.0輸出低電平,燈亮
delay(); //延時一段時間
led =1; // P1.0輸出高電平,燈滅
delay(); //延時一段時間
}
}
四、移位控制流水燈
下圖是8051單片機的P0口上連接了8個LED,請采用移位操作編寫程序?qū)崿F(xiàn)LED流水燈。
#include //包含單片機定義寄存器的頭文件
void delay(void) //延時函數(shù)
{
unsigned int i; //定義無符號整數(shù),最大取值范圍65535
for(i=0;i<20000;i++); //做20000次空循環(huán),以進行延時。
}
int main(void ) //主函數(shù)
{
unsigned char led,a,b; //定義三個無符號字符型變量
led =0xfe;// led = 11111110B,即P0.0上LED亮,其余口線上LED滅
while(1) //無限循環(huán),以使LED流水亮滅
{
P0 = led; //將led狀態(tài)賦給P0口寄存器,實現(xiàn)LED亮滅
a = led>>7; //將led最高位先放到a中的最低位中,a中其它位全為0
b = led<<1; //將led左移一位,最低位補零
led = b|a; //位或運算
delay();
}
}
-
Cx51
+關注
關注
0文章
4瀏覽量
7629 -
語言程序
+關注
關注
0文章
4瀏覽量
5926 -
main
+關注
關注
0文章
38瀏覽量
6166
發(fā)布評論請先 登錄
相關推薦
評論