當(dāng)前位置:首頁 > 物聯(lián)網(wǎng) > 網(wǎng)絡(luò)協(xié)議
[導(dǎo)讀] RS-485總線接口是一種常用的串口,具有網(wǎng)絡(luò)連接方便、抗干擾性能好、傳輸距離遠(yuǎn)等優(yōu)點(diǎn)。RS-485收發(fā)器采用平衡發(fā)送和差分接收,因此具有抑制共模干擾的能力,加上收發(fā)器具有高的靈敏度,能檢測(cè)到低

RS-485總線接口是一種常用的串口,具有網(wǎng)絡(luò)連接方便、抗干擾性能好、傳輸距離遠(yuǎn)等優(yōu)點(diǎn)。RS-485收發(fā)器采用平衡發(fā)送和差分接收,因此具有抑制共模干擾的能力,加上收發(fā)器具有高的靈敏度,能檢測(cè)到低達(dá)200mv的電壓,可靠通信的傳輸距離可達(dá)數(shù)千米。使用RS-485總線組網(wǎng),只需一對(duì)雙絞線就可實(shí)現(xiàn)多系統(tǒng)聯(lián)網(wǎng)構(gòu)成分布式系統(tǒng)、設(shè)備簡(jiǎn)單、價(jià)格低廉、通信距離長(zhǎng)。

51單片機(jī)的485通信程序

#ifndef __485_C__ #define __485_C__

#include 《reg51.h》

#include 《string.h》

#define unsigned char uchar

#define unsigned int uint

/* 通信命令 */

#define __ACTIVE_ 0x01 // 主機(jī)詢問從機(jī)是否存在

#define __GETDATA_ 0x02 // 主機(jī)發(fā)送讀設(shè)備請(qǐng)求

#define __OK_ 0x03 // 從機(jī)應(yīng)答

#define __STATUS_ 0x04 // 從機(jī)發(fā)送設(shè)備狀態(tài)信息

#define __MAXSIZE 0x08 // 緩沖區(qū)長(zhǎng)度

#define __ERRLEN 12 // 任何通信幀長(zhǎng)度超過12則表示出錯(cuò)

uchar dbuf[__MAXSIZE]; // 該緩沖區(qū)用于保存設(shè)備狀態(tài)信息

uchar dev; // 該字節(jié)用于保存本機(jī)設(shè)備號(hào)

sbit M_DE = P1^0; // 驅(qū)動(dòng)器使能,1有效

sbit M_RE = P1^1; // 接收器使能,0有效

void get_status(); // 調(diào)用該函數(shù)獲得設(shè)備狀態(tài)信息,函數(shù)代碼未給出

void send_data(uchar type, uchar len, uchar *buf); // 發(fā)送數(shù)據(jù)幀

bit recv_cmd(uchar *type); // 接收主機(jī)命令,主機(jī)請(qǐng)求僅包含命令信息

void send_byte(uchar da); // 該函數(shù)發(fā)送一幀數(shù)據(jù)中的一個(gè)字節(jié),由send_data()函數(shù)調(diào)用

void main() {

uchar type; uchar len;

/* 系統(tǒng)初始化 */

P1 = 0xff; // 讀取本機(jī)設(shè)備號(hào)

dev = (P1》》2);

TMOD = 0x20; // 定時(shí)器T1使用工作方式2

TH1 = 250; // 設(shè)置初值

TL1 = 250;

TR1 = 1; // 開始計(jì)時(shí)

PCON = 0x80; // SMOD = 1

SCON = 0x50; // 工作方式1,波特率9600bps,允許接收

ES = 0; // 關(guān)閉串口中斷

IT0 = 0; // 外部中斷0使用電平觸發(fā)模式 EX0 = 1; // 開啟外部中斷0 EA = 1; // 開啟中斷

/* 主程序流程 */

while(1) // 主循環(huán) {

if(recv_cmd(&type) == 0) // 發(fā)生幀錯(cuò)誤或幀地址與本機(jī)地址不符,丟棄當(dāng)前幀后返回

conTInue; switch(type) {

case __ACTIVE_: // 主機(jī)詢問從機(jī)是否存在

send_data(__OK_, 0, dbuf); // 發(fā)送應(yīng)答信息,這里buf的內(nèi)容并未用到

break;

case __GETDATA_: len = strlen(dbuf);

send_data(__STATUS_, len, dbuf); // 發(fā)送設(shè)備狀態(tài)信息

break; default:

break; // 命令類型錯(cuò)誤,丟棄當(dāng)前幀后返回

}

}

}

void READSTATUS() interrupt 0 using 1 // 產(chǎn)生外部中斷0時(shí)表示設(shè)備狀態(tài)發(fā)生改變,該函數(shù)使用寄存器組1

{

get_status(); // 獲得設(shè)備狀態(tài)信息,并將其存入dbuf指向的存儲(chǔ)區(qū),數(shù)據(jù)最后一字節(jié)置0表示數(shù)據(jù)結(jié)束

}

/* 該函數(shù)接收一幀數(shù)據(jù)并進(jìn)行檢測(cè),無論該幀是否錯(cuò)誤,函數(shù)均會(huì)返回 * 函數(shù)參數(shù)type保存接收到的命令字

* 當(dāng)接收到數(shù)據(jù)幀錯(cuò)誤或其地址位不為0時(shí)(非主機(jī)發(fā)送幀),函數(shù)返回0,反之返回1 */

bit recv_cmd(uchar *type) {

bit db = 0; // 當(dāng)接收到的上一個(gè)字節(jié)為0xdb時(shí),該位置位

bit c0 = 0; // 當(dāng)接收到的上一個(gè)字節(jié)為0xc0時(shí),該位置位

uchar data_buf[__ERRLEN]; // 保存接收到的幀

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉