當前位置:編程學習大全網 - 編程軟體 - 編程rs485串行通信

編程rs485串行通信

這個很簡單,我來教妳玩:

首先說壹下硬件連接,USB轉485信號電路塊(只要20塊錢,貴的都是妳的),MAX485芯片,11.0592M晶振(這個頻率晶振產生的波特率誤差低)。

思路:用串口中斷控制P0口的LED(我只是舉個例子,自己寫程序)。

該過程如下:

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

#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 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==0x2a) //2a的ASCII碼是*

{

while(RI = = 0);

RI = 0;

If(SBUF==AddressID) //發送本地地址31的ASCII碼是1。

{

while(RI = = 0);

RI = 0;

if(SBUF==0x23) //23的ASCII碼是#

{

P0 = 254//P0 = 11111110。在這裏寫下妳想要控制LED的程序。

}

}

}

}

就這麽簡單。已經調試完畢,評論完畢。

PS:五天答題後補充:如果妳解決了問題,不要提問,不要給分。這個樓主不厚道,鑒定完了!

  • 上一篇:各大軟件公司為什麽要開設培訓部門?
  • 下一篇:華赫電力技術(銀川)有限公司怎麽樣?
  • copyright 2024編程學習大全網