<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 80C51復位標志位的設置與應用分析

80C51復位標志位的設置與應用分析

作者: 時(shí)間:2011-05-18 來(lái)源:網(wǎng)絡(luò ) 收藏

  對于沒(méi)有配備備用電源的單片機系統,還可以考慮利用E2PROM在斷電之前的瞬間來(lái)轉存位,以便在斷電之后也不會(huì )徹底消失。該情況下既可選用外掛E2PROM數據存儲器(如8腳串行的24C01、93C46或25C040等)的電路方案,也可選用內部本身帶有E2PROM數據存儲器的單片機型號,如AT89S8252等。這樣在斷電之前的瞬間,利用電源濾波電容C2上的少量殘留能量,即可完成對于E2PROM的燒寫(xiě)操作。

2 位的方法

  一般的初始化程序段落的編寫(xiě)方法很簡(jiǎn)單,不過(guò)它僅適用于那些要求不高、功能也很簡(jiǎn)單的單片機項目。這類(lèi)項目(如一些小家電之類(lèi)的單片機)幾乎不存在很強的“過(guò)程性”或“不間斷性”,對于隨時(shí)可能發(fā)生的操作以及重新從頭運行的用戶(hù)程序,不會(huì )帶來(lái)太大的影響或破壞性后果。

  而對于“過(guò)程性”或“不間斷性”要求很強的單片機項目,一旦發(fā)生偶然性復位操作,并且重新從頭運行用戶(hù)程序,那么將會(huì )帶來(lái)極大的負面影響或破壞性后果。例如,單片機控制的面包機,在一次加工面包的過(guò)程中,會(huì )經(jīng)歷攪拌、加熱等工序;假若其間發(fā)生意外復位并且重新從頭執行程序,則會(huì )導致成為廢品或者燒焦。電腦控制的手術(shù)機器人,在一次手術(shù)過(guò)程中如果發(fā)生意外復位并且返工,將會(huì )帶來(lái)難以想象的嚴重后果。電腦控制的導彈,在對準目標發(fā)射之后的飛行過(guò)程中,如果發(fā)生意外復位并且重新從頭執行程序,那么將會(huì )產(chǎn)生難以預料的結果。

  綜上所述,單片機在工作過(guò)程中,受到意外干擾而進(jìn)行復位操作,如果說(shuō)是不可避免的,那么復位之后從何處或在何種背景下開(kāi)始運行程序,則是可以人為安排的。因此,復位位的應用方法實(shí)質(zhì)上就是復位處理程序的編寫(xiě)方法。復位處理程序的處理流程如圖2所示。

按此在新窗口瀏覽圖片
圖2 復位處理程序流程

  類(lèi)似于編寫(xiě)UART串口通信中斷服務(wù)程序的思路,在進(jìn)入中斷程序之后首先要檢測中斷標志位,看是一次接收中斷(RI=1)還是一次發(fā)送中斷(SI=1),然后再進(jìn)入不同程序分支進(jìn)行針對性服務(wù)。從圖2中可以看出,在從復位矢量0000H開(kāi)始執行用戶(hù)程序時(shí),首先應該檢測復位標志寄存器,判斷是電源初始加電還是其他復位源引起的復位或程序計數器PC清零。

 ?、?如果是電源初始加電,則進(jìn)行原始狀態(tài)的初始化。這種情況最簡(jiǎn)單。

 ?、?如果屬于程序跑飛引起的軟件復位、軟硬件復位、非法地址復位,或者人工強行復位,則應該依據具體情況盡量恢復數據或修正參數,以便盡最大可能不影響或少影響程序的正常運行(恢復和修正數據的具體算法這里不再深入探討)。

 ?、?如果是欠壓復位,則盡量從被打斷的程序斷點(diǎn)處重新開(kāi)始執行程序。具體的實(shí)現方法和步驟可以是: 復位之前——單片機響應PFO中斷請求而進(jìn)入其服務(wù)程序后,保存堆棧指針SP當前值到指定RAM單元,把單片機推入停機狀態(tài);復位之后——待電源恢復后,MAX813L得電而從RESET端送出高電平信號,喚醒停機狀態(tài)下的單片機。若喚醒后的單片機再檢測到是欠壓復位,則首先復原先前的SP值,再利用一條RET(或RETI)指令彈出停機之前的程序斷點(diǎn)到PC,從而可以繼續執行前面的任務(wù)。


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: 應用 分析 設置 標志 復位 80C51

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>