新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 技巧 3 -- Keil C51 中 P1.0、P1^0、P1_0 的區別

        技巧 3 -- Keil C51 中 P1.0、P1^0、P1_0 的區別

        作者: 時間:2016-11-17 來源:網絡 收藏
        Keil uVision2 為例,在安裝路徑下的 C51 INC 文件夾中,打開 reg52.h 頭文件,可以看到:

          #ifndef__REG52_H__
          #define__REG52_H__

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

          /* BYTE Registers */
          sfrP0 = 0x80;
          sfrP1 = 0x90;
          sfrP2 = 0xA0;
          sfrP3 = 0xB0;
          sfrPSW = 0xD0;
          sfrACC = 0xE0;

        其中sfr關鍵字是 C51 特有的關鍵字,它用來定義變量和地址的對應關系。如sfrP0 = 0x80,意思就是:P0 口的地址是 0x80。(0x80 是 C51 的寫法,等價于匯編的 80H)

        然后進入正題:

        P1.0 指的是單片機 P1 口的第 0 位,A51 匯編編程時使用,如SETBP1.0

        P1^0 指的是上面圖中,頭文件中定義的 P1 寄存器的第 0 位,C51 編程時使用

        P1_0 本來無特殊含義,當你想在 C51 中,使用 P1 口的第 0 位時,需要指定一個變量代表 P1^0(是不是必須的,博主沒有試驗過),這時候就需要使用sbit關鍵字,用法如下:

          sbitP1_0 = P1^0;

          sbitXXXX = P1^0;

        也就是說,P1_0 只是個變量名稱,實際上變量名用什么都可以(前提是符合命名規則)



        關鍵詞: KeilC51P0

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 双流县| 沙坪坝区| 南安市| 浦东新区| 江源县| 柏乡县| 读书| 龙山县| 东丽区| 乌兰察布市| 开江县| 资中县| 德江县| 庄浪县| 腾冲县| 崇明县| 江西省| 徐州市| 如东县| 开封县| 太仆寺旗| 房产| 贵阳市| 卓资县| 尖扎县| 郯城县| 博野县| 赤壁市| 平湖市| 来安县| 留坝县| 黎川县| 夏河县| 贵溪市| 改则县| 辽源市| 明光市| 永康市| 佛山市| 雷波县| 江永县|