国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

PIC單片機在智能雙電源裝置中的應用

發布時間:2010-6-13 14:56    發布者:我芯依舊
關鍵詞: PIC , 單片機 , 雙電源
1. 智能雙電源裝置的簡介

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

智能雙電源裝置由開關本體和控制器兩部分組成。開關本體由電機通過機械聯鎖機構控制常用電源的斷路器和備用電源的斷路器的分合,進而控制電源的切換。控制器通過對電壓的采樣來判斷電源是否異常,如果出現異常應產生相應的切換。

2. PIC16F877A的簡介

美國Microchip公司的PIC 8位單片機其生產史11年,但現在其產量已躍居世界第二位(僅次于Motorola公司)。現在PIC單片機的品種已超過120種。PIC單片機是RISC結構的單片機,具有高速處理數據的特性(執行速度可達120ns)。PIC16F877A內部自帶看門狗、256Bytes的EEPROM、8路AD功能、ISP功能和寬電壓工作,工作可靠,能很好的適應智能雙電源裝置應用開發。

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

PIC的堆棧結構是硬件固定的,PIC16F877A有8級深度的硬件堆棧,51系列單片機的堆棧結構是在RAM區,由程序指定SP的開始位置。

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

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

4. 智能雙電源裝置的動作處理

雙電源控制器的有三種控制方式,自投自復方式、自投不自復方式和發電機方式。

自投自復式方式:如果常用電源被檢測到出現偏差時,則自動將負載從常用電源轉換至備用電源;如果常用電源恢復正常時,則自動將負載返回換接到常用電源。

自投不自復式方式:如果常用電源被檢測到出現偏差時,則自動將負載從常用電源轉換至備用電源;如果常用電源恢復正常時,不能自動將負載返回換接到正常電源供電。除非備用電源出現異常才進行轉換。

發電機方式:如果常用電源被檢測到出現偏差時,發出發電指令請求發電。當發電電壓達到額定電壓時,先從電網斷開負載電路,自動轉換到發電電源供電;當常用電源恢復正常后,則又自動返回換接到正常電源供電,并發出停電指令,請求停止發電。

以下是三種方式在不同合閘狀態下的程序任務處理簡述:

自投自復方式在常用電源合閘狀態,
常用電源出現異常,進行計時
異常計時中
異常計時完成,啟動電機
常用電源正常,停止并恢復計時器
備用電源異常,停止并恢復計時器
自投自復方式在備用電源合閘狀態,
常用電源出現正常
正常計時
正常計時完成,啟動電機
常用電源異常,停止計時
自投不自復方式在常用電源合閘狀態,
常用電源出現異常,進行計時
異常計時中
異常計時完成,啟動電機
常用電源正常,停止并恢復計時器
備用電源異常,停止并恢復計時器
自投不自復方式在備用電源合閘狀態,
常用電源正常,備用電源異常,進行計時
計時中
計時完成,啟動電機
備用電源正常,停止并恢復計時器
發電機方式在常用電源合閘狀態,
常用電源出現異常,進行計時
異常計時中
異常計時完成,啟動發電機
發電機啟動等待時間,計時中
發電機等待時間完成,啟動電機,進行切換動作
常用電源正常,停止任何計時,并恢復計時器
發電機方式在備用電源合閘狀態,
常用電源正常,計時開始
計時中,
正常計時完成,啟動電機,進行切換動作
常用電源異常,停止計時,并恢復計時器
如何把這些相近的操作歸納成相同的函數進行處理,才可以節約程序代碼。我把這些操作歸納成如下程序:

……
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]; // 可以用位或字節操作
static void CheckVolErr(unsigned char i)
// I=0, 檢查常用電源的電壓,更新缺相,欠壓和過壓標志位
// I=1, 檢查備用電源的電壓,更新缺相,欠壓和過壓標志位
{
……
}
static void StartTurn(unsigned char bi)
// bi=0,轉到常用電源
// bi=1,轉到備用電源
{
……
}
static void CheckVol1(unsigned char i)
// I=0,判斷常用電源的合閘狀態
// I=1,判斷備用電源的合閘狀態
{ // 電壓判斷,處理函數1
unsigned char j,k;
if (i==0)
{
j=0;
k=1;
}
else
{
j=1;
k=0;
}
if (VolErrFlag[j].cc==0)
{
bVolErrCnting=0; // 恢復異常計時器標記
}
else
{
if (bVolErrCnting==0)
{
di();
CLRWDT();
VolErrCnt=(unsigned int) LimParams.cc[j]*TiScale;
// 預設異常計時器的初值
ei();
bVolErrCnting=1;
return;
}
}
if (VolErrFlag[k].cc !=0)
bVolErrCnting=0;
if (bVolErrCnting && VolErrCnt==0)
{ // 啟動轉換動作
bVolErrCnting=0;
bBkOpen1=k;
CLRWDT();
StartTurn(k);
}
}
static void CheckVol2()
{ // 電壓判斷,處理函數2
if (VolErrFlag[0].cc !=0)
{
bVolErrCnting=0; // 恢復異常計時器標記
}
else
{
if (bVolErrCnting==0)
{
di();
CLRWDT();
VolErrCnt=(unsigned int) LimParams.Para.Trn*TiScale;
// 預設異常計時器的初值
ei();
bVolErrCnting=1;
return;
}
}
if (bVolErrCnting && VolErrCnt==0)
{ // 啟動轉換動作
bVolErrCnting=0;
CLRWDT();
bBkOpen1=0;
StartTurn(0);
}
}
static void CheckVol3()
{ // 電壓判斷,處理函數3
if (VolErrFlag[0].cc==0)
{
bVolErrCnting=0; // 恢復異常計時器標記
bDJstarting=0;
}
else
{
if (bVolErrCnting==0)
{
di();
CLRWDT();
VolErrCnt=(unsigned int) LimParams.Para.Tnr*TiScale;
// 預設異常計時器的初值
ei();
bVolErrCnting=1;
return;
}
}
if (bVolErrCnting && bDJstarting==0 && VolErrCnt==0)
{
di();
CLRWDT();
DJstartCnt=(unsigned int)LimParams.Para.T1*TiScale;
// 預設發電機啟動的等待計時器的初值
ei();
CLRWDT();
bDJstarting=1;
return;
}
if (bDJstarting && DJstartCnt==0)
{ // 啟動轉換動作
CLRWDT();
bVolErrCnting=0;
bBkOpen1=1;
StartTurn(1);
}
}
……
void main()
{
……
if (bBkOpen1)
{ // 在備用電源合閘狀態
if (LimParams.Para.JobType==1)
{ // 自投不自復方式
CheckVol1(1);
}
else
{ //自投不自復或發電機方式
CheckVol2();
}
}
else
{ // 在常用電源合閘狀態
if (LimParams.Para.JobType==2)
{ // 發電機工作方式
CheckVol3();
}
else
{ // 自投自復或自投不自復方式
CheckVol1(0);
}
}
……
}

5. 智能雙電源裝置的電壓采樣的校準

在實際生產中,由于采樣電阻的誤差,所以在相同的校準電壓輸入,單片機采樣到的AD值是不一樣的。如何設定AD值和校準電壓的校準比例,是一個關鍵的問題,校準比例不能在程序編譯中固定下來,因為這樣會有較大的誤差,即使改用精密電阻來采樣,誤差也不能減低很多。我在應用中采用的方法是:提高采樣電路的線性度,使其在不同電壓下的校準比例有很好的一致性(在解決了溫升的問題后,這點是可以做到的);在采樣電路輸入校準電壓,輸入設置密碼后,單片機自動計算校準比例,并把校準比例進行保存。

……
void main()
{
……
ReadScal();
……
while(1)
{
……

……
}
}
……
static void KeyProc()
{……
if ( SetKey==0)
{
……
if ( bSecPass==1)
{
// 設電壓
if (ReadScalFlag() !=0)
return;
// 如果已設定了比例,就不能再更改
CLRWDT();
ShowString(0, 0);
ShowString(1, 1); // "pass"
ShowString(0, 2);
// 在LCD屏上顯示PASS
CLRWDT();
for (i=0; i!=6; i++)
ScalUarray=IntUarray; // 讀入比例參數,
CLRWDT();
SaveScal(); // 保存比例參數
SaveScalFlag(); // 并改寫標志
Delay5s();
return;
}
……
}
}
本文地址:http://m.qingdxww.cn/thread-12914-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • 使用SAM-IoT Wx v2開發板演示AWS IoT Core應用程序
  • 使用Harmony3加速TCP/IP應用的開發培訓教程
  • 集成高級模擬外設的PIC18F-Q71家族介紹培訓教程
  • 探索PIC16F13145 MCU系列——快速概覽
  • 貿澤電子(Mouser)專區

相關在線工具

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩亚洲人成网站在线播放 | 四虎国产精品视频免费看 | 成人亚洲国产精品久久 | 午夜国产精品免费观看 | 69国产成人综合久久精 | 成人性视频app菠萝网站 | 成人免费va视频 | 欧美专区一区二区三区 | 亚洲成人观看 | 久久伊人天堂视频网 | 韩国毛片 | 亚欧在线观看 | 欧美色欧美亚洲另类 | 日本乱妇 | 久久久久久久免费视频 | 国产国语一级a毛片高清视频 | 色拍999| 国产香蕉免费精品视频 | 欧美成人一区二区三区不卡视频 | 97精品在线| 青青草草 | 向日葵视频免费在线观看 | 女老师3韩国| 99精品国产高清自在线看超 | 羞羞网站在线观看 | 日日舔夜夜摸 | 亚洲欧美手机在线观看 | 久久国产精品一区二区三区 | 亚洲日本欧美产综合在线 | 在线va| 欧美性野久久久久久久久 | 一区二区视频在线观看 | 国产在线观看免费一级 | 日韩毛片免费观看 | 国产精品v一区二区三区 | 在线看精品 | 牛牛影视精品一区二区在线看 | 亚洲欧美日韩一区成人 | 亚洲欧美日韩高清专区一区 | 免费网站黄色 | 国产小视频在线观看免费 |