0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

增強型51單片機和傳統(tǒng)51單片機對比分析

CHANBAEK ? 來源:樂創(chuàng)客 ? 作者:樂創(chuàng)客 ? 2023-01-17 14:35 ? 次閱讀

前面的內(nèi)容,我們從傳統(tǒng)的51單片機出發(fā),從硬件的基礎上,一步步衍生出了增強型51單片機所增強的地方?,F(xiàn)在我們可以清楚地了解,增強型51單片機對比傳統(tǒng)的51單片機,增強的地方在于存儲器的擴展。而51單片機對于片內(nèi)內(nèi)存的尋址方式和片外內(nèi)存的尋址方式有著很大的不同。因此,我們在使用C語言對增強型51單片機編程的時候,也需要按照寄存器位置的不同,采用不同的操作方式。

1寄存器位于內(nèi)部的特殊功能寄存器區(qū)

我們之前介紹傳統(tǒng)8051單片機的時候,曾經(jīng)列出了傳統(tǒng)8051單片機已經(jīng)使用的21個特殊功能寄存器,因此擴展外設寄存器的一個辦法就是利于剩余的特殊功能存儲器空間。

由于51單片機的特殊功能寄存器尋址方式只能是直接尋址,不可間接尋址,因此在C語言中無法使用指針的方式去操作這些特殊功能寄存器。因為對于C語言指針來說,它對應的匯編語言是一種間接尋址的方式?;诖?,C51在標準的C語言基礎上,衍生出了一些額外的語法,如當需要定義這些特殊功能寄存器以便于程序訪問的時候,C51加入了一個關鍵詞“sfr”,使用“sfr”關鍵詞可以將特殊功能寄存器區(qū)的地址,定義成某個變量,如“sfr P0 = 0x80;”,這句語句的意思就是將位于內(nèi)部RAM 0x80地址上的寄存器,定義成P0,由于0x80位于特殊功能寄存器區(qū),因此這個定義是完全合法的。在后面想要對P0進行操作,只需要在C語言中直接使用“P0”這個標號即可。如“P0 = 0xff;”。

我們可以打開傳統(tǒng)的keil C51頭文件“reg51.h”,可以發(fā)現(xiàn)這個頭文件中,將傳統(tǒng)8051的所有寄存器全部定義出來了,如圖1所示。


poYBAGPGQV6AV6rqAALkzUhM--A600.png

圖1傳統(tǒng)8051單片機的特殊功能寄存器定義

對于增強型51單片機來說,那些被排放在特殊功能寄存器區(qū)的外設控制寄存器只能使用“sfr”關鍵詞的方式去定義,如圖2所示。


poYBAGPGQXKAG59eAAKfjE4-vzo677.png

圖2增強型單片機增加的資源示例

除了“sfr”關鍵詞之外,Keil C51還支持使用“sbit”關鍵詞定義特殊功能寄存器的某一位,是因為51單片機是所有單片機中唯一支持寄存器位尋址的芯片。不過為了程序方便移植到其它平臺上去,對于這些特殊的關鍵詞,還是盡可能將其限制在少量的文件中。

2寄存器位于內(nèi)部的擴展的RAM中

當內(nèi)部的特殊功能寄存器區(qū)用完之后,如果想要繼續(xù)增加寄存器,那么唯一可以選擇的空間也就只有特殊功能寄存器以外的區(qū)域了。對于增強型51單片機來說,它的內(nèi)存空間刨去特殊功能寄存器區(qū),還可以給其使用的空間有兩個,一個是內(nèi)置RAM剩余空間,還有一個是內(nèi)置的外擴RAM。

對于STC8A8K系列的芯片來說,這些寄存器被設計到了內(nèi)置的外擴RAM上。因此,對于這一段內(nèi)存上的寄存器,我們可以在C語言中使用常量指針的形式去定義,但是,還是需要使用C51的關鍵詞“xdata”去聲明這些地址,當然,去優(yōu)化的“volatile”關鍵詞也不能少,如圖3所示。


pYYBAGPGQYOAI1ZFAAN4rtTdn-8405.png

圖3內(nèi)置外擴SRAM上寄存器的定義

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6037

    文章

    44558

    瀏覽量

    635298
  • 寄存器
    +關注

    關注

    31

    文章

    5343

    瀏覽量

    120365
  • 存儲器
    +關注

    關注

    38

    文章

    7492

    瀏覽量

    163834
  • 51單片機
    +關注

    關注

    274

    文章

    5702

    瀏覽量

    123617
  • 編程
    +關注

    關注

    88

    文章

    3616

    瀏覽量

    93734
收藏 人收藏

    評論

    相關推薦

    標準51單片機增強型51單片機芯片引腳圖

    標準51單片機增強型51單片機芯片引腳圖
    發(fā)表于 12-01 23:16

    增強型MCS-51單片機

    [url=]增強型MCS-51單片機[/url]
    發(fā)表于 12-11 11:13

    增強型MCS-51單片機結(jié)構(gòu)

    增強型MCS-51單片機結(jié)構(gòu)
    發(fā)表于 12-19 22:47

    AVR與51/PIC單片機對比分析哪個好?

    AVR與51/PIC單片機對比分析哪個好?選擇單片機原則有哪些?
    發(fā)表于 09-23 06:57

    請問51單片機/ARV/ARM單片機對比分析哪個好?

    請問51單片機/ARV/ARM單片機對比分析哪個好?
    發(fā)表于 10-25 06:52

    51架構(gòu)與51系列單片機概述

    2-1. 51單片機概述2-2. 51架構(gòu)2-3. 8051引腳功能表述2-4. 常見51系列單片機2-5.
    發(fā)表于 03-23 12:07 ?62次下載

    周立功單片機應用與技術:增強型80C51單片機速成與實戰(zhàn)

    周立功單片機應用與技術:增強型80C51單片機速成與實戰(zhàn)
    發(fā)表于 05-15 16:40 ?235次下載
    周立功<b class='flag-5'>單片機</b>應用與技術:<b class='flag-5'>增強型</b>80C<b class='flag-5'>51</b><b class='flag-5'>單片機</b>速成與實戰(zhàn)

    增強型MCS-51單片機

    增強型MCS-51單片機
    發(fā)表于 12-11 23:38 ?0次下載

    增強型MCS-51單片機結(jié)構(gòu)

    增強型MCS-51單片機結(jié)構(gòu)
    發(fā)表于 12-11 23:41 ?0次下載

    增強型 80C51單片機應用速成與實戰(zhàn)

    增強型 80C51單片機應用速成與實戰(zhàn)
    發(fā)表于 10-13 15:43 ?20次下載

    凝睿電子科技NR-ESC——AVR、51系列、PIC單片機對比分析

    ;PIC單片機工業(yè)抗干擾性強,各個型號的兼容性強;AVR最新的MEGA系列運行速度快。各種單片機都有各自的優(yōu)缺點,應根據(jù)需要選擇。 關鍵詞:單片機、AVR、51系列、PIC、性能
    發(fā)表于 11-24 01:37 ?719次閱讀

    什么是51單片機?又該如何自學51單片機

    51 單片機是目前使用最多的單片機之一,那么什么是 51 單片機呢?作為新手,又該如何自學 51
    的頭像 發(fā)表于 11-03 21:14 ?7163次閱讀

    51單片機是什么?應該如何學習51單片機

    51 單片機是目前使用最多的單片機之一,那么什么是 51 單片機呢?作為新手,又該如何自學 51
    發(fā)表于 12-23 07:57 ?73次下載

    51單片機與AVR單片機

    51單片機與AVR單片機區(qū)別于不同區(qū)別于不同51單片機本身種類繁多,各種國產(chǎn)變種,增強型
    發(fā)表于 11-11 17:36 ?18次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機</b>與AVR<b class='flag-5'>單片機</b>

    51單片機(一)—— 51單片機簡介

    一、51單片機標識信息 通常我們所說的51單片機是指以51內(nèi)核擴展出的單片機。生產(chǎn)
    發(fā)表于 11-11 18:06 ?245次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機</b>(一)—— <b class='flag-5'>51</b><b class='flag-5'>單片機</b>簡介