資源簡介
這是一個(gè)基于51單片機(jī)的RS485多機(jī)通訊,一臺主機(jī),三臺主機(jī),從機(jī)地址可通過拔碼開關(guān)選擇,如,主機(jī)要發(fā)送數(shù)據(jù)給從機(jī),則將主機(jī)選中要發(fā)送的從機(jī)地址。然后對應(yīng)的按鍵有對應(yīng)的值。即可以送,有參考價(jià)格

代碼片段和文件信息
#include
sbit?RE_DE=P1^7;
?unsigned?char?code?SEG7[10]={0x3f0x060x5b0x4f0x660x6d0x7d0x070x7f0x6f};
unsigned?char?key;
unsigned?char?addr;
/*--------------------------------------------------
功能:延時(shí)子函數(shù)
**************************************************/
void?delay(unsigned?char?m)
{
??unsigned?char?ij;
??for(i=0;i ??{
???for(j=0;j<121;j++)
???{;}
???}
??}
/*************************************************8
功能:發(fā)送子函數(shù)
說明:將按鍵按下對應(yīng)的值送到每個(gè)從機(jī)上
**************************************************/
void?send(unsigned?char?dd)
{
??
??RE_DE=1;
??TB8=0;
??SBUF=dd;
??while(!TI);
??TI=0;
??}
/************************************************
功能:按鍵中斷子程序
說明:判斷是否有按鍵按下
**************************************************/
unsigned?char?scan_key(void) ?//第一種
{
??unsigned?char?temp;
??temp=P3;
??return?temp;
??}
/**************************************************88
功能:對相應(yīng)的鍵值處理
****************************************************/
unsigned?char?key_return(void)
{
?unsigned?char?keysflag;
???if(P3!=0xff)
{
??delay(10);
???P3=0xff;
???if(P3!=0xff)flag=scan_key();
???}
??switch(flag)
?{
??case?0xfb:keys=77;break;
??case?0xf7:keys=88;break;
??case?0xef:keys=99;;break;
??case?0xdf:keys=199;break;
??default:break;
??}
return?keys;
}
/*********************************************8
功能:初始化串口
說明:對波特率及選擇串口方式
**********************************************/
void?Initial(void)
{
? TMOD?=0x20; ????//?定時(shí)器T1使用工作方式2
TH1?=?0xfd;
TL1?=?0xfd;
TR1?=?1; //?開始計(jì)時(shí)
PCON?=?0x00; //?SMOD?=?1
SCON?=?0xf8; //?工作方式,9位數(shù)據(jù)位,波特率9600kbit/s,允許接收?
ES???=?1;
EA???=?1;
}
?void?main()
?{
???Initial();
???RE_DE=1;?
???while(1)
???{
????key=key_return();
P1?=?0xff; //?通過P0口讀要訪問的從機(jī)地址?
addr?=P1&0x0f;
TB8=1;
SBUF?=?addr;
?while(!TI);
??TI?=?0;
send(key);
P2=SEG7[key%10];P0=0xfe;delay(2);
P2=SEG7[(key%100)/10];P0=0xfd;delay(2);
P2=SEG7[key/100];P0=0xfb;delay(2);
}
???}
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件????????221??2008-11-06?09:10??RS485多機(jī)通訊,地址可設(shè)定\master.plg
?????文件???????2140??2008-11-05?16:31??RS485多機(jī)通訊,地址可設(shè)定\master.c
?????文件?????????44??2008-11-05?16:31??RS485多機(jī)通訊,地址可設(shè)定\master.lnp
?????文件???????7364??2008-11-05?16:31??RS485多機(jī)通訊,地址可設(shè)定\master.M51
?????文件????????775??2008-11-05?16:31??RS485多機(jī)通訊,地址可設(shè)定\master.hex
?????文件???????4784??2008-11-05?16:31??RS485多機(jī)通訊,地址可設(shè)定\master.LST
?????文件???????5332??2008-11-05?16:31??RS485多機(jī)通訊,地址可設(shè)定\master.OBJ
?????文件???????4729??2008-11-05?16:31??RS485多機(jī)通訊,地址可設(shè)定\master
?????文件???????2957??2008-11-05?16:56??RS485多機(jī)通訊,地址可設(shè)定\sing.plg
?????文件???????1741??2008-11-05?16:55??RS485多機(jī)通訊,地址可設(shè)定\sing.c
?????文件?????????40??2008-11-05?16:55??RS485多機(jī)通訊,地址可設(shè)定\sing.lnp
?????文件???????6347??2008-11-05?16:55??RS485多機(jī)通訊,地址可設(shè)定\sing.M51
?????文件????????694??2008-11-05?16:55??RS485多機(jī)通訊,地址可設(shè)定\sing.hex
?????文件???????4829??2008-11-05?16:55??RS485多機(jī)通訊,地址可設(shè)定\sing.LST
?????文件???????4410??2008-11-05?16:55??RS485多機(jī)通訊,地址可設(shè)定\sing.OBJ
?????文件???????4015??2008-11-05?16:55??RS485多機(jī)通訊,地址可設(shè)定\sing
????.......?????????0??2008-11-05?16:32??RS485多機(jī)通訊,地址可設(shè)定\sing_Uv2.Bak
?????文件???????2151??2008-11-05?16:56??RS485多機(jī)通訊,地址可設(shè)定\sing.Uv2
?????文件????????989??2008-11-05?16:56??RS485多機(jī)通訊,地址可設(shè)定\sing.Opt
????.......?????????0??2008-11-05?15:43??RS485多機(jī)通訊,地址可設(shè)定\master_Uv2.Bak
?????文件???????2146??2008-11-05?16:56??RS485多機(jī)通訊,地址可設(shè)定\master.Uv2
????.......???????314??2008-11-05?15:43??RS485多機(jī)通訊,地址可設(shè)定\master_Opt.Bak
?????文件????????979??2008-11-05?16:56??RS485多機(jī)通訊,地址可設(shè)定\master.Opt
?????目錄??????????0??2008-11-05?15:40??RS485多機(jī)通訊,地址可設(shè)定
-----------?---------??----------?-----??----
????????????????57001????????????????????24
評論
共有 條評論