新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 51單片機(jī)C語言頭文件及其使用

        51單片機(jī)C語言頭文件及其使用

        作者: 時(shí)間:2016-11-26 來源:網(wǎng)絡(luò) 收藏
        很多初學(xué)單片機(jī)者往往對C51的頭文件感到很神秘,而為什么要那樣寫,甚至有的初學(xué)者喜歡問,P1口的P為什么要大寫,不大寫行不行呢?其實(shí)這樣的問題,看過本文后,就會(huì)明白。其實(shí)這個(gè)是在頭文件中用sfr定義的,現(xiàn)在定義好了的是這樣的sfr P1= 0x90;,也就是說,到底大寫,還是小寫,就是在這里面決定的。這就說明,如果你要用小寫,就得在頭文件中改為小寫。其實(shí)它都是為了編程序方便才這樣寫的,在程序編譯時(shí),就會(huì)變成相應(yīng)的地址(如P1就變成了0x90)。

        還有一點(diǎn)就是,現(xiàn)在有很多改進(jìn)型的單片機(jī),它們有很多新增的特殊功能寄存器在標(biāo)準(zhǔn)的reg51.h或reg52.h中沒有定義,這就需要自己加進(jìn)頭文件(相關(guān)廠家已經(jīng)把它們定義好了),當(dāng)然也可以直接在程序中定義。下面是一個(gè)標(biāo)準(zhǔn)的C51頭文件:

        sfr P0= 0x80;
        sfr P1= 0x90;
        sfr P2= 0xA0;
        sfr P3= 0xB0;
        sfr PSW= 0xD0;
        sfr ACC= 0xE0;
        sfr B= 0xF0;
        sfr SP= 0x81;
        sfr DPL= 0x82;
        sfr DPH= 0x83;
        sfr PCON= 0x87;
        sfr TCON= 0x88;
        sfr TMOD= 0x89;
        sfr TL0= 0x8A;
        sfr TL1= 0x8B;
        sfr TH0= 0x8C;
        sfr TH1= 0x8D;
        sfr IE= 0xA8;
        sfr IP= 0xB8;
        sfr SCON= 0x98;
        sfr SBUF= 0x99;

        本文引用地址:http://www.104case.com/article/201611/321874.htm


        sfr T2CON= 0xC8;
        sfr RCAP2L = 0xCA;
        sfr RCAP2H = 0xCB;
        sfr TL2= 0xCC;
        sfr TH2= 0xCD;




        sbit CY= PSW^7;
        sbit AC= PSW^6;
        sbit F0= PSW^5;
        sbit RS1= PSW^4;
        sbit RS0= PSW^3;
        sbit OV= PSW^2;
        sbit P= PSW^0; //8052 only


        sbit TF1= TCON^7;
        sbit TR1= TCON^6;
        sbit TF0= TCON^5;
        sbit TR0= TCON^4;
        sbit IE1= TCON^3;
        sbit IT1= TCON^2;
        sbit IE0= TCON^1;
        sbit IT0= TCON^0;


        sbit EA= IE^7;
        sbit ET2= IE^5; //8052 only
        sbit ES= IE^4;
        sbit ET1= IE^3;
        sbit EX1= IE^2;
        sbit ET0= IE^1;
        sbit EX0= IE^0;


        sbit PT2= IP^5;
        sbit PS= IP^4;
        sbit PT1= IP^3;
        sbit PX1= IP^2;
        sbit PT0= IP^1;
        sbit PX0= IP^0;


        sbit RD= P3^7;
        sbit WR= P3^6;
        sbit T1= P3^5;
        sbit T0= P3^4;
        sbit INT1= P3^3;
        sbit INT0= P3^2;
        sbit TXD= P3^1;
        sbit RXD= P3^0;


        sbit SM0= SCON^7;
        sbit SM1= SCON^6;
        sbit SM2= SCON^5;
        sbit REN= SCON^4;
        sbit TB8= SCON^3;
        sbit RB8= SCON^2;
        sbit TI= SCON^1;
        sbit RI= SCON^0;


        sbit T2EX= P1^1; // 8052 only
        sbit T2= P1^0; // 8052 only


        sbit TF2= T2CON^7;
        sbit EXF2= T2CON^6;
        sbit RCLK= T2CON^5;
        sbit TCLK= T2CON^4;
        sbit EXEN2= T2CON^3;
        sbit TR2= T2CON^2;
        sbit C_T2= T2CON^1;
        sbit CP_RL2 = T2CON^0;



        關(guān)鍵詞: 51單片機(jī)C語言頭文

        評論


        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 海林市| 浦江县| 无锡市| 稻城县| 龙井市| 花莲县| 高碑店市| 木兰县| 增城市| 邵阳市| 农安县| 南漳县| 汉源县| 井陉县| 宣城市| 贵溪市| 无为县| 衢州市| 阿拉善盟| 江门市| 五大连池市| 雷山县| 四会市| 双流县| 莲花县| 塔城市| 北流市| 星子县| 汉沽区| 永宁县| 寿光市| 托克托县| 哈巴河县| 林周县| 永济市| 江陵县| 武宣县| 乌恰县| 司法| 赤峰市| 吕梁市|