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