單片機內(nèi)部資源模擬探討論文

時間:2022-06-14 06:47:00

導語:單片機內(nèi)部資源模擬探討論文一文來源于網(wǎng)友上傳,不代表本站觀點,若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。

單片機內(nèi)部資源模擬探討論文

摘要:由于信息技術(shù)和互聯(lián)網(wǎng)技術(shù)的發(fā)展,單片機應用系統(tǒng)的網(wǎng)絡(luò)化已經(jīng)成為時展的必然。例如家用電器的控制就可以通過具備網(wǎng)絡(luò)功能的單片機系統(tǒng)來實現(xiàn)。上班族可以在離開辦公室回家的時候通過互聯(lián)網(wǎng)來操縱家用電器,對家里的電器實現(xiàn)遠程控制開機或關(guān)機,甚至可以通過互聯(lián)網(wǎng)實時視頻監(jiān)控家里的情況。而這些功能的實現(xiàn)就要求單片機具備很強的互聯(lián)網(wǎng)接入功能。傳統(tǒng)的MCS-51系列單片機不具備網(wǎng)絡(luò)傳輸功能,筆者立足實踐,詳細介紹了目前MCS-51單片機的發(fā)展現(xiàn)狀、接口類型和串口模擬方法。

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

一、MCS-51單片機概述

MCS-51單片機是美國INTEL公司于1980年推出的產(chǎn)品,與MCS-48單片機相比,它的結(jié)構(gòu)更先進,功能更強,在原來的基礎(chǔ)上增加了更多的電路單元和指令,指令數(shù)達111條,MCS-51單片機可以算是相當成功的產(chǎn)品,一直到現(xiàn)在,MCS-51系列或其兼容的單片機仍是應用的主流產(chǎn)品,各高校及專業(yè)培訓學校的教材仍以MCS-51單片機作為代表進行理論基礎(chǔ)學習。

MCS-51系列單片機主要包括8031、8051和8751等產(chǎn)品,MCS-51以其結(jié)構(gòu)緊湊、邏輯位操作功能豐富和直接面向控制的指令系統(tǒng)等優(yōu)勢,堪稱為一代“名機”。正因為其優(yōu)越的性能和完善的結(jié)構(gòu),導致后來的許多廠商多沿用或參考了其體系結(jié)構(gòu),有許多世界大的電氣制造商發(fā)展了MCS-51單片機,象PHILIPS、Dallas、ATMEL等著名的半導體公司都推出了兼容MCS-51的單片機產(chǎn)品,就連我國的臺灣WINBOND公司也發(fā)展了兼容C51的單片機產(chǎn)品。

近年來C51獲得了飛速的發(fā)展,C51的發(fā)源公司INTEL由于忙于開發(fā)PC及高端微處理器而無精力繼續(xù)發(fā)展自己的單片機,因而將其獨立開發(fā)的知識產(chǎn)權(quán)核出售給其它廠商,最典型的是PHILIPS和ATMEL公司。

ATMEL公司推出的兼容MCS-C5l的AT89Cxx系列單片機,完美地將Flash(非易失閃存技術(shù))EEPROM與80C51內(nèi)核結(jié)合起來,仍采用C51的總體結(jié)構(gòu)和指令系統(tǒng),可以通過改寫單片機內(nèi)部程序使得單片機能在開發(fā)過程中多次使用。

SIEMENS公司也沿用C5l的內(nèi)核,相繼推出了C500系列單片機,在保持了與C51指令兼容的前提下,其產(chǎn)品的性能得到了進一步的提升,特別是在抗干擾性能,電磁兼容和通信控制總線功能上獨樹一幟,其產(chǎn)品常用于工作環(huán)境惡劣的場合,亦適用于通信和家用電器控制領(lǐng)域。

WINBOND公司亦開發(fā)了一系列兼容C5l的單片機,其產(chǎn)品通常具備豐富的功能特性,而且以其質(zhì)優(yōu)價廉在市場占有了一定的分額。

二、MCS-51單片機內(nèi)部資源及接口簡述

2.1、MCS-51單片機內(nèi)部資源

1、時鐘電路引腳XTALI和XTALZ

XTALI:接外部晶振和微調(diào)電容的一端,在片內(nèi)它是振蕩器倒相放大器的輸入,若使用外部TTL時鐘時,該引腳必須接地。XTALZ:接外部晶振和微調(diào)電容的另一端,在片內(nèi)它是振蕩器倒相放大器的輸出,若使用外部TTL時鐘時,該引腳為外部時鐘的輸入端。

2、地址鎖存允許ALE

在系統(tǒng)擴展時,ALE用于控制地址鎖存器鎖存PO口輸出的低8位地址,從而實現(xiàn)數(shù)據(jù)與低位地址的復用。當單片機上電正常工作后,ALE端就周期性地以時鐘頻率的1/6向外輸出正脈沖信號,ALE的負載能力為8個LSTTL器件。

3、外部程序存儲器讀選通信號PSEN

PSEN是讀外部程序存儲器的選通信號,低電平有效。CPU從外部存儲器取指令時,它在每個機器周期中兩次有效。

4、程序存儲器地址允許輸入端E刀VPP

當EA為高電平時,CPU執(zhí)行片內(nèi)程序存儲器指令,但當PC中的值超過OFFFH,將自動轉(zhuǎn)向執(zhí)行片外程序存儲器指令。當EA為低電平時,CPU只執(zhí)行片外程序存儲器指令。對于8031,由于其無片內(nèi)ROM,故EA必須接低電平。

5.、復位信號RST

該信號高電平有效,在輸入端保持兩個機器周期的高電平后,就可以完成復位操作。具有新型接口的MCS-51單片機實驗系統(tǒng)設(shè)計

2.2、國內(nèi)外單片機應用的基本接口設(shè)計方式

由于MCS-51單片機的產(chǎn)生時間較其它新型單片機要早,而且在投入市場之后很快得到市場的認可,MCS-51以其性能穩(wěn)定、成本低廉等特點很快占據(jù)了市場,并且在工業(yè)控制等領(lǐng)域中得到了廣泛的應用。但是就MCS-51單片機技術(shù)的發(fā)展更新而言卻不如人們想象的那樣理想,基本保持了當年面市時的本色。

主要表現(xiàn)為,接口方式簡單,自身具備的接口只有并行口、串行口等一些基本的接口類型。基于該結(jié)構(gòu)的單片機系統(tǒng),局限于單片機的通信能力,使得其應用面受到一點限制。存儲器的擴展容量受地址總線條數(shù)的限制,最大只能擴展到64K。在開發(fā)手段上仍然采用匯編語言作為開發(fā)平臺,影響了單片機應用系統(tǒng)的開發(fā)周期。

2.3、單片機應用中對新型接口的實際需求

基于國內(nèi)外MCS-51單片機接口的實際情況看,在一定程度上限制了MCS-51單片機的進一步推廣和應用。原因如下:

1、現(xiàn)在的單片機系統(tǒng)要求以更加靈活的方式與其它電子設(shè)備之間進行通信。比如單片機應用系統(tǒng)在和計算機通信時僅僅依賴原來的串口通信方式已經(jīng)不能滿足要求,而且現(xiàn)在有些筆記本電腦已經(jīng)沒有了串行接口,另外串行通信接口的通信速度也遠遠不及當前的USB口通信方式。

2、由于多媒體技術(shù)的發(fā)展和推廣,要求現(xiàn)在單片機應用系統(tǒng)具備一定的多媒體處理能力,多媒體信息在單片機系統(tǒng)中的存儲成為難題,因為MCS-51通過傳統(tǒng)的存儲器擴展方式外擴存儲器的最大容量是64K,而64K的存儲空間用于存儲多媒體信息幾乎是不可能的。MCS-51單片機通過擴展大容量存儲器,如CF卡,SD卡等,可以使單片機系統(tǒng)的數(shù)據(jù)存儲能力大大提高。

3、信息技術(shù)的發(fā)展要求現(xiàn)在的單片機系統(tǒng)具備網(wǎng)絡(luò)通信能力。為擴展其通信能力,單片機系統(tǒng)的網(wǎng)絡(luò)化己經(jīng)成為時展的必然。

縱觀國內(nèi)、國外的單片機應用系統(tǒng),能夠很好解決上述問題的應用系統(tǒng)在MCS-51單片機系統(tǒng)的應用中幾乎還沒有,有些新型單片機雖然在設(shè)計時滿足了上述的一個或幾個要求,但是由于沒有經(jīng)過長時間的市場的考驗,所以在一些對單片機系統(tǒng)的穩(wěn)定性和抗干擾能力有較高要求的情況下,設(shè)計師們首選的單片機還是MCS-51系列的產(chǎn)品。所以解決MCS-51單片機與新型接口的連接已經(jīng)成為一個具體的實際需求的問題。

三、51單片機模擬串口的方法

隨著單片機的使用日益頻繁,用其作前置機進行采集和通信在應用中也十分常見。一般是利用前置機采集各種終端數(shù)據(jù)后進行處理、存儲,再主動或被動上報給管理站。這種情況下下,采集會需要一個串口,上報又需要另一個串口,這就要求單片機具有雙串口的功能,但我們知道一般的51系列只提供一個串口,那么另一個串口只能靠程序模擬。現(xiàn)在就以11.0592M的晶振為例,談?wù)勈褂醚訒r法是如何模擬串口的。

串口的每位需延時0.104秒,中間可執(zhí)行96個指令周期。

#defineucharunsignedchar

sbitP1_0=0x90;

sbitP1_1=0x91;

sbitP1_2=0x92;

#defineRXDP1_0

#defineTXDP1_1

#defineWRDYN44//寫延時

#defineRDDYN43//讀延時

//往串口寫一個字節(jié)

voidWByte(ucharinput)

{

uchari="8";

TXD=(bit)0;//發(fā)送啟始位

Delay2cp(39);

//發(fā)送8位數(shù)據(jù)位

while(i--)

{

TXD=(bit)(input&0x01);//先傳低位

Delay2cp(36);

input=input>>1;

}

//發(fā)送校驗位(無)

TXD=(bit)1;//發(fā)送結(jié)束位

Delay2cp(46);

}

//從串口讀一個字節(jié)

ucharRByte(void)

{

ucharOutput="0";

uchari="8";

uchartemp="RDDYN";

//發(fā)送8位數(shù)據(jù)位

Delay2cp(RDDYN*1.5);//此處注意,等過起始位

while(i--)

{

Output>>=1;

if(RXD)Output|=0x80;//先收低位

Delay2cp(35);//(96-26)/2,循環(huán)共

占用26個指令周期

}

while(--temp)//在指定的

時間內(nèi)搜尋結(jié)束位。

{

Delay2cp(1);

if(RXD)break;//收到結(jié)束位便退出

}

returnOutput;

}

//延時程序*

voidDelay2cp(unsignedchari)

{

while(--i);//剛好兩個

指令周期。

}

此種方法在接收上存在一定的難度,主要是采樣定位存在需較準確,另外還必須知道每條語句的指令周期數(shù)。此法可能模擬若干個串口,實際中采用它的人也很多,但如果你用KeilC,本人不建議使用此種方法,上述程序在P89C52、AT89C52和W78E52三種單片機上實驗通過。

參考文獻:

1杜春雷,ARM體系結(jié)構(gòu)與編程,清華大學出版社,2003

2王卓人,鄧晉鈞,劉宗祥.IC片的技術(shù)與應用.北京:電子L業(yè)出版社,1999.2

3羅亞非等,凌陽16位單片機應用基礎(chǔ),北京航空航天大學出版社,2002,7

4邊春遠,王志,MCS-51單片機應用開發(fā)實用子程序,人民郵電出版社,2005.9

5于京,張景璐,51系列單片機C程序設(shè)計與應用案例,中國電力出版社,2006.3