加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

增強(qiáng)型51單片機(jī)擴(kuò)展方式

2021/04/27
505
閱讀需 6 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

大家是否思考過一個(gè)問題,為什么現(xiàn)在的51單片機(jī)在做宣傳的時(shí)候,不外乎都是稱作為“增強(qiáng)型51單片機(jī)”?與傳統(tǒng)的51單片機(jī)相比,究竟哪些地方得到了擴(kuò)展?在回答這個(gè)問題之前,我們先來看一下本書的主角——STC8A8K64S4A12。圖1是傳統(tǒng)51單片機(jī)和STC8A8K64S4A12增強(qiáng)型51單片機(jī)的資源對(duì)比圖。

圖1 傳統(tǒng)MCS-51單片機(jī)和增強(qiáng)型51單片機(jī)的資源對(duì)比圖

通過圖1的資源對(duì)比圖我們可以發(fā)現(xiàn),就STC8A8K64S4A12這個(gè)增強(qiáng)型51單片機(jī)而言,它相比于傳統(tǒng)的51單片機(jī)主要在以下幾個(gè)方面做了提升:

增大了數(shù)據(jù)存儲(chǔ)器SRAM;

增大了程序存儲(chǔ)器FlashROM;

擴(kuò)大了供電電壓的范圍;

增加了機(jī)器周期可配置功能,從而避免了外部晶振12分頻的問題;

增加了一系列外設(shè)。

接著,我們具體來看,這些功能到底是如何實(shí)現(xiàn)的。

1、內(nèi)部數(shù)據(jù)存儲(chǔ)器SRAM的增強(qiáng)單片機(jī)要想擴(kuò)充資源,首先需要做的就是內(nèi)存的擴(kuò)展。因?yàn)榭刂七@些擴(kuò)展資源的寄存器,都需要內(nèi)存地址的依托。另外,傳統(tǒng)的51單片機(jī)的內(nèi)存最大只有256字節(jié),我們?cè)陂_發(fā)程序時(shí),用戶所定義的變量都存放在這個(gè)內(nèi)存里面,其中還包括了位尋址區(qū),特殊功能寄存器區(qū)等我們無法使用的空間,早期的單片機(jī)應(yīng)用,如控制一個(gè)開關(guān),處理一個(gè)串口命令這些功能還夠用,但是隨著我們的應(yīng)用越來越復(fù)雜,這么少的內(nèi)存真是“巧婦難為無米之炊”。因此,內(nèi)存的擴(kuò)展非常必要。增強(qiáng)型51單片機(jī)的內(nèi)存擴(kuò)展,還有一個(gè)無法改變的是傳統(tǒng)51單片的內(nèi)存排列,圖2列舉的MCS-51單片機(jī)內(nèi)部256字節(jié)RAM存儲(chǔ)分布,因?yàn)檫@個(gè)存儲(chǔ)分布是和整個(gè)51單片機(jī)架構(gòu)息息相關(guān)的,無法對(duì)其有任何撼動(dòng)。

圖2 傳統(tǒng)51單片機(jī)的內(nèi)存排列

增強(qiáng)型51單片機(jī)的內(nèi)存擴(kuò)展,和傳統(tǒng)8051單片機(jī)訪問外部擴(kuò)展RAM的方法相同,唯一區(qū)別是,傳統(tǒng)的51單片在內(nèi)存擴(kuò)展之后,P0口和P2口將無法使用,但是增強(qiáng)型51單片機(jī)則仍然保留著這兩個(gè)口的正常功能。由于增強(qiáng)型單片機(jī)擴(kuò)展出來的內(nèi)存是屬于外部存儲(chǔ)器擴(kuò)展,因此如果你對(duì)于變量存儲(chǔ)的空間有需求,則在編程時(shí)需要顯示地指明這些變量的存儲(chǔ)位置。如果使用匯編語言,則需要使用“MOVX”指令。如果使用C語言,則需要使用“xdata”關(guān)鍵詞進(jìn)行指定,不過為了C語言的可移植性,對(duì)于使用這種非標(biāo)準(zhǔn)C語言的關(guān)鍵詞,我還是持保留態(tài)度。

2、內(nèi)部程序存儲(chǔ)器FlashROM的增強(qiáng)內(nèi)部程序存儲(chǔ)器的擴(kuò)展方式,也和傳統(tǒng)51單片機(jī)外部程序存儲(chǔ)器的擴(kuò)展方式類似。但是STC8系列封裝管腳為40及以上的單片機(jī),具有擴(kuò)展64KB外部數(shù)據(jù)存儲(chǔ)器的能力。訪問外部數(shù)據(jù)存儲(chǔ)器期間,WR/RD,ALE信號(hào)要有效。除此之外,在內(nèi)部程序存儲(chǔ)器被擴(kuò)大之后,一般增強(qiáng)型51單片機(jī)都會(huì)在一些特定地址的ROM和RAM之中,存入一些特定的產(chǎn)品信息。圖3是STC系列單片機(jī)中所保留的一些特定信息。

圖3 STC系列單片機(jī)中所保留的一些特定信息

3、外設(shè)如何擴(kuò)展傳統(tǒng)的51單片機(jī)用于控制外設(shè)的寄存器地址都是排放在內(nèi)部RAM的128字節(jié)特殊功能寄存器區(qū)。這段特殊功能寄存器地址區(qū),傳統(tǒng)的8051單片機(jī)已經(jīng)用了一部分用于控制其資源,傳統(tǒng)8051單片機(jī)特殊功能寄存器區(qū)的使用如圖4所示。

圖4 傳統(tǒng)8051單片機(jī)的特殊功能寄存器使用傳統(tǒng)的

51單片機(jī)一共用了21個(gè)特殊功能寄存器地址。為了保持與傳統(tǒng)8051單片機(jī)的兼容,這段特殊功能寄存器原有的資源分配不能改變。因此,使用剩余的107個(gè)特殊功能寄存器地址,是外設(shè)寄存器擴(kuò)展的一個(gè)途徑。如圖5所示,STC8數(shù)據(jù)手冊(cè)上面列出了STC8的特殊功能寄存器列表。

圖5 STC8數(shù)據(jù)手冊(cè)列出的特殊功能寄存器列表(1)

圖5 STC8數(shù)據(jù)手冊(cè)列出的特殊功能寄存器列表(續(xù)1)

圖5 STC8數(shù)據(jù)手冊(cè)列出的特殊功能寄存器列表(續(xù)2)

然而,隨著外設(shè)資源的不斷增加,越來越多的外設(shè)寄存器需要被編碼,原本128字節(jié)的特殊功能寄存器區(qū)已經(jīng)用完,想要再擴(kuò)充資源,只能將這些特殊功能寄存器存放在內(nèi)部擴(kuò)展的RAM上面。如圖6所示。

圖6 內(nèi)部數(shù)據(jù)存儲(chǔ)器排放的特殊功能寄存器

圖6 內(nèi)部數(shù)據(jù)存儲(chǔ)器排放的特殊功能寄存器(續(xù))

相關(guān)推薦

電子產(chǎn)業(yè)圖譜