新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 51單片機中data,idata,xdata,pdata的區別

        51單片機中data,idata,xdata,pdata的區別

        作者: 時間:2016-11-29 來源:網絡 收藏
        說來慚愧,一直以來,在學校也算是搞了不少東西,不過反而是51單片機這個基礎的東西沒有認真去做過,當初剛自學51沒一個多星期呢,就轉到飛思卡爾16位單片機上去了,以至于51還沒透徹的弄個明白。

        就不如我很清楚s12單片機什么片內ram啊,flash大小啊,反而是51的不敢肯定的回答哦。

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

        比如今天再次看到的這個問題,以前就看到過,但因為一直不怎么搞匯編程序,所以對51單片機中的dataidataxdatapdata一直不清楚,不過今天不再脫了,決定一定弄清楚。

        --------------------------------------------------------------------------------------------

        再附上51片內資源簡介,再次記憶。

        .8位CPU·4kbytes 程序存儲器(ROM) (52為8K)

        ·256bytes的數據存儲器(RAM) (52有384bytes的RAM)

        ·32條I/O口線·111條指令,大部分為單字節指令

        ·21個專用寄存器

        ·2個可編程定時/計數器·5個中斷源,2個優先級(52有6個)

        ·一個全雙工串行通信口

        ·外部數據存儲器尋址空間為64kB

        ·外部程序存儲器尋址空間為64kB

        ·邏輯操作位尋址功能·雙列直插40PinDIP封裝

        ·單一+5V電源供電

        CPU:由運算和控制邏輯組成,同時還包括中斷系統和部分外部特殊功能寄存器;

        RAM:用以存放可以讀寫的數據,如運算的中間結果、最終結果以及欲顯示的數據;

        ROM:用以存放程序、一些原始數據和表格;

        I/O口:四個8位并行I/O口,既可用作輸入,也可用作輸出;

        T/C:兩個定時/記數器,既可以工作在定時模式,也可以工作在記數模式;

        五個中斷源的中斷控制系統;

        一個全雙工UART(通用異步接收發送器)的串行I/O口,用于實現單片機之間或單片機與微機之間的串行通信;

        片內振蕩器和時鐘產生電路,石英晶體和微調電容需要外接。最高振蕩頻率為12M。

        --------------------------------------------------------------------------------------------

        回到主題上來,從數據存儲類型來說,8051系列有片內、片外程序存儲器,片內、片外數據存儲器,片內程序存儲器還分直接尋址區和間接尋址類型,分別對應code、data、xdata、idata以及根據51系列特點而設定的pdata類型,使用不同的存儲器,將使程序執行效率不同,在編寫C51程序時,最好指定變量的存儲類型,這樣將有利于提高程序執行效率(此問題將在后面專門講述)。與ANSI-C稍有不同,它只分SAMLL、COMPACT、LARGE模式,各種不同的模式對應不同的實際硬件系統,也將有不同的編譯結果。

        在51系列中data,idata,xdata,pdata的區別:

        data:固定指前面0x00-0x7f的128個RAM,可以用acc直接讀寫的,速度最快,生成的代碼

        也最小。

        idata:固定指前面0x00-0xff的256個RAM,其中前128和data的128完全相同,只是因為訪

        問的方式不同。idata是用類似C中的指針方式訪問的。匯編中的語句為:

        mox ACC,@Rx.(不重要的補充:c中idata做指針式的訪問效果很好)。

        xdata:外部擴展RAM,一般指外部0x0000-0xffff空間,用DPTR訪問。

        pdata:外部擴展RAM的低256個字節,地址出現在A0-A7的上時讀寫,用movx ACC,@Rx

        讀寫。這個比較特殊,而且C51好象有對此BUG,建議少用。但也有他的優點,具

        體用法屬于中級問題,這里不提。



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 兴化市| 尚志市| 盘锦市| 丘北县| 山阳县| 自贡市| 横山县| 万源市| 楚雄市| 同仁县| 吉木乃县| 闸北区| 宁晋县| 兴城市| 南平市| 宝应县| 桦甸市| 临夏市| 西充县| 扎兰屯市| 敖汉旗| 堆龙德庆县| 镶黄旗| 土默特左旗| 佛坪县| 淮阳县| 库尔勒市| 石首市| 洛南县| 兴化市| 凭祥市| 横山县| 平泉县| 古田县| 青神县| 玉林市| 建水县| 桑日县| 桐梓县| 临澧县| 高州市|