80C51單片機多機通信原理_多機通信硬件連接圖
雙機通信時,兩臺單片機是平等的,而在多機通信中,有主機從機之分,多機通信是指一臺主機和多臺從機之間的通信。多機通信硬件連接圖,如圖1所示。
圖1 多機通信硬件連接圖
① 主機向各從機發(fā)送地址,此時TB8=1(表示發(fā)送的是地址),由于各從機在初始化時SM2=1,所以此時SM2=1,RB8=1(從機接的第9位數據,即主機的TB8),從而各從機都會把接收到的地址送入SBUF。
② 各從機把接收到的地址與本機地址比較:
不相等,則SM2=1(保持不變);相等,則SM2=0,并把接收到的地址返回主機。
③ 主機接收到返回地址后,與發(fā)送的地址進行比較(即核對),不相等,則重新從①開始;相等轉④。
④ 主機向各從機發(fā)送數據,此時TB8=0,由于相等的那一臺從機的SM2=0,從而會把接收的數據送入SBUF,除此以外的各從機,由于SM2=1,TB8=0,從而不會把接收到的數據送入SBUF。即相當于主機只與地址相符的那一臺從機通信。
在工控系統(tǒng)(尤其是多點現(xiàn)場工控系統(tǒng))設計實踐中,單片機與PC機組合構成分布式控制系統(tǒng)是一個重要的發(fā)展方向。子系統(tǒng)與子系統(tǒng)可以平等信息交換,也可以有主從關系。
分布式控制系統(tǒng)結構圖如圖2所示。
圖2 分布式控制系統(tǒng)結構
在分布式系統(tǒng)的各子系統(tǒng)中,控制器可完全由計算機代替。子系統(tǒng)中單片機是分布式控制系統(tǒng)的優(yōu)選機型。這樣計算機與單片機的通信就顯得愈來愈重要,利用PC機配置的異步通信適配器,可以方便地完成PC與80C51單片機的數據通信。PC機和單片機串行通信硬件連接如圖1所示。
近年來,采用微機與多臺單片機構成的小型測控系統(tǒng)越來越多。它既利用了單片機的價格低、功能強、抗干擾能力強、靈活性好和面向控制等優(yōu)點,又利用操作系統(tǒng)Windows的高級用戶界面、多任務、自動內存管理等特點。①單片機主要進行實時數據采集和預處理,然后通過串口將數據傳給微機。②微機對這些數據進行進一步處理。例如,求方差、均值、動態(tài)曲線與計算給定、打印輸出的各種參數等。這里以1臺PC機和1臺單片機為例給出單片機與微機的通信過程。微機通過發(fā)送字符,單片機接收到數據后立即通過串口發(fā)回此數據并在微機的CRT上顯示該字符。計算機軟件可以利用VB、VC、Delphi等開發(fā)平臺。
如果用戶要進行串行通信,可以調用Windows的API應用程序接口函數,但其使用較為復雜。而使用Microsoft Visual Basic通信控件(MSComm)卻可以很容易的解決這一問題。VB提供一個名為MSComm32.OCX的通信控件,
例,將例改用C語言編程,流程圖如圖,參考程序如下:
1號、2號機T1初始化子程序如下:
一號機發(fā)送子程序如下:
二號機接收子程序如下:
編輯:admin 最后修改時間:2018-06-27