<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于51型單片機的遠程燈控箱系統(tǒng)

          基于51型單片機的遠程燈控箱系統(tǒng)

          作者: 時間:2011-12-30 來源:網(wǎng)絡(luò) 收藏

          電腦是現(xiàn)今信息時代的標志,通過電腦實現(xiàn)遠程實時自動化控制是今后發(fā)展的一種趨勢。在大型商場、飯店、體育場館及娛樂場所里,通常有許多照明設(shè)備。以往的開關(guān)控制和電閘控制,常常需要工作人員頻繁親臨現(xiàn)場操作,或向控制室拉接較長的220V電線,實時性、安全性都較差。為了實現(xiàn)工作人員在控制室可以對分散在各個房間的遠端照明設(shè)備進行實時有效的狀態(tài)控制及狀態(tài)查詢,筆者開發(fā)了一種基于的遠程燈控箱系統(tǒng)。該系統(tǒng)由一臺PC上位機控制多臺遠端燈控箱,通過RS-485總線串行傳送指令,傳輸距離最遠可達1.2km,并增強串行通信協(xié)議的制定,降低了噪聲干擾。一臺燈控箱可對16路燈進行控制。燈控箱中選用SST89C58型,其方便的功能可在線下載Hex文件并進行調(diào)試,無需多次使用編程器。

          1 系統(tǒng)結(jié)構(gòu)及功能

          遠程燈控箱系統(tǒng)的結(jié)構(gòu)如圖l所示,其中,PC上位機放在控制室里,各燈箱就近放置在照明設(shè)備附近。由PC上位機發(fā)送控制指令,通過RS-485總線將指令串行傳送給各遠端燈控箱,這樣就可在控制室里實時開關(guān)控制,查詢各個燈的狀態(tài)。從傳輸距離和性價比方面考慮選用RS-485總線。RS-485為平衡線路,可實現(xiàn)遠距離、多節(jié)點控制。本設(shè)計的重點是燈控箱。下面將以一臺燈控箱為例介紹系統(tǒng)的軟件和硬件設(shè)計。

          2 硬件設(shè)計

          2.1主要元件

          設(shè)計系統(tǒng)選用Silicon Storage。Technology公司推出的具有(In-Application Programming)功能的SST89C58型。它在指令系統(tǒng)、硬件結(jié)構(gòu)和片內(nèi)資源上與標準8052型單片機完全兼容,同時增大了內(nèi)部程序存儲Flash的容量,可達36KB。并增加了與Flash編程相關(guān)的6個特殊功能寄存器和2個與看門狗復(fù)位有關(guān)的特殊功能寄存器。對SST89C58的功能采用一個通用程序編寫[1],選用Keil公司的μVision仿真軟件進行編程仿真。將生成的Hex文件直接通過RS-232串口從PC下載到單片機上運行調(diào)試,使用非常方便,縮短了開發(fā)周期。ULN2803A型器件是TI公司生產(chǎn)的單片集成高壓、大電流達林頓晶體管陣列。該陣列由8個NPN達林頓管組成。其特點是電流增益高、負載能力強(輸出電流可達500mA)、工作電壓高(耐壓達50V)。選用的:X5045型器件為4K SPI電可擦除存儲器,用于掉電后保存從機站號。Maxim公司的MAX485型器件是通用半雙工收發(fā)器,傳輸速度為9.6Kb/s時,傳輸距離可達1.2km.可實現(xiàn)上位機與單片機之間的串口異步通信。


          2.2系統(tǒng)核心硬件

          遠程燈控箱系統(tǒng)的核心硬件圖如圖2所示,以SST89C58型單片機為核心,用P0口和P2口進行信號控制,注意P0口要加上拉電阻器。通過2個ULN2803進行電流放大,可驅(qū)動16路繼電器。由于片內(nèi)帶有共陰極箝位二極管,可適應(yīng)感性負載,故輸出端可省去大量二極管。SST89C58驅(qū)動16路繼電器,可控制16路燈信號。若要增加控制信號,可增加8255型器件擴展并行接口。用X5045保存RS-485網(wǎng)絡(luò)從機站號。SST89C58單片機的P1.2引腳用來模擬X5045的時鐘輸入信號SCK,CS=0時,串行輸出SO在時鐘信號下降沿有效,串行輸入SI在上升沿有效(WP=1)。具體操作還需要寫入狀態(tài)字。串口部分選用MAX485。其中,RE與DE接在一起由單片機的RD(P3.7)控制。拉低為接收有效,拉高為發(fā)送有效。該系統(tǒng)還具有上電自動復(fù)位和通電指示功能。設(shè)計PCB時應(yīng)注意合理布線,對單片機電源進行濾波整流,并遠離干擾源。

          3 系統(tǒng)軟件設(shè)計

          用C語言編譯器開發(fā)單片機具有使用方便、編程效率高及仿真調(diào)試容易等突出特點。C51的版本很多,本系統(tǒng)軟件選用德國Keil Software公司的Keil C51編譯器開發(fā)。該編譯器基于Windows平臺集成開發(fā)環(huán)境,可編輯、編譯和調(diào)試匯編語言程序及C51程序,還可模擬仿真I/O口、定時器/計數(shù)器、串行口及中斷等單片機特有的功能部件,功能非常強大。該系統(tǒng)的軟件設(shè)計由主程序、中斷程序、串行接收子程序、串行發(fā)送子程序、X5045讀寫子程序及若干功能實現(xiàn)子程序。其中,:X5045讀寫子程序需對時鐘進行精確操作,用匯編語言編寫,其他均用C語言編寫。

          3.1主程序設(shè)計

          在主程序中,先將SST89C58及X5045初始化,然后等待新命令。當NewData=1時,表示已接收到一個有效的命令幀,否則繼續(xù)等待。接著判斷是否是本機地址,若是則判斷控制命令,否則繼續(xù)等待。上位機發(fā)送指定的字符串,分別表示開燈、關(guān)燈、查詢、設(shè)置等命令。通過字符串比較,判斷出命令指令,跳到相應(yīng)的入口子程序中;操作成功后,通過串口發(fā)送子程序返回相應(yīng)的提示符,其具體流程如圖3所示。在本系統(tǒng)中,上位機的人機交互界面由C++Builder開發(fā),限于篇幅,在此從略。

          3.2串口中斷程序設(shè)計

          為了增強抗干擾性,有效地區(qū)分噪聲和數(shù)據(jù)便于操作,串口中斷程序加強了通訊協(xié)議的制定[2],具體實現(xiàn)方法是加開始標志和結(jié)束標志。噪聲是以隨機字節(jié)出現(xiàn)的,通過測試和實驗,發(fā)現(xiàn)在本系統(tǒng)中0x00后跟0xFF時噪聲不容易發(fā)生。因此,設(shè)置開始標志為0x000xFF,結(jié)束標志為回車換行符0x0D0x0A。如果接收命令幀成功,則置NewData=1,表示新命令有效??紤]到糾檢錯,數(shù)據(jù)采用短包方式。中間采用延時,以保證起始位可靠。串口中斷程序流程如圖4所示。部分程序清單如下。

          //串行接子函數(shù)

          INT8U ReUART(INT8U*ch)

          {INTl6U delay=6000;

          while(--delay) //延時

          {if(RI),/串行接收中斷標志

          {RI=0;//接收中斷標志軟件復(fù)位

          、 *ch=SBU F=//讀數(shù)據(jù)緩沖器

          return 1;}//成功返回l

          }

          return(0);//接收失敗返回0

          )

          //串行中斷處理程序

          void UART_Inter(void)interrupt 4

          {INT8U ii;

          INT8U temp,templ;

          ReUART(temp、);//先連續(xù)接收2個字節(jié)

          ReUART(templ);

          //開始標志

          if((temp==0x00)(templ==0xFF))

          //連續(xù)接收一個命令幀

          {for(ii=0;ii12;ii++)

          {if(ReUART(buff[ii])==0)

          goto Inter._end;}//跳出中斷

          if((buf[10]==0x0D)(buf[ll]==0x0A)),/結(jié)束標志

          NewData=l; //新命令標志有效

          }

          Inter_end:;//中斷出口

          }

          4 結(jié)論

          基于SST89C58的遠程燈控箱系統(tǒng)可實現(xiàn)一臺PC上位機最多控制256個燈控箱,傳輸距離最遠可達1.2km,每臺燈控箱可對16路燈進行控制.實現(xiàn)了集中管理,分散控制的功能。該系統(tǒng)通過軟硬件提高抗干擾性,并具有較好的擴展性,結(jié)構(gòu)簡單、投資少,實際應(yīng)用表明具有較強的實用性。



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();