日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀] 隨著對供電可靠性的要求也越來越高,很多場合用兩路電源來保證供電的可靠性。當(dāng)常用電源異常,智能雙電源裝置能自動(dòng)切換到備用電源,智能雙電源裝置就是這種在兩路電源之間進(jìn)行可靠切換、以保證供電的裝置。在醫(yī)院、賓館和礦山等有廣泛的應(yīng)用。

作者Email: c8051@21cn.com

1.    智能雙電源裝置的簡介

    隨著對供電可靠性的要求也越來越高,很多場合用兩路電源來保證供電的可靠性。當(dāng)常用電源異常,智能雙電源裝置能自動(dòng)切換到備用電源,智能雙電源裝置就是這種在兩路電源之間進(jìn)行可靠切換、以保證供電的裝置。在醫(yī)院、賓館和礦山等有廣泛的應(yīng)用。 

    智能雙電源裝置由開關(guān)本體和控制器兩部分組成。開關(guān)本體由電機(jī)通過機(jī)械聯(lián)鎖機(jī)構(gòu)控制常用電源的斷路器和備用電源的斷路器的分合,進(jìn)而控制電源的切換??刂破魍ㄟ^對電壓的采樣來判斷電源是否異常,如果出現(xiàn)異常應(yīng)產(chǎn)生相應(yīng)的切換。

2.    PIC16F877A的簡介 

    美國Microchip公司的PIC 8位單片機(jī)其生產(chǎn)史11年,但現(xiàn)在其產(chǎn)量已躍居世界第二位(僅次于Motorola公司)?,F(xiàn)在PIC單片機(jī)的品種已超過120種。PIC單片機(jī)是RISC結(jié)構(gòu)的單片機(jī),具有高速處理數(shù)據(jù)的特性(執(zhí)行速度可達(dá)120ns)。PIC16F877A內(nèi)部自帶看門狗、256Bytes的EEPROM、8路AD功能、ISP功能和寬電壓工作,工作可靠,能很好的適應(yīng)智能雙電源裝置應(yīng)用開發(fā)。

3.    在8位單片機(jī)中 在PIC與51系列單片機(jī)的比較

PIC的堆棧結(jié)構(gòu)是硬件固定的,PIC16F877A有8級深度的硬件堆棧,51系列單片機(jī)的堆棧結(jié)構(gòu)是在RAM區(qū),由程序指定SP的開始位置。

PIC的RAM區(qū)每個(gè)Byte的位都可以尋址,有4條專用的位操作指令和2條移位指令。51系列單片機(jī)的只有0x20到0x2F的Bytes的位是可以尋址,有17條專用的位操作指令和4條移位指令。

PIC的ROM和RAM是采用“頁”結(jié)構(gòu)的,每頁為512個(gè)Bytes,通過STATUS的位來選擇不同的頁,在程序調(diào)用和變量尋址的時(shí)候,要先確定目標(biāo)的頁,使有起來不是很方便。51系列單片機(jī)的ROM是可以在64K范圍內(nèi)尋址的,可程序直接尋址調(diào)用;RAM在0到0x7F可以直接尋址或間接尋址,0x80以上地址的RAM(包括擴(kuò)展的RAM)只有間接尋址。

4.    智能雙電源裝置的動(dòng)作處理

雙電源控制器的有三種控制方式,自投自復(fù)方式、自投不自復(fù)方式和發(fā)電機(jī)方式。
自投自復(fù)式方式:如果常用電源被檢測到出現(xiàn)偏差時(shí),則自動(dòng)將負(fù)載從常用電源轉(zhuǎn)換至備用電源;如果常用電源恢復(fù)正常時(shí),則自動(dòng)將負(fù)載返回?fù)Q接到常用電源。
自投不自復(fù)式方式:如果常用電源被檢測到出現(xiàn)偏差時(shí),則自動(dòng)將負(fù)載從常用電源轉(zhuǎn)換至備用電源;如果常用電源恢復(fù)正常時(shí),不能自動(dòng)將負(fù)載返回?fù)Q接到正常電源供電。除非備用電源出現(xiàn)異常才進(jìn)行轉(zhuǎn)換。

發(fā)電機(jī)方式:如果常用電源被檢測到出現(xiàn)偏差時(shí),發(fā)出發(fā)電指令請求發(fā)電。當(dāng)發(fā)電電壓達(dá)到額定電壓時(shí),先從電網(wǎng)斷開負(fù)載電路,自動(dòng)轉(zhuǎn)換到發(fā)電電源供電;當(dāng)常用電源恢復(fù)正常后,則又自動(dòng)返回?fù)Q接到正常電源供電,并發(fā)出停電指令,請求停止發(fā)電。

以下是三種方式在不同合閘狀態(tài)下的程序任務(wù)處理簡述:

自投自復(fù)方式在常用電源合閘狀態(tài),
常用電源出現(xiàn)異常,進(jìn)行計(jì)時(shí)
異常計(jì)時(shí)中
異常計(jì)時(shí)完成,啟動(dòng)電機(jī)
常用電源正常,停止并恢復(fù)計(jì)時(shí)器
備用電源異常,停止并恢復(fù)計(jì)時(shí)器
自投自復(fù)方式在備用電源合閘狀態(tài),
常用電源出現(xiàn)正常
正常計(jì)時(shí)
正常計(jì)時(shí)完成,啟動(dòng)電機(jī)
常用電源異常,停止計(jì)時(shí)
自投不自復(fù)方式在常用電源合閘狀態(tài),
常用電源出現(xiàn)異常,進(jìn)行計(jì)時(shí)
異常計(jì)時(shí)中
異常計(jì)時(shí)完成,啟動(dòng)電機(jī)
常用電源正常,停止并恢復(fù)計(jì)時(shí)器
備用電源異常,停止并恢復(fù)計(jì)時(shí)器
自投不自復(fù)方式在備用電源合閘狀態(tài),
常用電源正常,備用電源異常,進(jìn)行計(jì)時(shí)
計(jì)時(shí)中
計(jì)時(shí)完成,啟動(dòng)電機(jī)
備用電源正常,停止并恢復(fù)計(jì)時(shí)器
發(fā)電機(jī)方式在常用電源合閘狀態(tài),
常用電源出現(xiàn)異常,進(jìn)行計(jì)時(shí)
異常計(jì)時(shí)中
異常計(jì)時(shí)完成,啟動(dòng)發(fā)電機(jī)
發(fā)電機(jī)啟動(dòng)等待時(shí)間,計(jì)時(shí)中
發(fā)電機(jī)等待時(shí)間完成,啟動(dòng)電機(jī),進(jìn)行切換動(dòng)作
常用電源正常,停止任何計(jì)時(shí),并恢復(fù)計(jì)時(shí)器
發(fā)電機(jī)方式在備用電源合閘狀態(tài),
常用電源正常,計(jì)時(shí)開始
計(jì)時(shí)中,
正常計(jì)時(shí)完成,啟動(dòng)電機(jī),進(jìn)行切換動(dòng)作
常用電源異常,停止計(jì)時(shí),并恢復(fù)計(jì)時(shí)器
如何把這些相近的操作歸納成相同的函數(shù)進(jìn)行處理,才可以節(jié)約程序代碼。我把這些操作歸納成如下程序:
……
typedef union
{
    unsigned char cc;
    struct 
    {
        unsigned char bit0:1;
        unsigned char bit1:1;
        unsigned char bit2:1;
        unsigned char bit3:1;
        unsigned char bit4:1;
        unsigned char bit5:1;
        unsigned char bit6:1;
        unsigned char bit7:1;
    }Bits;
} Char_Bit;
Char_Bit VolErrFlag[2];            // 可以用位或字節(jié)操作
static void CheckVolErr(unsigned char i)
// I=0, 檢查常用電源的電壓,更新缺相,欠壓和過壓標(biāo)志位
// I=1, 檢查備用電源的電壓,更新缺相,欠壓和過壓標(biāo)志位
{
    ……
}
static void StartTurn(unsigned char bi)
// bi=0,轉(zhuǎn)到常用電源
// bi=1,轉(zhuǎn)到備用電源
{
    ……
}
static void CheckVol1(unsigned char i)
// I=0,判斷常用電源的合閘狀態(tài)
// I=1,判斷備用電源的合閘狀態(tài)
{        // 電壓判斷,處理函數(shù)1
    unsigned char j,k;
    if (i==0)
        {
        j=0;
        k=1;
        }
    else
        {
        j=1;
        k=0;
        }
    if (VolErrFlag[j].cc==0)
        {
        bVolErrCnting=0;            // 恢復(fù)異常計(jì)時(shí)器標(biāo)記
        }
    else
        {
        if (bVolErrCnting==0)
            {
            di();
            CLRWDT();
            VolErrCnt=(unsigned int) LimParams.cc[j]*TiScale;        
            // 預(yù)設(shè)異常計(jì)時(shí)器的初值
            ei();
            bVolErrCnting=1;
            return;
            }
        }
    if (VolErrFlag[k].cc !=0)
        bVolErrCnting=0;
    if (bVolErrCnting && VolErrCnt==0)
        {        // 啟動(dòng)轉(zhuǎn)換動(dòng)作
        bVolErrCnting=0;
        bBkOpen1=k;
        CLRWDT();
        StartTurn(k);
        }
}
static void CheckVol2()
{        // 電壓判斷,處理函數(shù)2
    if (VolErrFlag[0].cc !=0)
        {
        bVolErrCnting=0;   // 恢復(fù)異常計(jì)時(shí)器標(biāo)記
        }
    else
        {
        if (bVolErrCnting==0)
            {
            di();
            CLRWDT();
            VolErrCnt=(unsigned int) LimParams.Para.Trn*TiScale;    
           // 預(yù)設(shè)異常計(jì)時(shí)器的初值
            ei();
            bVolErrCnting=1;
            return;
            }
        }
    if (bVolErrCnting && VolErrCnt==0)
        {    // 啟動(dòng)轉(zhuǎn)換動(dòng)作
        bVolErrCnting=0;
        CLRWDT();
        bBkOpen1=0;
        StartTurn(0);
        }
}
static void CheckVol3()
{        // 電壓判斷,處理函數(shù)3
    if (VolErrFlag[0].cc==0)
        {
        bVolErrCnting=0;  // 恢復(fù)異常計(jì)時(shí)器標(biāo)記
        bDJstarting=0;
        }
    else
        {
        if (bVolErrCnting==0)
            {
            di();
            CLRWDT();
            VolErrCnt=(unsigned int) LimParams.Para.Tnr*TiScale;    
            // 預(yù)設(shè)異常計(jì)時(shí)器的初值
            ei();
            bVolErrCnting=1;
            return;
            }
        }
    if (bVolErrCnting && bDJstarting==0 && VolErrCnt==0)
        {
        di();
        CLRWDT();
        DJstartCnt=(unsigned int)LimParams.Para.T1*TiScale;
        // 預(yù)設(shè)發(fā)電機(jī)啟動(dòng)的等待計(jì)時(shí)器的初值
        ei();
        CLRWDT();
        bDJstarting=1;
        return;
        }
    if (bDJstarting &&  DJstartCnt==0)
        {   // 啟動(dòng)轉(zhuǎn)換動(dòng)作
        CLRWDT();
        bVolErrCnting=0;
        bBkOpen1=1;
        StartTurn(1);
        }
}
……
void main()
{
……
                if (bBkOpen1)
                    {    // 在備用電源合閘狀態(tài)
                    if (LimParams.Para.JobType==1)
                        {    // 自投不自復(fù)方式
                        CheckVol1(1);
                        }
                    else
                        {  //自投不自復(fù)或發(fā)電機(jī)方式
                        CheckVol2();
                        }
                    }
                else
                    {    // 在常用電源合閘狀態(tài)
                    if (LimParams.Para.JobType==2)
                        {  // 發(fā)電機(jī)工作方式
                        CheckVol3();
                        }
                    else
                        {     // 自投自復(fù)或自投不自復(fù)方式
                        CheckVol1(0);
                        }
                    }
……
}
5. 智能雙電源裝置的電壓采樣的校準(zhǔn)
   在實(shí)際生產(chǎn)中,由于采樣電阻的誤差,所以在相同的校準(zhǔn)電壓輸入,單片機(jī)采樣到的AD值是不一樣的。如何設(shè)定AD值和校準(zhǔn)電壓的校準(zhǔn)比例,是一個(gè)關(guān)鍵的問題,校準(zhǔn)比例不能在程序編譯中固定下來,因?yàn)檫@樣會(huì)有較大的誤差,即使改用精密電阻來采樣,誤差也不能減低很多。我在應(yīng)用中采用的方法是:提高采樣電路的線性度,使其在不同電壓下的校準(zhǔn)比例有很好的一致性(在解決了溫升的問題后,這點(diǎn)是可以做到的);在采樣電路輸入校準(zhǔn)電壓,輸入設(shè)置密碼后,單片機(jī)自動(dòng)計(jì)算校準(zhǔn)比例,并把校準(zhǔn)比例進(jìn)行保存。
……
void main()
{
……
    ReadScal();
……
    while(1)
    {
……

……
    }
}
……
static void KeyProc()
{……
    if ( SetKey==0)
        {
        ……
        if ( bSecPass==1)
            {
            // 設(shè)電壓
            if (ReadScalFlag() !=0) 
                return;
    // 如果已設(shè)定了比例,就不能再更改
            CLRWDT();
            ShowString(0, 0);
            ShowString(1, 1);            // "pass"
            ShowString(0, 2);    
        // 在LCD屏上顯示PASS
            CLRWDT();
            for (i=0; i!=6; i++)
                ScalUarray[i]=IntUarray[i];    // 讀入比例參數(shù),
            CLRWDT();
            SaveScal();        // 保存比例參數(shù)
            SaveScalFlag();  // 并改寫標(biāo)志
            Delay5s();
            return;
            }
        ……
        }
}

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動(dòng)電源

在工業(yè)自動(dòng)化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動(dòng)力設(shè)備,其驅(qū)動(dòng)電源的性能直接關(guān)系到整個(gè)系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動(dòng)勢抑制與過流保護(hù)是驅(qū)動(dòng)電源設(shè)計(jì)中至關(guān)重要的兩個(gè)環(huán)節(jié),集成化方案的設(shè)計(jì)成為提升電機(jī)驅(qū)動(dòng)性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動(dòng)電源

LED 驅(qū)動(dòng)電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個(gè)照明設(shè)備的使用壽命。然而,在實(shí)際應(yīng)用中,LED 驅(qū)動(dòng)電源易損壞的問題卻十分常見,不僅增加了維護(hù)成本,還影響了用戶體驗(yàn)。要解決這一問題,需從設(shè)計(jì)、生...

關(guān)鍵字: 驅(qū)動(dòng)電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動(dòng)電源的公式,電感內(nèi)電流波動(dòng)大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計(jì) 驅(qū)動(dòng)電源

電動(dòng)汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動(dòng)汽車的核心技術(shù)之一是電機(jī)驅(qū)動(dòng)控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動(dòng)系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動(dòng)汽車的動(dòng)力性能和...

關(guān)鍵字: 電動(dòng)汽車 新能源 驅(qū)動(dòng)電源

在現(xiàn)代城市建設(shè)中,街道及停車場照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨(dú)特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動(dòng)電源 LED

LED通用照明設(shè)計(jì)工程師會(huì)遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動(dòng)電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動(dòng)電源的電磁干擾(EMI)問題成為了一個(gè)不可忽視的挑戰(zhàn)。電磁干擾不僅會(huì)影響LED燈具的正常工作,還可能對周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動(dòng)電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動(dòng)電源

關(guān)鍵字: LED 驅(qū)動(dòng)電源 開關(guān)電源

LED驅(qū)動(dòng)電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動(dòng)LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動(dòng)電源
關(guān)閉