|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
關(guān)于PIC12F單片機(jī)的欠壓復(fù)位的疑問 |
| 作者:chongziwo 欄目:單片機(jī) |
在其手冊上是這樣說明欠壓復(fù)位的工作的: 電源控制/ 狀態(tài)寄存器PCON(地址8Eh)包含兩個(gè)位。Bit0 是BOD 位(欠壓復(fù)位)。BOD 在發(fā)生上電復(fù)位后狀態(tài)未知。用戶必須將該位置1,并在隨后的復(fù)位發(fā)生時(shí)檢查BOD 是否為0,如果是,則表示已經(jīng)發(fā)生過欠壓復(fù)位。 假設(shè)在程序功能是當(dāng)發(fā)生欠壓復(fù)位的時(shí)候就在原地循環(huán)等待模塊在硬件電路上關(guān)掉電源、停止工作。但是是如何判斷出是否發(fā)生了欠壓復(fù)位呢?如果在程序初始化的時(shí)候?qū)懼噶顚CON的BOD 位置1,那么當(dāng)發(fā)生任何復(fù)位的時(shí)候,會(huì)重新在0X00H開始執(zhí)行指令,則該指令還是會(huì)被執(zhí)行的,那么就無法判斷是否發(fā)生了欠壓復(fù)位的吧?應(yīng)該怎樣實(shí)現(xiàn)欠壓復(fù)位檢測呢? |
| 2樓: | >>參與討論 |
| 作者: systemchip 于 2006/6/21 13:46:00 發(fā)布:
: 開始時(shí),你可以通過POR位來判斷是否為上電復(fù)位,如果不是上電復(fù)位,你就可通過檢測BOR位去判斷是否是掉電復(fù)位了,判斷完后將BOR置1以判斷隨后發(fā)生掉電復(fù)位。 |
|
| 3樓: | >>參與討論 |
| 作者: chongziwo 于 2006/6/21 14:24:00 發(fā)布:
好像沒有設(shè)置BOR位為1的必要? 在程序復(fù)位后會(huì)去判斷是什么復(fù)位,如果排除上電復(fù)位、看門狗復(fù)位后(這里沒有使能MCLR復(fù)位功能),那么就是欠壓復(fù)位了,但是在仿真情況下看,一開始運(yùn)行的時(shí)候BOR就是0的,非常不明白的就是這里了,好像如果不特意的設(shè)定BOR為1,PCON的0位就一直是0,就是說如果為了判斷是否發(fā)生欠壓復(fù)位就會(huì)將BOR位設(shè)為1,當(dāng)在隨后發(fā)生的復(fù)位后如果此位為0則就發(fā)生復(fù)位了。好像繞了一圈根本沒有設(shè)置BOR位為1的必要阿?暈-_-! |
|
|
|
| 免費(fèi)注冊為維庫電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |