【簡要說明】
一、尺寸:全長37mm寬25mm高15mm
二、主芯片:MAX485通訊芯片
三、工作電壓:直流3.3V至5V
四、特點:
1、電路簡單實用,接線簡單。
2、一端與485模塊連接,另一端可直接和單片機連接。
3、可以單片機與單片機通訊。
4、可UART 與485設備通訊。
5、電路小巧,方便固定安裝。
6、通信距離最大1200米。
7、工作溫度-20°~50°。
8、RS-485的數(shù)據(jù)最高傳輸速率為10Mbps
9、RS-485最大的通信距離約為1200m,最大數(shù)據(jù)傳輸速率為10Mb/S,傳輸速率與傳輸距離成反比,在100Kb/S的傳輸速率下,才可以達到最大的通信距離,如果需傳輸更長的距離,需要加485中繼器。RS-485總線一般最大支持32個節(jié)點,如果使用特制的485芯片,可以達到128個或者256個節(jié)點,最大的可以支持到400個節(jié)點。
【小知識】
RS232,RS422,RS485是電氣標準,主要區(qū)別就是邏輯如何表示。
RS232使用12V,0,-12V電壓來表示邏輯,(-12V表示邏輯1,12V表示邏輯0),全雙工,最少3條通信線(RX,TX,GND),因為使用絕對電壓表示邏輯,由于干擾,導線電阻等原因,通訊距離不遠,低速時幾十米也是可以的。
RS422,在RS232后推出,使用TTL差動電平表示邏輯,就是兩根的電壓差表示邏輯,RS422定義為全雙工的,所以最少要4根通信線(一般額外地多一根地線),一個驅(qū)動器可以驅(qū)動最多10個接收器(即接收器為1/10單位負載),通訊距離與通訊速率有關(guān)系,一般距離短時可以使用高速率進行通信,速率低時可以進行較遠距離通信,一般可達數(shù)百上千米。
RS485,在RS422后推出,絕大部分繼承了422,主要的差別是RS485可以是半雙工的,而且一個驅(qū)動器的驅(qū)動能力至少可以驅(qū)動32個接收器(即接收器為1/32單位負載),當使用阻抗更高的接收器時可以驅(qū)動更多的接收器。所以現(xiàn)在大多數(shù)全雙工485驅(qū)動/接收器對都是標:RS422/485的,因為全雙工RS485的驅(qū)動/接收器對一定可以用在RS422網(wǎng)絡。
適用場合:單片機學習、電子競賽、產(chǎn)品開發(fā)、畢業(yè)設計。。。
【標注說明】<?xml:namespace prefix = o />
【接線示意圖】
【參考原理圖】
【PCB尺寸圖】
【測試程序】
簡單的發(fā)送程序:
/********************************************************************
*********************************************************************/
#include<reg52.h> //庫文件
#define uchar unsigned char//宏定義無符號字符型
#define uint unsigned int //宏定義無符號整型
/********************************************************************
初始定義
*********************************************************************/
code uchar seg7code[10]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //顯示段碼 數(shù)碼管字跟
uchar wei[4]={0XEf,0XDf,0XBf,0X7f}; //位的控制端
uchar dat; //用于存儲單片機接收發(fā)送緩沖寄存器SBUF里面的內(nèi)容
sbit P2_0=P2^0;//數(shù)據(jù)發(fā)送按鍵
/********************************************************************
延時函數(shù)
*********************************************************************/
void delay(uchar t)
{
uchar i,j;
for(i=0;i<t;i++)
{
for(j=13;j>0;j--);
{ ;
}
}
}
/********************************************************************
顯示函數(shù)
*********************************************************************/
void Led(uchar date) //顯示函數(shù)
{
/*****************數(shù)據(jù)轉(zhuǎn)換*****************************/
uint z,x,c,v;
z=date/1000; //求千位
x=date%1000/100; //求百位
c=date%100/10; //求十位
v=date%10; //求個位
P2=0XFF;
P0=seg7code[z];
P2=wei[0];
delay(80);
P2=0XFF;
P0=seg7code[x];
P2=wei[1];
delay(80);
P2=0XFF;
P0=seg7code[c];
P2=wei[2];
delay(80);
P2=0XFF;
P0=seg7code[v];
P2=wei[3];
delay(80);
P2=0XFF;
}
///////功能:串口初始化,波特率9600,方式1/////////
void Init_Com(void)
{
TMOD = 0x20;
PCON = 0x00;
SCON = 0x50;
TH1 = 0xFd;
TL1 = 0xFd;
TR1 = 1;
}
/********************************************************************
主函數(shù)
*********************************************************************/
void main()
{
Init_Com();//串口初始化
while(1)
{
dat=0x06; //要發(fā)送的數(shù)據(jù)
if(P2_0==0)//當按鍵按下時開始發(fā)送數(shù)據(jù)
{
while(!P2_0);//消隱
RI=0; //RI 清零。
SBUF = dat; //把數(shù)據(jù)發(fā)送出去
}
Led(dat); //顯示發(fā)送的數(shù)據(jù)
}
}
/********************************************************************
結(jié)束
*********************************************************************/
簡單的接收程序:
/********************************************************************
*********************************************************************/
#include<reg52.h> //庫文件
#define uchar unsigned char//宏定義無符號字符型
#define uint unsigned int //宏定義無符號整型
/********************************************************************
初始定義
*********************************************************************/
code uchar seg7code[10]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //顯示段碼 數(shù)碼管字跟
uchar wei[4]={0XEf,0XDf,0XBf,0X7f}; //位的控制端
unsigned char dat; //用于存儲單片機接收發(fā)送緩沖寄存器SBUF里面的內(nèi)容
/********************************************************************
延時函數(shù)
*********************************************************************/
void delay(uchar t)
{
uchar i,j;
for(i=0;i<t;i++)
{
for(j=13;j>0;j--);
{ ;
}
}
}
/********************************************************************
顯示函數(shù)
*********************************************************************/
void Led(uchar date) //顯示函數(shù)
{
/*****************數(shù)據(jù)轉(zhuǎn)換*****************************/
uint z,x,c,v;
z=date/1000; //求千位
x=date%1000/100; //求百位
c=date%100/10; //求十位
v=date%10; //求個位
P2=0XFF;
P0=seg7code[z];
P2=wei[0];
delay(80);
P2=0XFF;
P0=seg7code[x];
P2=wei[1];
delay(80);
P2=0XFF;
P0=seg7code[c];
P2=wei[2];
delay(80);
P2=0XFF;
P0=seg7code[v];
P2=wei[3];
delay(80);
P2=0XFF;
}
///////功能:串口初始化,波特率9600,方式1/////////
void Init_Com(void)
{
TMOD = 0x20;
PCON = 0x00;
SCON = 0x50;
TH1 = 0xFd;
TL1 = 0xFd;
TR1 = 1;
}
/********************************************************************
主函數(shù)
*********************************************************************/
void main()
{
Init_Com();//串口初始化
while(1)
{
if ( RI ) //掃描判斷是否接收到數(shù)據(jù),
{
dat = SBUF; //接收數(shù)據(jù)SBUF賦與dat
RI=0; //RI 清零。
SBUF = dat; //在原樣把數(shù)據(jù)發(fā)送回去
}
Led(dat); //顯示接收到的數(shù)據(jù)
}
}
/********************************************************************
結(jié)束
*********************************************************************/
【實物展示】