基于51單片機(jī)多機(jī)通信的交通燈控制網(wǎng)絡(luò)設(shè)計
3.2 從機(jī)程序設(shè)計
從機(jī)循環(huán)運(yùn)行交通燈控制程序,交通燈控制程序利用定時器/計數(shù)器0實現(xiàn)定時,為了能正常和主機(jī)通信,從機(jī)的串行口也工作于方式2,SMOD=0,以保持和主機(jī)相同的波特率。由于主機(jī)呼叫從機(jī)時發(fā)送的地址幀與命令幀沒有重復(fù),為了使程序簡單,本文針對從機(jī)接收到主機(jī)發(fā)來的數(shù)據(jù)后不通過第九位數(shù)據(jù)來判斷是地址幀還是命令幀。對接收到的數(shù)據(jù)如果與本機(jī)地址相等則表明是地址幀,立即向主機(jī)發(fā)送自己的地址作為響應(yīng)信號;如果是命令則按命令執(zhí)行相關(guān)操作(所有路口紅機(jī)亮或恢復(fù)交通燈信號);如果既不與本機(jī)地址相等也不是兩個命令之一,則認(rèn)為該數(shù)據(jù)不是發(fā)送給本機(jī)的,該機(jī)繼續(xù)監(jiān)聽,從機(jī)U2串行口接收和發(fā)送數(shù)據(jù)中斷服務(wù)程序清單如下:
4 結(jié)束語
單片機(jī)利用串行口進(jìn)行多機(jī)通信是一個比較復(fù)雜的過程,因此大多數(shù)單片機(jī)書籍沒有對這方面的內(nèi)容進(jìn)行介紹,或者沒有提供實例,本文對MCS-51單片機(jī)的多機(jī)通信進(jìn)行一定的探討,利用單片機(jī)多機(jī)通信對城市交通燈控制系統(tǒng)實現(xiàn)網(wǎng)絡(luò)化集中控制,是一個很好的實例,通過Proteus仿真運(yùn)行(其運(yùn)行情況如圖3所示),此方案切實可行。
評論