91精品一区二区三区久久久久久_欧美一级特黄大片色_欧美一区二区人人喊爽_精品一区二区三区av

位置:51電子網 » 技術資料 » 測試測量

80C51復位標志位的設置與應用研究

發布時間:2008/6/3 0:00:00 訪問次數:1023

        

    

    

    作者:李學海 劉治山

    

    引言

    

    設置復位標志位便于區分不同原因引發的復位,作為一種新技術被越來越多的新型單片機所采納。例如philips公司的p87lpc700和 p89lpc900系列、freescale公司(原motorola半導體部)的mc68hc05系列和mc68hc08系列、sunplus公司的 spmc65系列、microchip公司的pic系列等,內部都設計了專門用于記錄各種復位標志的狀態寄存器。

    

    mc68hc08系列有一個復位狀態寄存器,負責記錄6種復位標志位:上電復位、引腳復位、看門狗復位、非法指令復位、非法地址復位和欠壓復位。spmc65系列有一個系統控制寄存器,負責記錄5種復位標志位:上電復位、外部復位、看門狗復位、非法地址復位和欠壓復位。51兼容的p89lpc900系列有一個復位源寄存器,負責記錄6種復位標志位:欠壓復位、上電復位、外部復位、看門狗復位、軟件復位和uart收到間隔字符復位(主要作為進入isp監控程序的途徑之一)。就連初學者很常用的 at89s51/52和p89c52x2,也在其電源控制寄存器pcon中增設了一個上電標志位pof。

    

    1 復位標志位的設置方法

    

    傳統的80c51單片機沒有設計復位標志位的記錄功能,這應該說是一種遺憾,那么能否通過一定的技術手段來彌補這個缺憾呢?這里給廣大80c51單片機用戶提供一種啟示和引導。

    

    實現復位標志位的記錄肯定需要一定的硬件電路支持,而這種電路的設計不存在固定模式。筆者利用一片max813l設計了一種支撐電路,如圖1所示,僅供讀者參考。

    

    

    

    圖1 80c51設置復位標志的支撐電路

    

    在圖1中,應用了一個4輸入端“與非”門g1和一個按鈕開關sw1,還占用了80c51的5條i/o引腳p1.0~p1.4以及一個外部中斷源 int0,并且預先通過初始化軟件設置int0為唯一的高級中斷源,下降沿觸發方式有效,開放總中斷使能位ea。平時g1因各輸入端都維持在高電平上,因而其輸出端也保持高電平。電路中利用了一個海量電容器c1作為儲存能量的器件,扮演著備用電池的角色。由于二極管d1的存在,在主電源斷電期間,c1僅為單片機供電,應該讓這時的80c51進入耗能最低的停機狀態(pd模式)。

    

    在圖1電路的基礎上配合必要的用戶軟件,就可以在7種不同復位源引起復位之后保存6個標志位來記錄7種復位標志,以下分別進行講解。可以事先在ram的位尋址區間分配一個字節,例如20h單元,用于記錄6個復位標志位,如表1所列。

    

    

    

    表1 用戶定義的系統復位標志寄存器(srfr)

    

    假設該寄存器定名為srfr(system reset flag register),字節地址為20h,8位當中僅利用了6位,bit5~bit0分別記錄人工復位、欠壓復位、看門狗復位、非法地址復位、軟硬件復位和軟件復位。

    

    ① mrst:人工復位。當復位按鈕sw1被按下時引發int0中斷;在中斷服務程序中檢測輸入引腳p1.4的狀態。如果p1.4=0,則置位mrst,記錄下曾經發生了一次人工復位操作。然后進行一次主動的復位操作,方法是從輸出腳p1.0輸出一個低電平給max813l的輸入引腳mr,經 max813l延時后從輸出端reset送出高電平復位信號給80c51,令其進行一次硬件復位操作。

    

    ② lvr:欠壓復位。當上游電源電壓開始跌落并且下降到max813l的pfi檢測門限以下,輸出端pfo送出低電平,引發int0中斷;在中斷服務程序中檢測輸入引腳p1.3的狀態。如果p1.3=0,則置位lvr,記錄下曾經發生了一次欠壓復位操作;然后進行一次主動的復位操作(方法同上),或者令單片機進入停機狀態,以便節省能耗和保持數據,以及等待主電源的恢復。

    

    ③ wdr:看門狗復位。當發生看門狗溢出時,max813l的輸出端wdo送出低電平,引發int0中斷;在中斷服務程序中檢測輸入引腳p1.2的狀態。如果 p1.2=0,

        

    

    

    作者:李學海 劉治山

    

    引言

    

    設置復位標志位便于區分不同原因引發的復位,作為一種新技術被越來越多的新型單片機所采納。例如philips公司的p87lpc700和 p89lpc900系列、freescale公司(原motorola半導體部)的mc68hc05系列和mc68hc08系列、sunplus公司的 spmc65系列、microchip公司的pic系列等,內部都設計了專門用于記錄各種復位標志的狀態寄存器。

    

    mc68hc08系列有一個復位狀態寄存器,負責記錄6種復位標志位:上電復位、引腳復位、看門狗復位、非法指令復位、非法地址復位和欠壓復位。spmc65系列有一個系統控制寄存器,負責記錄5種復位標志位:上電復位、外部復位、看門狗復位、非法地址復位和欠壓復位。51兼容的p89lpc900系列有一個復位源寄存器,負責記錄6種復位標志位:欠壓復位、上電復位、外部復位、看門狗復位、軟件復位和uart收到間隔字符復位(主要作為進入isp監控程序的途徑之一)。就連初學者很常用的 at89s51/52和p89c52x2,也在其電源控制寄存器pcon中增設了一個上電標志位pof。

    

    1 復位標志位的設置方法

    

    傳統的80c51單片機沒有設計復位標志位的記錄功能,這應該說是一種遺憾,那么能否通過一定的技術手段來彌補這個缺憾呢?這里給廣大80c51單片機用戶提供一種啟示和引導。

    

    實現復位標志位的記錄肯定需要一定的硬件電路支持,而這種電路的設計不存在固定模式。筆者利用一片max813l設計了一種支撐電路,如圖1所示,僅供讀者參考。

    

    

    

    圖1 80c51設置復位標志的支撐電路

    

    在圖1中,應用了一個4輸入端“與非”門g1和一個按鈕開關sw1,還占用了80c51的5條i/o引腳p1.0~p1.4以及一個外部中斷源 int0,并且預先通過初始化軟件設置int0為唯一的高級中斷源,下降沿觸發方式有效,開放總中斷使能位ea。平時g1因各輸入端都維持在高電平上,因而其輸出端也保持高電平。電路中利用了一個海量電容器c1作為儲存能量的器件,扮演著備用電池的角色。由于二極管d1的存在,在主電源斷電期間,c1僅為單片機供電,應該讓這時的80c51進入耗能最低的停機狀態(pd模式)。

    

    在圖1電路的基礎上配合必要的用戶軟件,就可以在7種不同復位源引起復位之后保存6個標志位來記錄7種復位標志,以下分別進行講解。可以事先在ram的位尋址區間分配一個字節,例如20h單元,用于記錄6個復位標志位,如表1所列。

    

    

    

    表1 用戶定義的系統復位標志寄存器(srfr)

    

    假設該寄存器定名為srfr(system reset flag register),字節地址為20h,8位當中僅利用了6位,bit5~bit0分別記錄人工復位、欠壓復位、看門狗復位、非法地址復位、軟硬件復位和軟件復位。

    

    ① mrst:人工復位。當復位按鈕sw1被按下時引發int0中斷;在中斷服務程序中檢測輸入引腳p1.4的狀態。如果p1.4=0,則置位mrst,記錄下曾經發生了一次人工復位操作。然后進行一次主動的復位操作,方法是從輸出腳p1.0輸出一個低電平給max813l的輸入引腳mr,經 max813l延時后從輸出端reset送出高電平復位信號給80c51,令其進行一次硬件復位操作。

    

    ② lvr:欠壓復位。當上游電源電壓開始跌落并且下降到max813l的pfi檢測門限以下,輸出端pfo送出低電平,引發int0中斷;在中斷服務程序中檢測輸入引腳p1.3的狀態。如果p1.3=0,則置位lvr,記錄下曾經發生了一次欠壓復位操作;然后進行一次主動的復位操作(方法同上),或者令單片機進入停機狀態,以便節省能耗和保持數據,以及等待主電源的恢復。

    

    ③ wdr:看門狗復位。當發生看門狗溢出時,max813l的輸出端wdo送出低電平,引發int0中斷;在中斷服務程序中檢測輸入引腳p1.2的狀態。如果 p1.2=0,

相關IC型號

熱門點擊

 

推薦技術資料

音頻變壓器DIY
    筆者在本刊今年第六期上著重介紹了“四夾三”音頻變壓器的... [詳細]
版權所有:51dzw.COM
深圳服務熱線:13692101218  13751165337
粵ICP備09112631號-6(miitbeian.gov.cn)
公網安備44030402000607
深圳市碧威特網絡技術有限公司
付款方式


 復制成功!
柏乡县| 阜宁县| 彭阳县| 安新县| 广西| 湛江市| 启东市| 商洛市| 延津县| 体育| 台州市| 犍为县| 襄垣县| 临朐县| 白河县| 安平县| 临海市| 富锦市| 将乐县| 沂南县| 万年县| 桓台县| 乌海市| 宣武区| 台南市| 南宁市| 舞钢市| 肃宁县| 盐边县| 肥城市| 城市| 增城市| 车险| 阳江市| 沽源县| 贵定县| 福建省| 绥阳县| 磴口县| 金乡县| 青神县|