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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 51單片機(jī)bit、sbin、sfr、sfr_16有什么區(qū)別

          51單片機(jī)bit、sbin、sfr、sfr_16有什么區(qū)別

          作者: 時(shí)間:2013-01-30 來源:網(wǎng)絡(luò) 收藏

          2)符號P1_0 來表示P1.0 引腳。

          在C 語言里,如果直接寫P1.0,C 并不能識別,而且P1.0 也不是一個(gè)合法的C

          語言變量名,所以得給它另起一個(gè)名字,這里起的名為P1_0,可是P1_0 是不是就是P1.0

          呢?你這么認(rèn)為,C 可不這么認(rèn)為,所以必須給它們建立聯(lián)系,這里使用了Keil C

          的關(guān)鍵字sbit 來定義,sbit 的用法有三種:

          第一種方法:sbit 位變量名=地址值

          第二種方法:sbit 位變量名=SFR 名稱^變量位地址值

          第三種方法:sbit 位變量名=SFR 地址值^變量位地址值

          如定義PSW 中的OV 可以用以下三種方法:

          sbit OV=0xd2 (1)說明:0xd2 是OV 的位地址值

          sbit OV=PSW^2 (2)說明:其中PSW 必須先用sfr 定義好

          sbit OV=0xD0^2 (3)說明:0xD0 就是PSW 的地址值

          因此這里用sfr P1_0=P1^0;就是定義用符號P1_0 來表示P1.0 引腳,如果你愿意也可以

          起P10 一類的名字,只要下面程序中也隨之更改就行了。

          *AT89C51的特殊功能寄存器表請看附錄二

          4.sfr16 16位特殊功能寄存器

          sfr16占用兩個(gè)內(nèi)存單元,值域?yàn)?~65535。sfr16和sfr一樣用于操作特殊功能寄存器,所不同的是它用于操作占兩個(gè)字節(jié)的寄存器,好定時(shí)器T0和T1。

          5.sbit可錄址位

          sbit同位是C51中的一種擴(kuò)充數(shù)據(jù)類型,利用它可以訪問芯片內(nèi)部的RAM中的可尋址位或特殊功能寄存器中的可尋址位。如先前我們定義了

          sfr P1 = 0x90; //因P1端口的寄存器是可位尋址的,所以我們可以定義

          sbit P1_1 = P1^1; //P1_1為P1中的P1.1引腳

          //同樣我們可以用P1.1的地址去寫,如sbit P1_1 = 0x91;

          這樣我們在以后的程序語句中就可以用P1_1來對P1.1引腳進(jìn)行讀寫操作了。通常這些可以直接使用系統(tǒng)提供的預(yù)處理文件,里面已定義好各特殊功能寄存器的簡單名字,直接引用可以省去一點(diǎn)時(shí)間,我自己是一直用的。當(dāng)然您也可以自己寫自己的定義文件,用您認(rèn)為好記的名字。

          data表明數(shù)據(jù)在片內(nèi)數(shù)據(jù)存儲(chǔ)區(qū);

          xdata表明數(shù)據(jù)在片外數(shù)據(jù)存儲(chǔ)區(qū);

          code表明數(shù)據(jù)在程序存儲(chǔ)區(qū);

          extern定義的數(shù)據(jù)是在另外一個(gè)模塊,當(dāng)引用其它文件中的變量時(shí)要加上extern。extern的重要意義在于表明要定義的數(shù)據(jù)已經(jīng)在其他地方定義過,此處只是引用,所以不會(huì)另外開辟內(nèi)存。

          51單片機(jī)相關(guān)文章:51單片機(jī)教程



          上一頁 1 2 下一頁

          評論


          相關(guān)推薦

          技術(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); })();