- 相關(guān)推薦
PIC單片機在智能雙電源裝置中的應用
1.智能雙電源裝置的簡(jiǎn)介
隨著(zhù)對供電可靠性的要求也越來(lái)越高,很多場(chǎng)合用兩路電源來(lái)保證供電的可靠性。當常用電源異常,智能雙電源裝置能自動(dòng)切換到備用電源,智能雙電源裝置就是這種在兩路電源之間進(jìn)行可靠切換、以保證供電的裝置。在醫院、賓館和礦山等有廣泛的應用。
智能雙電源裝置由開(kāi)關(guān)本體和控制器兩部分組成。開(kāi)關(guān)本體由電機通過(guò)機械聯(lián)鎖機構控制常用電源的斷路器和備用電源的斷路器的分合,進(jìn)而控制電源的切換?刂破魍ㄟ^(guò)對電壓的采樣來(lái)判斷電源是否異常,如果出現異常應產(chǎn)生相應的切換。
2.PIC16F877A的簡(jiǎn)介
美國Microchip公司的PIC8位單片機其生產(chǎn)史11年,但現在其產(chǎn)量已躍居世界第二位(僅次于Motorola公司),F在PIC單片機的品種已超過(guò)120種。PIC單片機是RISC結構的單片機,具有高速處理數據的特性(執行速度可達120ns)。PIC16F877A內部自帶看門(mén)狗、256Bytes的EEPROM、8路AD功能、ISP功能和寬電壓工作,工作可靠,能很好的適應智能雙電源裝置應用開(kāi)發(fā)。
3.在8位單片機中在PIC與51系列單片機的比較
PIC的堆棧結構是硬件固定的,PIC16F877A有8級深度的硬件堆棧,51系列單片機的堆棧結構是在RAM區,由程序指定SP的開(kāi)始位置。
PIC的RAM區每個(gè)Byte的位都可以尋址,有4條專(zhuān)用的位操作指令和2條移位指令。51系列單片機的只有0x20到0x2F的Bytes的位是可以尋址,有17條專(zhuān)用的位操作指令和4條移位指令。
PIC的ROM和RAM是采用“頁(yè)”結構的,每頁(yè)為512個(gè)Bytes,通過(guò)STATUS的位來(lái)選擇不同的頁(yè),在程序調用和變量尋址的時(shí)候,要先確定目標的頁(yè),使有起來(lái)不是很方便。51系列單片機的ROM是可以在64K范圍內尋址的,可程序直接尋址調用;RAM在0到0x7F可以直接尋址或間接尋址,0x80以上地址的RAM(包括擴展的RAM)只有間接尋址。
4.智能雙電源裝置的動(dòng)作處理
雙電源控制器的有三種控制方式,自投自復方式、自投不自復方式和發(fā)電機方式。
自投自復式方式:如果常用電源被檢測到出現偏差時(shí),則自動(dòng)將負載從常用電源轉換至備用電源;如果常用電源恢復正常時(shí),則自動(dòng)將負載返回換接到常用電源。
自投不自復式方式:如果常用電源被檢測到出現偏差時(shí),則自動(dòng)將負載從常用電源轉換至備用電源;如果常用電源恢復正常時(shí),不能自動(dòng)將負載返回換接到正常電源供電。除非備用電源出現異常才進(jìn)行轉換。
發(fā)電機方式:如果常用電源被檢測到出現偏差時(shí),發(fā)出發(fā)電指令請求發(fā)電。當發(fā)電電壓達到額定電壓時(shí),先從電網(wǎng)斷開(kāi)負載電路,自動(dòng)轉換到發(fā)電電源供電;當常用電源恢復正常后,則又自動(dòng)返回換接到正常電源供電,并發(fā)出停電指令,請求停止發(fā)電。
以下是三種方式在不同合閘狀態(tài)下的程序任務(wù)處理簡(jiǎn)述:
自投自復方式在常用電源合閘狀態(tài),
常用電源出現異常,進(jìn)行計時(shí)
異常計時(shí)中
異常計時(shí)完成,啟動(dòng)電機
常用電源正常,停止并恢復計時(shí)器
備用電源異常,停止并恢復計時(shí)器
自投自復方式在備用電源合閘狀態(tài),
常用電源出現正常
正常計時(shí)
正常計時(shí)完成,啟動(dòng)電機
常用電源異常,停止計時(shí)
自投不自復方式在常用電源合閘狀態(tài),
常用電源出現異常,進(jìn)行計時(shí)
異常計時(shí)中
異常計時(shí)完成,啟動(dòng)電機
常用電源正常,停止并恢復計時(shí)器
備用電源異常,停止并恢復計時(shí)器
自投不自復方式在備用電源合閘狀態(tài),
常用電源正常,備用電源異常,進(jìn)行計時(shí)
計時(shí)中
計時(shí)完成,啟動(dòng)電機
備用電源正常,停止并恢復計時(shí)器
發(fā)電機方式在常用電源合閘狀態(tài),
常用電源出現異常,進(jìn)行計時(shí)
異常計時(shí)中
異常計時(shí)完成,啟動(dòng)發(fā)電機
發(fā)電機啟動(dòng)等待時(shí)間,計時(shí)中
發(fā)電機等待時(shí)間完成,啟動(dòng)電機,進(jìn)行切換動(dòng)作
常用電源正常,停止任何計時(shí),并恢復計時(shí)器
發(fā)電機方式在備用電源合閘狀態(tài),
常用電源正常,計時(shí)開(kāi)始
計時(shí)中,
正常計時(shí)完成,啟動(dòng)電機,進(jìn)行切換動(dòng)作
常用電源異常,停止計時(shí),并恢復計時(shí)器
如何把這些相近的操作歸納成相同的函數進(jìn)行處理,才可以節約程序代碼。我把這些操作歸納成如下程序:
……
typedefunion
{
unsignedcharcc;
struct
{
unsignedcharbit0:1;
unsignedcharbit1:1;
unsignedcharbit2:1;
unsignedcharbit3:1;
unsignedcharbit4:1;
unsignedcharbit5:1;
unsignedcharbit6:1;
unsignedcharbit7:1;
}Bits;
}Char_Bit;
Char_BitVolErrFlag[2];//可以用位或字節操作
staticvoidCheckVolErr(unsignedchari)
//I=0,檢查常用電源的電壓,更新缺相,欠壓和過(guò)壓標志位
//I=1,檢查備用電源的電壓,更新缺相,欠壓和過(guò)壓標志位
{
……
}
staticvoidStartTurn(unsignedcharbi)
//bi=0,轉到常用電源
//bi=1,轉到備用電源
{
……
}
staticvoidCheckVol1(unsignedchari)
//I=0,判斷常用電源的合閘狀態(tài)
//I=1,判斷備用電源的合閘狀態(tài)
{//電壓判斷,處理函數1
unsignedcharj,k;
if(i==0)
{
j=0;
k=1;
}
else
{
j=1;
k=0;
}
if(VolErrFla
【PIC單片機在智能雙電源裝置中的應用】相關(guān)文章:
IGBT-IPM智能模塊的電路設計及在SVG裝置中的應用03-19
LonWorks及其在智能小區中的應用03-21
基于PIC單片機的熱能表研制03-18
ZigBee在智能照明中的應用研究03-07
商業(yè)智能軟件在汽車(chē)銷(xiāo)售中的應用03-07
P87LPC767單片機及其在微功耗智能定位器中的應用03-18