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