新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 51單片機中data,idata,xdata,pdata的區(qū)別

        51單片機中data,idata,xdata,pdata的區(qū)別

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

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

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

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

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

        再附上51片內(nèi)資源簡介,再次記憶。

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

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

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

        ·21個專用寄存器

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

        ·一個全雙工串行通信口

        ·外部數(shù)據(jù)存儲器尋址空間為64kB

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

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

        ·單一+5V電源供電

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

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

        ROM:用以存放程序、一些原始數(shù)據(jù)和表格;

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

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

        五個中斷源的中斷控制系統(tǒng);

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

        片內(nèi)振蕩器和時鐘產(chǎn)生電路,石英晶體和微調(diào)電容需要外接。最高振蕩頻率為12M。

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

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

        在51系列中data,idata,xdata,pdata的區(qū)別:

        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個字節(jié),地址出現(xiàn)在A0-A7的上時讀寫,用movx ACC,@Rx

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

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



        關(guān)鍵詞: 51單片機dataidataxdatapdat

        評論


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

        關(guān)閉
        主站蜘蛛池模板: 城口县| 英吉沙县| 榆中县| 新竹县| 叙永县| 嫩江县| 苍梧县| 平罗县| 桃园县| 华阴市| 汶川县| 平顶山市| 关岭| 崇信县| 金川县| 和顺县| 伊吾县| 滕州市| 安平县| 大悟县| 滦平县| 威海市| 巨鹿县| 纳雍县| 集安市| 昌宁县| 榆树市| 开远市| 黔南| 赤峰市| 巫山县| 云浮市| 沙田区| 锡林郭勒盟| 渭源县| 大渡口区| 苗栗市| 绵竹市| 文登市| 前郭尔| 伊通|