<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 51單片機(jī)C語(yǔ)言學(xué)習(xí)筆記6:51單片機(jī)C語(yǔ)言頭文件及其使用

          51單片機(jī)C語(yǔ)言學(xué)習(xí)筆記6:51單片機(jī)C語(yǔ)言頭文件及其使用

          作者: 時(shí)間:2016-11-23 來(lái)源:網(wǎng)絡(luò) 收藏
          很多初學(xué)單片機(jī)者往往對(duì)C51的頭文件感到很神秘,而為什么要那樣寫,甚至有的初學(xué)者喜歡問(wèn),P1口的P為什么要大寫,不大寫行不行呢?其實(shí)這個(gè)是在頭文件中用sfr定義的,現(xiàn)在定義好了的是這樣的

          sfr P1 = 0x90;

          也就是說(shuō),到底大寫,還是小寫,就是在這里面決定的。這就說(shuō)明,如果你要用小寫,就得在頭文件中改為小寫。其實(shí)它都是為了編程序方便才這樣寫的,在程序編譯時(shí),就會(huì)變成相應(yīng)的地址(如P1就變成了0x90)。

          下面是一個(gè)標(biāo)準(zhǔn)的C51頭文件REG52.H:

          (此文件一般在C:KEILC51INC下 ,INC文件夾根目錄里有不少頭文件,并且里面還有很多以公司分類的文件夾,里面也都是相關(guān)產(chǎn)品的頭文件。如果我們要使用自己寫的頭文件,使用的時(shí)候只需把對(duì)應(yīng)頭文件拷貝到INC文件夾里就可以了。)








          /* BYTE Registers */
          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;



          /* 8052 Extensions */
          sfr T2CON = 0xC8;
          sfr RCAP2L= 0xCA;
          sfr RCAP2H = 0xCB;
          sfr TL2 = 0xCC;
          sfr TH2 = 0xCD;


          /* BIT Registers */
          /* PSW */
          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

          /* TCON */
          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;

          /* IE */
          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;

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

          /* P3 */
          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;

          /* SCON */
          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;

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

          /* T2CON */
          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;



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

          如STC傳統(tǒng)51單片機(jī),要使用新增的特殊功能寄存器要include頭文件,具體定義如下:

          http://space.ednchina.com/Upload/2009/4/8/aef22653-a6aa-42ed-9019-8ffe4f074c6e.rar



          sfr AUXR = 0x8e;

          sfr AUXR1 = 0xa2;



          sfr P4 = 0xe8;

          sfr XICON = 0xc0;



          sfr IPH = 0xb7;



          sfr WDT_CONTR = 0xe1;



          sfr ISP_DATA = 0xe2;

          sfr ISP_ADDRH = 0xe3;

          sfr ISP_ADDRL = 0xe4;

          sfr ISP_CMD = 0xe5;

          sfr ISP_TRIG = 0xe6;

          sfr ISP_CONTR = 0xe7;



          sbit PX3 = XICON^7;

          sbit EX3 = XICON^6;

          sbit IE3 = XICON^5;

          sbit IT3 = XICON^4;

          sbit PX2 = XICON^3;

          sbit EX2 = XICON^2;

          sbit IE2 = XICON^1;

          sbit IT2 = XICON^0;



          頭文件STC12C5A60S2系列雙串口1T 8051單片機(jī)

          頭文件STC12C5A60AD系列高速1T 8051單片機(jī)

          頭文件STC12C5201AD系列高速1T 8051單片機(jī)

          頭文件STC11F60XE高速總線系列1T 8051單片機(jī)

          頭文件STC10F08XE高速總線系列1T 8051單片機(jī)



          參考資料:

          1)51單片機(jī)C語(yǔ)言頭文件及其使用——徐學(xué)軍單片機(jī)工作室

          http://hi.baidu.com/xxjmcu/blog/item/6f77308dc53bf013b31bbaa7.html/cmtid/6aaaf78f561073e7f01f36a7

          2)單片機(jī)中用c編程時(shí)頭文件reg51.h及reg52.h解析
          http://blog.csdn.net/benben85/archive/2009/03/03/3951522.aspx


          評(píng)論


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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();