新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)關(guān)鍵技術(shù)基礎(chǔ)詳解(二)

單片機(jī)關(guān)鍵技術(shù)基礎(chǔ)詳解(二)

作者: 時(shí)間:2016-11-24 來源:網(wǎng)絡(luò) 收藏

  如何設(shè)計(jì)“軟硬件復(fù)位程序”呢?其編寫方法如下。

  SHRST: ;定義軟硬件復(fù)位程序的入口地址

  SET F1 ;設(shè)置一個(gè)軟件復(fù)位標(biāo)志位

  CLR P1.0 ;從P1.0輸出低電平,開始實(shí)施軟硬件復(fù)位

  ORL PCON,#02H;置位PD,令單片機(jī)進(jìn)入停機(jī)狀態(tài),即PD模式;經(jīng)過延時(shí)后RST被拉高,迫使單片機(jī)進(jìn)入復(fù)位狀態(tài);在復(fù)位操作完成并且喚醒單片機(jī)之后,將重新從0000H開始執(zhí)行用戶程序

  以下幾點(diǎn)需要說明:(1)如果利用這里的“軟硬件復(fù)位程序”代替前面的“軟件復(fù)位程序”,可以簡(jiǎn)化用戶程序并且復(fù)位進(jìn)行得徹底,但是需要增加一些硬件,并且也把可以定制的復(fù)位操作給轉(zhuǎn)化成了固定的復(fù)位操作。(2)在圖2所示的軟硬件復(fù)位的支撐電路,除了可以提供復(fù)位信號(hào)給單片機(jī),還有一個(gè)很大的好處,就是可以為其他外圍電路提供復(fù)位信號(hào),這彌補(bǔ)了傳統(tǒng)80C51的一個(gè)欠缺。

  標(biāo)準(zhǔn)80C51的復(fù)位引腳RST是只能輸入的單向結(jié)構(gòu),不能由單片機(jī)主動(dòng)地為外圍芯片提供同步的復(fù)位信號(hào);而MC68HC05和MC68HC08系列、ST公司的ST7系列,以及許多新款51兼容單片機(jī)都把RST引腳設(shè)計(jì)為可輸入/輸出的雙向結(jié)構(gòu),在內(nèi)部看門狗溢出復(fù)位的同時(shí),也從RST輸出一個(gè)高電平脈沖,控制其他外圍芯片與單片機(jī)進(jìn)行同步復(fù)位操作。例如,ATMEL公司的AT89S51/52、T89C51RD2、AT89C51RC等型號(hào)和 Philips公司的P89C51RC、P89C51RA2/RB2/RD2等型號(hào),它們都帶有內(nèi)部看門狗。

非法地址復(fù)位技術(shù)

  一般來說,非法地址復(fù)位是指由于意外原因?qū)е鲁绦蛴?jì)時(shí)器PC內(nèi)容被破壞,而迫使CPU試圖到一個(gè)非法地址去抓取指令代碼來執(zhí)行,就強(qiáng)迫單片機(jī)進(jìn)行復(fù)位操作。

  由于51系列單片機(jī)的硬件結(jié)構(gòu)采用的是“哈佛架構(gòu)”,其程序區(qū)和數(shù)據(jù)區(qū)截然分開、獨(dú)立編址,不存在CPU到RAM區(qū)抓取指令的可能性,因此這極大地降低了非法尋址的概率。但是這并不能徹底杜絕非法尋址的可能性,尤其是對(duì)于哪些實(shí)際配備ROM容量遠(yuǎn)小于64Kb的情況。這時(shí)就可以狹義地定義非法地址是 PC值超出ROM實(shí)際容量的地址編碼。

  

  (a)IC電路直接復(fù)位方式

  

  (b)先中斷后復(fù)位方式

  圖3是兩種實(shí)現(xiàn)非法地址復(fù)位的支撐電路。其中,圖3(a)電路是在圖2(b)的基礎(chǔ)上改變一條連線而成的。該連線一端連接PSEN信號(hào)引腳,該引腳專門用來提供選通外擴(kuò)程序存儲(chǔ)器ROM的片選信號(hào);另一端連接MAX812M的人工復(fù)位輸入腳MR。平時(shí)PSEN引腳一直維持在高電平上;只有當(dāng)CPU試圖非法到外部ROM抓取指令時(shí),PSEN引腳才會(huì)送出低電平脈沖,就是巧妙地利用該脈沖作為復(fù)位信號(hào)源,來強(qiáng)迫單片機(jī)進(jìn)行復(fù)位操作。圖3(b)電路可以看作是在圖2(b)基礎(chǔ)上改變添加一條連線而成的。該連線把PSEN信號(hào)引腳和一條外部中斷源引腳INT0連接起來,并且設(shè)定INT0為下降沿觸發(fā)和高級(jí)中斷源。當(dāng)出現(xiàn)非法地址時(shí),PSEN引腳上的低電平脈沖經(jīng)過INT0向CPU請(qǐng)求中斷;在CPU響應(yīng)該中斷之后可以設(shè)置標(biāo)志,然后實(shí)施軟件復(fù)位或者軟硬件復(fù)位。

  

  

  需要提示一點(diǎn):非法地址復(fù)位方式的啟用是有前提條件的,它僅適用于那些純粹利用片上ROM(指程序存儲(chǔ)器),即無外擴(kuò)ROM,并且片上ROM不足64Kb的情況。

  復(fù)位方式小結(jié)

  標(biāo)準(zhǔn)80C51只有一個(gè)外接復(fù)位源引腳RST,基本所有硬件中斷都是通過RST腳引入的,并且是根據(jù)實(shí)際需要逐個(gè)進(jìn)行擴(kuò)充的。其中只有上電復(fù)位POR是什么場(chǎng)合下都必不可少的。其擴(kuò)充順序大致符合(不是絕對(duì)符合)表1中的規(guī)律。

  在此對(duì)于可能用到的多種復(fù)位源和復(fù)位的方式,進(jìn)行如下幾種不同的分類。

  1 傳統(tǒng)復(fù)位方式和非傳統(tǒng)復(fù)位方式

  傳統(tǒng)復(fù)位方式(包含上電復(fù)位和人工復(fù)位)是80C51技術(shù)手冊(cè)和所有教科書中幾乎都提及的;而非傳統(tǒng)復(fù)位方式(包含欠壓復(fù)位、看門狗復(fù)位、軟件復(fù)位、軟硬件復(fù)位和非法地址復(fù)位)是為了滿足技術(shù)發(fā)展的需要而擴(kuò)充的,這也是一些新款單片機(jī)在片內(nèi)新增的幾種復(fù)位方式。

  2 硬件復(fù)位、軟件復(fù)位和軟硬件復(fù)位

  復(fù)位分類如表2所示,將除了軟件復(fù)位之外的所有復(fù)位方式外部都引入到RST復(fù)位引腳上。

  3 電源電壓監(jiān)控復(fù)位和程序運(yùn)行監(jiān)控復(fù)位

  電源電壓監(jiān)控復(fù)位包含上電復(fù)位和欠壓復(fù)位,它們都是在電源電壓的非常時(shí)期實(shí)施的復(fù)位;程序運(yùn)行監(jiān)控復(fù)位包含人工復(fù)位、看門狗復(fù)位、非法地址復(fù)位、軟件復(fù)位和軟硬件復(fù)位,它們都是在用戶程序失常的情況下實(shí)施的復(fù)位。

  4 內(nèi)部復(fù)位和外部復(fù)位

  內(nèi)部復(fù)位包含看門狗復(fù)位、軟件復(fù)位、軟硬件復(fù)位和非法地址復(fù)位,它們基本都由內(nèi)部原因?qū)е碌膹?fù)位;外部復(fù)位包含上電復(fù)位、人工復(fù)位和欠壓復(fù)位,它們基本都由外部原因?qū)е碌膹?fù)位。

  5 快速復(fù)位和延時(shí)復(fù)位

  前者希望復(fù)位操作越快越好,例如人工復(fù)位、看門狗復(fù)位、非法地址復(fù)位等;而后者則希望復(fù)位操作有一個(gè)延遲時(shí)間,例如上電復(fù)位、欠壓復(fù)位等。

  6 冷復(fù)位和熱復(fù)位

  只有上電復(fù)位屬于冷復(fù)位,其余均屬于熱復(fù)位。在冷復(fù)位實(shí)施之前單片機(jī)處于無電狀態(tài)。


上一頁 1 2 3 4 下一頁

評(píng)論


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

關(guān)閉