新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 51單片機---Keil C語言

        51單片機---Keil C語言

        作者: 時間:2016-11-11 來源:網絡 收藏
        一、數據類型

        sbit、sfr、sfr16屬于C51的擴展數據類型;
        1、sbit:定義可位尋址類型的變量,用于位尋址,從位尋址字節中定義位變量;sbit定義的變量屬于特殊功能寄存器類型的位變量,存放在特殊功能寄存器區;
        sbit的三種形式:
        sbit 位變量名 = 位地址;
        sbit 位變量名 = 特殊功能寄存器名 ^ 位位置;
        sbit 位變量名 = 字節地址 ^ 位位置;
        如:
        sbit P1_0 = P1 ^ 0;
        sbit P1_1 = P1 ^ 1;
        sbit P1_2 = P2 ^ 2;
        2、sfr/sfr16:分別定義8位和16位的特殊功能寄存器類型的變量,這種類型的變量存放的是硬件的物理地址碼;
        sfr/sfr16的形式:
        sfr 特殊功能寄存器名 = 特殊功能寄存器地址常數(地址常數);
        sfr16 特殊功能寄存器名 = 特殊功能寄存器地址常數(地址常數);
        如:
        sfr P1 = 0x90; //定義P0口的物理地址碼;
        sfr P2 = 0xA0; //定義P1口的物理地址碼;
        sfr16 T2 = 0xCC; //定義T2的物理地址碼;
        注意:sbit/sfr/sfr16定義的變量都存放在地址[80H,FFH]這16字節的地址范圍內;
        二、新增加的關鍵字
        interrupt:定義一個中斷服務函數;
        reentrant:定義一個可再重入函數;
        using:設定中斷服務函數所使用的工作寄存器組;
        三、存儲類型
        單片機的存儲空間在物理上分為4個部分:
        A、片內數據存儲區;
        B、片外數據存儲區;
        C、片內程序存儲區;
        D、片外程序存儲區;
        所以,存儲類型就分為以下6種:
        1、code:程序代碼存儲區ROM,共64K,由MOVC @DPTR訪問;
        2、data:可直接尋址的片內數據存儲區,共128字節,訪問速度比較快;
        3、bdata:可位尋址的片內數據存儲區,共16字節(128位),允許位與字節混合訪問;sbit/sfr/sfr16;
        4、idata:可間接尋址的片內數據存儲區,共256字節,允許訪問片內全部的RAM空間;
        5、pdata:可分頁尋址的片外數據存儲區,共256字節,由MOVX @Ri訪問;
        6、xdata:可尋址的片外數據存儲區,共64KB,由MOVX @DPTR訪問;
        使用code來定義變量的存儲類型時,編譯器會將其定義存放在程序代碼存儲區ROM中,這樣的話,這種類型的變量的值就不能再被修改了;


        關鍵詞: 51單片機KeilC語

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 望谟县| 长寿区| 安新县| 濮阳县| 西平县| 哈巴河县| 九龙城区| 瓦房店市| 阿拉善左旗| 军事| 清水河县| 信丰县| 沁阳市| 马尔康县| 高尔夫| 西乌珠穆沁旗| 建湖县| 徐水县| 体育| 定边县| 中宁县| 花垣县| 明光市| 洮南市| 宣城市| 比如县| 望江县| 和硕县| 保靖县| 读书| 齐河县| 博野县| 涟水县| 高雄市| 固镇县| 营山县| 巴里| 石林| 科技| 太原市| 浙江省|