機(jī)電之家資源網(wǎng)
單片機(jī)首頁|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
單片機(jī)遠(yuǎn)程燈控箱設(shè)計(jì)
單片機(jī)遠(yuǎn)程燈控箱設(shè)計(jì)
 更新時(shí)間:2008-7-27 13:56:13  點(diǎn)擊數(shù):4
【字體: 字體顏色
單片機(jī)設(shè)計(jì)實(shí)例

單片機(jī)遠(yuǎn)程燈控箱設(shè)計(jì)

作者:    來源:本站原創(chuàng)    點(diǎn)擊數(shù): 841   更新時(shí)間:2007年06月12日   
 

摘要:以大型場所照明設(shè)備的遠(yuǎn)程控制為目的,介紹基于SST89C58型單片機(jī)的遠(yuǎn)程控箱系統(tǒng)的軟硬件設(shè)計(jì)。該系統(tǒng)通過RS-485總線與PC上位機(jī)通信,實(shí)現(xiàn)遠(yuǎn)距離、多節(jié)點(diǎn)控制。

關(guān)鍵詞:單片機(jī);IAP;遠(yuǎn)程控制;通信協(xié)議:SST89C58

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

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

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

2 硬件設(shè)計(jì)

2.1主要元件

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

圖2

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

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

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

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

3.1主程序設(shè)計(jì)

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

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

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

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

INT8U ReUART(INT8U*ch)

{INTl6U delay=6000;

while(--delay) //延時(shí)

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

{RI=0;//接收中斷標(biāo)志軟件復(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個(gè)字節(jié)

ReUART(&templ);

//開始標(biāo)志

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

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

{for(ii=0;ii<12;ii++)

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

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

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

NewData=l; //新命令標(biāo)志有效

}

Inter_end:;//中斷出口

}

4 結(jié)論

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

下面還介紹一個(gè) ULN2803A和SST89C58型單片機(jī)的遠(yuǎn)程燈控箱系統(tǒng)

主要元件:ULN2803A型器件是TI公司生產(chǎn)的單片集成高壓、大電流達(dá)林頓晶體管陣列。該陣列由8個(gè)NPN達(dá)林頓管組成。其特點(diǎn)是電流增益高、負(fù)載能力強(qiáng)(輸出電流可達(dá)500mA)、工作電壓高(耐壓達(dá)50V)。
摘要:以大型場所照明設(shè)備的遠(yuǎn)程控制為目的,介紹基于SST89C58型單片機(jī)的遠(yuǎn)程燈控箱系統(tǒng)的軟硬件設(shè)計(jì)。該系統(tǒng)通過RS-485總線與PC上位機(jī)通信,實(shí)現(xiàn)遠(yuǎn)距離、多節(jié)點(diǎn)控制。 關(guān)鍵詞:單片機(jī);IAP;遠(yuǎn)程控制;通信協(xié)議:SST89C58電腦是現(xiàn)今信息時(shí)代的標(biāo)志,通過電腦實(shí)現(xiàn)遠(yuǎn)程實(shí)時(shí)自動(dòng)化控制是今后發(fā)展的一種趨勢。在大型商場、飯店、體育場館及娛樂場所里,通常有許多照明設(shè)備。以往的開關(guān)控制和電閘控制,常常需要工作人員頻繁親臨現(xiàn)場操作,或向控制室拉接較長的220V電線,實(shí)時(shí)性、安全性都較差。為了實(shí)現(xiàn)工作人員在控制室可以對分散在各個(gè)房間的遠(yuǎn)端照明設(shè)備進(jìn)行實(shí)時(shí)有效的狀態(tài)控制及狀態(tài)查詢,筆者開發(fā)了一種基于單片機(jī)的遠(yuǎn)程燈控箱系統(tǒng)。該系統(tǒng)由一臺(tái)PC上位機(jī)控制多臺(tái)遠(yuǎn)端燈控箱,通過RS-485總線串行傳送指令,傳輸距離最遠(yuǎn)可達(dá)1.2km,并增強(qiáng)串行通信協(xié)議的制定,降低了噪聲干擾。一臺(tái)燈控箱可對16路燈進(jìn)行控制。燈控箱中選用SST89C58型單片機(jī),其方便的IAP功能可在線下載Hex文件并進(jìn)行調(diào)試,無需多次使用編程器。

1 系統(tǒng)結(jié)構(gòu)及功能遠(yuǎn)程燈控箱系統(tǒng)的結(jié)構(gòu)如圖l所示,其中,PC上位機(jī)放在控制室里,各燈箱就近放置在照明設(shè)備附近。由PC上位機(jī)發(fā)送控制指令,通過RS-485總線將指令串行傳送給各遠(yuǎn)端燈控箱,這樣就可在控制室里實(shí)時(shí)開關(guān)控制,查詢各個(gè)燈的狀態(tài)。從傳輸距離和性價(jià)比方面考慮選用RS-485總線。RS-485為平衡線路,可實(shí)現(xiàn)遠(yuǎn)距離、多節(jié)點(diǎn)控制。本設(shè)計(jì)的重點(diǎn)是燈控箱。下面將以一臺(tái)燈控箱為例介紹系統(tǒng)的軟件和硬件設(shè)計(jì)。2 硬件設(shè)計(jì)2.1主要元件設(shè)計(jì)系統(tǒng)選用Silicon Storage。Technology公司推出的具有IAP(In-Application Programming)功能的SST89C58型單片機(jī)。它在指令系統(tǒng)、硬件結(jié)構(gòu)和片內(nèi)資源上與標(biāo)準(zhǔn)8052型單片機(jī)完全兼容,同時(shí)增大了內(nèi)部程序存儲(chǔ)Flash的容量,可達(dá)36KB。并增加了與Flash編程相關(guān)的6個(gè)特殊功能寄存器和2個(gè)與看門狗復(fù)位有關(guān)的特殊功能寄存器。對SST89C58的IAP功能采用一個(gè)通用程序編寫[1],選用Keil公司的μVision仿真軟件進(jìn)行編程仿真。將生成的Hex文件直接通過RS-232串口從PC下載到單片機(jī)上運(yùn)行調(diào)試,使用非常方便,縮短了開發(fā)周期。ULN2803A型器件是TI公司生產(chǎn)的單片集成高壓、大電流達(dá)林頓晶體管陣列。該陣列由8個(gè)NPN達(dá)林頓管組成。其特點(diǎn)是電流增益高、負(fù)載能力強(qiáng)(輸出電流可達(dá)500mA)、工作電壓高(耐壓達(dá)50V)。選用的:X5045型器件為4K SPI電可擦除存儲(chǔ)器,用于掉電后保存從機(jī)站號(hào)。Maxim公司的MAX485型器件是通用半雙工收發(fā)器,傳輸速度為9.6Kb/s時(shí),傳輸距離可達(dá)1.2km.可實(shí)現(xiàn)上位機(jī)與單片機(jī)之間的串口異步通信。

圖2

2.2系統(tǒng)核心硬件遠(yuǎn)程燈控箱系統(tǒng)的核心硬件圖如圖2所示,以SST89C58型單片機(jī)為核心,用P0口和P2口進(jìn)行信號(hào)控制,注意P0口要加上拉電阻器。通過2個(gè)ULN2803進(jìn)行電流放大,可驅(qū)動(dòng)16路繼電器。由于片內(nèi)帶有共陰極箝位二極管,可適應(yīng)感性負(fù)載,故輸出端可省去大量二極管。SST89C58驅(qū)動(dòng)16路繼電器,可控制16路燈信號(hào)。若要增加控制信號(hào),可增加8255型器件擴(kuò)展并行接口。用X5045保存RS-485網(wǎng)絡(luò)從機(jī)站號(hào)。SST89C58單片機(jī)的P1.2引腳用來模擬X5045的時(shí)鐘輸入信號(hào)SCK,CS=0時(shí),串行輸出SO在時(shí)鐘信號(hào)下降沿有效,串行輸入SI在上升沿有效(WP=1)。具體操作還需要寫入狀態(tài)字。串口部分選用MAX485。其中,RE與DE接在一起由單片機(jī)的RD(P3.7)控制。拉低為接收有效,拉高為發(fā)送有效。該系統(tǒng)還具有上電自動(dòng)復(fù)位和通電指示功能。設(shè)計(jì)PCB時(shí)應(yīng)注意合理布線,對單片機(jī)電源進(jìn)行濾波整流,并遠(yuǎn)離干擾源。3 系統(tǒng)軟件設(shè)計(jì)用C語言編譯器開發(fā)單片機(jī)具有使用方便、編程效率高及仿真調(diào)試容易等突出特點(diǎn)。C51的版本很多,本系統(tǒng)軟件選用德國Keil Software公司的Keil C51編譯器開發(fā)。該編譯器基于Windows平臺(tái)集成開發(fā)環(huán)境,可編輯、編譯和調(diào)試匯編語言程序及C51程序,還可模擬仿真I/O口、定時(shí)器/計(jì)數(shù)器、串行口及中斷等單片機(jī)特有的功能部件,功能非常強(qiáng)大。該系統(tǒng)的軟件設(shè)計(jì)由主程序、中斷程序、串行接收子程序、串行發(fā)送子程序、X5045讀寫子程序及若干功能實(shí)現(xiàn)子程序。其中,:X5045讀寫子程序需對時(shí)鐘進(jìn)行精確操作,用匯編語言編寫,其他均用C語言編寫。3.1主程序設(shè)計(jì)在主程序中,先將SST89C58及X5045初始化,然后等待新命令。當(dāng)NewData=1時(shí),表示已接收到一個(gè)有效的命令幀,否則繼續(xù)等待。接著判斷是否是本機(jī)地址,若是則判斷控制命令,否則繼續(xù)等待。上位機(jī)發(fā)送指定的字符串,分別表示開燈、關(guān)燈、查詢、設(shè)置等命令。通過字符串比較,判斷出命令指令,跳到相應(yīng)的入口子程序中;操作成功后,通過串口發(fā)送子程序返回相應(yīng)的提示符,其具體流程如圖3所示。在本系統(tǒng)中,上位機(jī)的人機(jī)交互界面由C++Builder開發(fā),限于篇幅,在此從略。3.2串口中斷程序設(shè)計(jì)為了增強(qiáng)抗干擾性,有效地區(qū)分噪聲和數(shù)據(jù)便于操作,串口中斷程序加強(qiáng)了通訊協(xié)議的制定[2],具體實(shí)現(xiàn)方法是加開始標(biāo)志和結(jié)束標(biāo)志。噪聲是以隨機(jī)字節(jié)出現(xiàn)的,通過測試和實(shí)驗(yàn),發(fā)現(xiàn)在本系統(tǒng)中0x00后跟0xFF時(shí)噪聲不容易發(fā)生。因此,設(shè)置開始標(biāo)志為0x000xFF,結(jié)束標(biāo)志為回車換行符0x0D0x0A。如果接收命令幀成功,則置NewData=1,表示新命令有效。考慮到糾檢錯(cuò),數(shù)據(jù)采用短包方式。中間采用延時(shí),以保證起始位可靠。串口中斷程序流程如圖4所示。部分程序清單如下。//串行接子函數(shù)INT8U ReUART(INT8U*ch){INTl6U delay=6000;while(--delay) //延時(shí){if(RI),/串行接收中斷標(biāo)志{RI=0;//接收中斷標(biāo)志軟件復(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個(gè)字節(jié)ReUART(&templ);//開始標(biāo)志if((temp==0x00)&&(templ==0xFF))//連續(xù)接收一個(gè)命令幀{for(ii=0;ii<12;ii++){if(ReUART(&buff[ii])==0)goto Inter._end;}//跳出中斷if((buf[10]==0x0D)&&(buf[ll]==0x0A)),/結(jié)束標(biāo)志NewData=l; //新命令標(biāo)志有效}Inter_end:;//中斷出口}4 結(jié)論基于SST89C58的遠(yuǎn)程燈控箱系統(tǒng)可實(shí)現(xiàn)一臺(tái)PC上位機(jī)最多控制256個(gè)燈控箱,傳輸距離最遠(yuǎn)可達(dá)1.2km,每臺(tái)燈控箱可對16路燈進(jìn)行控制.實(shí)現(xiàn)了集中管理,分散控制的功能。該系統(tǒng)通過軟硬件提高抗干擾性,并具有較好的擴(kuò)展性,結(jié)構(gòu)簡單、投資少,實(shí)際應(yīng)用表明具有較強(qiáng)的實(shí)用性。

  • 上一篇: 單片機(jī)交通燈的課程設(shè)計(jì)
  • 下一篇: 單片機(jī)搶答器的課程設(shè)計(jì)
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會(huì)員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請聯(lián)系機(jī)電之家,機(jī)電之家將及時(shí)作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會(huì)
    中國行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1