單片機(jī)的狀態(tài)遷移與復(fù)位操作-設(shè)計應(yīng)用_第1頁
單片機(jī)的狀態(tài)遷移與復(fù)位操作-設(shè)計應(yīng)用_第2頁
單片機(jī)的狀態(tài)遷移與復(fù)位操作-設(shè)計應(yīng)用_第3頁
單片機(jī)的狀態(tài)遷移與復(fù)位操作-設(shè)計應(yīng)用_第4頁
單片機(jī)的狀態(tài)遷移與復(fù)位操作-設(shè)計應(yīng)用_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

精品文檔-下載后可編輯單片機(jī)的狀態(tài)遷移與復(fù)位操作-設(shè)計應(yīng)用本文以經(jīng)典的80C51單片機(jī)為例,利用工作狀態(tài)及其狀態(tài)遼移的新概念、新觀點和新方法,揭示一些單片機(jī)運(yùn)作的內(nèi)在規(guī)律,對于單片機(jī)學(xué)習(xí)者和應(yīng)用開發(fā)者具有一定的啟迪作用和實際意義。

1單片機(jī)的工作狀態(tài)及其狀態(tài)遷移

80C51單片機(jī)的各種活動,可以描述成多個不同的工作狀態(tài)或工作模式。這里利用筆者構(gòu)思的一個單片機(jī)工作狀態(tài)遷移圖(如圖1所示)來說明。不過,這里重點關(guān)注的是復(fù)位狀態(tài)。

經(jīng)過仔細(xì)分析之后,從圖1中可以看出:

①把單片機(jī)經(jīng)歷的所有生存狀態(tài)歸納和描繪成5個狀態(tài)--1個非工作狀態(tài)(即無電狀態(tài))和4個工作狀態(tài)。②只有復(fù)位狀態(tài)是一個暫態(tài),其他均為穩(wěn)態(tài);并且每次單片機(jī)進(jìn)入正常運(yùn)行狀態(tài)時,都要經(jīng)歷復(fù)位狀態(tài)。

③只有在正常運(yùn)行狀態(tài)(這里記作NORMAL)下,單片機(jī)才按照程序存儲器中固化的用戶程序按部就班地一步一步執(zhí)行,從而完成開發(fā)者設(shè)計的各項任務(wù)。

④停機(jī)狀態(tài)(或PD模式)和待機(jī)狀態(tài)(或IDL模式),主要是為節(jié)能降耗而規(guī)劃的節(jié)電狀態(tài)(或稱"睡眠狀態(tài)")。

⑤從無電狀態(tài)離開的條件就是上電,并且能夠到達(dá)的是一個暫態(tài)--復(fù)位狀態(tài)。

⑥復(fù)位狀態(tài)以外的4個狀態(tài)都有遷移到復(fù)位狀態(tài)的途徑,只是導(dǎo)致遷移的條件不盡相同。

⑦無電狀態(tài)之外的4個工作狀態(tài),都可能因為隨時斷電而導(dǎo)致單片機(jī)進(jìn)入"無電狀態(tài)"。

⑧從另外3個工作狀態(tài)遷移到復(fù)位狀態(tài),基本都是依靠外部引腳RST上的復(fù)位信號。原始復(fù)位源比較單一,這是因為傳統(tǒng)80C51的復(fù)位邏輯相對簡單。如果想增加"電源欠壓復(fù)位"和"看門狗復(fù)位"等其他復(fù)位源,則需要片外擴(kuò)充獨(dú)立電路來實現(xiàn)。

⑨標(biāo)準(zhǔn)80C51沒有設(shè)計"軟件復(fù)位"功能,如果需要該功能,可以通過用戶程序自行實現(xiàn)。不同的是,軟件復(fù)位不會令CPU經(jīng)歷復(fù)位狀態(tài)。

2復(fù)位源、復(fù)位操作和復(fù)位狀態(tài)像數(shù)字電路中的時序邏輯電路器件需要具備復(fù)位功能一樣,各種類型的單片機(jī)也都需要具備復(fù)位功能(RESET)。復(fù)位功能按其英文原意是重新設(shè)置的意思,也就是從頭開始執(zhí)行程序,或者重新從頭執(zhí)行程序(Restart)的意思。復(fù)位是單片機(jī)的一項重要操作內(nèi)容,其目標(biāo)是確保單片機(jī)運(yùn)行過程有一個良好的開端,確保單片機(jī)運(yùn)行過程中有一個良好的狀態(tài)。

需要強(qiáng)調(diào)的是:關(guān)于"復(fù)位"一詞,它既包含復(fù)位活動的意思,又包含復(fù)位狀態(tài)的意思?;蛘哒f,復(fù)位既是一個動態(tài)的概念(指復(fù)位活動、復(fù)位操作、復(fù)位處理或復(fù)位過程等),又是一個靜態(tài)的概念(指復(fù)位狀態(tài)或復(fù)位模式等)。

2.1常規(guī)復(fù)位源和擴(kuò)充復(fù)位源

從現(xiàn)今的技術(shù)高度來看,標(biāo)準(zhǔn)80C51單片機(jī)的復(fù)位功能設(shè)計得不夠完善,不僅沒有設(shè)置復(fù)位標(biāo)志位寄存器,而且復(fù)位源的種類也很少。

所謂"復(fù)位源",就是導(dǎo)致或者引起單片機(jī)內(nèi)部復(fù)位的源泉。對于當(dāng)前市場上出現(xiàn)的種類比較齊全的單片機(jī),其典型復(fù)位源大致可以歸納為以下6種:上電復(fù)位、人工復(fù)位、電源欠壓復(fù)位、看門狗復(fù)位、非法地址復(fù)位和軟件復(fù)位。這些復(fù)位源的特點是:

①上電復(fù)位這一種復(fù)位源是必不可少的。因為每次給單片機(jī)加電時,其電源電壓的穩(wěn)定,以及時鐘振蕩器的起振和振幅穩(wěn)定,都需要一定的延遲時間。②只有上電復(fù)位和人工復(fù)位這兩種復(fù)位源,是講解80C51單片機(jī)的教科書、技術(shù)文章和文獻(xiàn)資料巾比較常見的。

③對于電源欠壓復(fù)位、看門狗復(fù)位和非法地址復(fù)位3種復(fù)位源,標(biāo)準(zhǔn)80C51是不具備的,不過可以額外擴(kuò)充,可由單片機(jī)用戶根據(jù)實際需要通過附加一些軟件或硬件的手段來實現(xiàn)。

④雖然電源欠壓復(fù)位、看門狗復(fù)位、非法地址復(fù)位3種復(fù)位源可以額外擴(kuò)充,但是都必須借助于復(fù)位引腳RST來實施復(fù)位操作或復(fù)位鎖定。

⑤標(biāo)準(zhǔn)80C51本來不具備軟件復(fù)位功能,但是可以通過純軟件方式以及虛擬手段,來實現(xiàn)或者部分實現(xiàn)其他單片機(jī)的軟件復(fù)位。這種方法擴(kuò)充的軟件復(fù)位是一種比較特殊的復(fù)位源,一是不通過RST引腳實現(xiàn)復(fù)位,二是復(fù)位操作的內(nèi)容與眾不同。軟件復(fù)位作為一種新技術(shù),目前有越來越多的新型單片機(jī)配備了該功能。例如Philips公司的P87LPC700和P89LPC900系列、TI-BB公司的MSC1200系列、SunPlus公司的SPMC65系列等,內(nèi)部都設(shè)計了專門用于實現(xiàn)軟件復(fù)位的控制寄存器或者控制位。

2.2復(fù)位操作的具體內(nèi)容

單片機(jī)復(fù)位功能的實現(xiàn)過程實質(zhì)上就是在單片機(jī)內(nèi)部進(jìn)行一系列的復(fù)位操作。在復(fù)位期間,單片機(jī)內(nèi)部的復(fù)位操作究竟完成了哪些內(nèi)容,是程序設(shè)計人員應(yīng)該搞清的問題,因為單片機(jī)復(fù)位操作完成之后的內(nèi)部狀態(tài),就是運(yùn)行用戶程序和進(jìn)行軟件處理的背景、基礎(chǔ)和起點。對80C51單片機(jī)來說,只有軟件復(fù)位的具體內(nèi)容和影響范圍,是可以由用戶自由定制的;而凡是直接作用于復(fù)位引腳RST上的復(fù)位源(如上電復(fù)位等),所實現(xiàn)的復(fù)位操作的具體內(nèi)容和影響范圍都應(yīng)該是一樣的?,F(xiàn)在歸納如下:

①程序計數(shù)器PC返回到原始狀態(tài)0000H;

②所有特殊功能寄存器SFR全部還原為復(fù)位值(可以查閱技術(shù)手冊);

③所有通用并行端口(P0、P1、P2和P3)的引腳全部被設(shè)置為輸入狀態(tài);

④清除各級中斷優(yōu)先級的激活觸發(fā)器,以便受理各級中斷請求(在標(biāo)準(zhǔn)80C51中只設(shè)置了2個中斷優(yōu)先級別,而在有些新型兼容產(chǎn)品中設(shè)置了4個級別)。

2.3復(fù)位狀態(tài)的具體表現(xiàn)

單片機(jī)一旦進(jìn)入復(fù)位狀態(tài)并且停留在復(fù)位狀態(tài)下(即外接引腳RST被鎖定在有效的高電平上),就會表現(xiàn)出如下一些具體特征:

CPU不再執(zhí)行程序而保持靜止(凍結(jié))狀態(tài);

各種片內(nèi)外圍模塊(定時器、串行口、總線接口、中斷系統(tǒng)等)均停止工作;

各個并口(P0~P3)的所有口線均對外呈現(xiàn)高阻狀態(tài);

各SFR的內(nèi)容均恢復(fù)到復(fù)位值(即返回到知情范圍);

內(nèi)部RAM內(nèi)容維持記憶,只要電源電壓不低于維持電壓(一般為2V)就能夠保持原有內(nèi)容;

內(nèi)部時鐘源振蕩器仍然會維持振蕩,只要電源電壓還在1V(甚至略低于1V),振蕩器就能夠維持工作;

各種片外電路(如擴(kuò)展存儲器、擴(kuò)展I/O端口或鎖存器等)都應(yīng)該維持原有內(nèi)容和狀態(tài)。

2.4補(bǔ)充說明

格外值得關(guān)注的是,經(jīng)歷了復(fù)位操作之后的各個并行端口的狀態(tài)。因為端口引腳是單片機(jī)聯(lián)系外部世界的、多的一類引腳,其復(fù)位狀態(tài)(即初始化狀態(tài))將直接影響外部電路,甚至還會對外部電路構(gòu)成威脅或造成損壞。為了避免這種影響或威脅,總是把各條端口引腳復(fù)位成"輸人方式"。理由是,輸入方式對外呈現(xiàn)出很高的阻抗,從而有效地防止了可能發(fā)生的過流損壞。

任何方式或任何復(fù)位源引起的復(fù)位操作,都不會改變RAM區(qū)的用戶數(shù)據(jù)。甚至就連欠壓復(fù)位事件的發(fā)生,只要電源電壓VDD還沒有跌落到連RAM內(nèi)容都不能維持的地步(一般以2V為門限),就不會丟失RAM中的用戶數(shù)據(jù)。

3幾點新啟示

單片機(jī)系統(tǒng)一旦進(jìn)入PD模式(即停機(jī)模式,或掉電模式,有時也稱"掉電保護(hù)模式"),系統(tǒng)時鐘源就會停止工作,CPU以及所有的片載硬件模塊一起退出運(yùn)行狀態(tài),從而使功耗大幅度降低(可以到達(dá)μA級,甚至以下)。

單片機(jī)應(yīng)用項目開發(fā)人員利用停機(jī)模式可以達(dá)到兩種目的:①降低單片機(jī)應(yīng)用系統(tǒng)的總體耗能;②抵御電源電壓跌落時可能帶來的CPU失控,就是一旦發(fā)現(xiàn)電源電壓跌落、欠壓或故障,則強(qiáng)行把單片機(jī)推入停機(jī)模式,以免發(fā)生程序混亂。停機(jī)期間,即使電源電壓降低到2V,仍然能夠維持RAM內(nèi)容不丟失。

通過仔細(xì)分析圖1可以發(fā)現(xiàn),當(dāng)初Intel公司為80C51設(shè)置停機(jī)模式的主要初衷,應(yīng)該是基于上述第二種目的。理由是,從圖1中可以看出,常規(guī)喚醒方式可以令單片機(jī)從PD模式直接返回到NORMAL模式,一般利用特定的中斷源作為喚醒源。不過對標(biāo)準(zhǔn)80C51來說,Intel公司沒有設(shè)計利用中斷源作為喚醒源的途徑,不能

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論