當前位置:編程學習大全網 - 源碼下載 - 485采集源代碼

485采集源代碼

這個問題很簡單。如果用485通訊,思路如下。

想法:

PC:可以用MSCOMM控件先發送壹個字符表示接收地址,然後延遲1ms(註意PC在485通信發送字符的過程中壹定要延遲,這是我多次測試的總結。如果用的是調試助手,就不需要考慮這個問題),然後發送控制指令。新手建議直接用調試助手。

單片機:首先檢查接收到的數據。如果不是本地地址,放棄。如果是本地地址,檢查命令是否正確。如果正確,返回PC本地地址,處理後發送命令。

我舉個例子教妳怎麽玩多站通訊。這是壹個程序,我已經通過了測試。

# include & ltreg 51 . h & gt;//選擇晶振11.0592MHz。

# include & ltabsacc.h & gt

# defined ATA 51 dbyte[0x 80]//80h來存儲數據。

#define AddressID 0x31 //本地地址1

sbit rs485e=p3^7;//定義485 // RS5485E=0的使能引腳為接收狀態,RS5485E=1為發送狀態。

sbit max485_dir=p3^7;

主()

{

//* * * * * * * * * *通信設置

SCON = 0xf 0;//REN=1允許串口接受狀態,串口工作模式3,=1。

TMOD | = 0x 20;//定時器工作模式2

PCON | = 0x 80;//波特率加倍

IP = 0x 10;//串口優先級高。

//th 1 = 0x FD;//波特* 2/*重載值19200,數據位8,停止位1。無效(11.0592)

th 1 = 0x F4;//FA///Baud * 2/*波特率4800,數據位8,停止位1。無效(11.0592M)

TL 1 = 0x F4;

tr 1 = 1;//啟動計時器1

EA = 1;//打開主機中斷

ES = 1;//打開串行端口中斷

RS 485 e = 0;// RS5485E=0為接收狀態,RS5485E=1為發送狀態。

while(1);

}

無效計數器4(無效)中斷4使用2//串行端口中斷

{

while(RI = = 0);

RI = 0;

if(SBUF==AddressID)

{

while(RI = = 0);

RI = 0;

if(sbuf = = 0x 001)//發送指令

{

max 485 _ DIR = 1;//開發和交付

SBUF = AddressID

while(TI = = 0);

TI = 0;

SBUF = 0x6f//發送o

while(TI = = 0);

TI = 0;

SBUF = 0x6b//發送k

max 485 _ DIR = 0;//開放接待

}

If(SBUF==0x00) //接收

{

//這裏怎麽處理,看妳自己想怎麽做了。妳沒有要求,我也不擅長怎麽寫。自己寫就好了。

}

}

}

該程序已通過調試,可以直接應用。

  • 上一篇:哪個微信小程序商城發展的比較好?
  • 下一篇:H5盲盒彩票源代碼系統
  • copyright 2024編程學習大全網