標(biāo)題:
單片機(jī)多機(jī)通信仿真及源程序
[打印本頁(yè)]
作者:
51黑ff
時(shí)間:
2016-9-26 12:52
標(biāo)題:
單片機(jī)多機(jī)通信仿真及源程序
0.png
(31.46 KB, 下載次數(shù): 35)
下載附件
2016-9-26 12:50 上傳
下面是單片機(jī)多機(jī)通信的主機(jī)程序:
#include<reg51.h>
#include<string.h>
#define _SUCC_ 0x0f//數(shù)據(jù)傳送成功
#define _ERR_ 0xf0//數(shù)據(jù)傳送失敗
unsigned char Table[9]={0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39};
//unsigned char Table[]="123456789";
unsigned char Buff[20]; //數(shù)據(jù)緩沖區(qū)
unsigned char temp=0xff;
sbit KEY1=P1^0;
sbit KEY2=P1^1;
//unsigned char addr;
//延時(shí)1ms函數(shù)
void delay_1ms(unsigned int t)
{
unsigned int x,y;
for(x=t;x>0;x--)
for(y=110;y>0;y--);
}
//緩沖區(qū)初始化
void Buff_init()
{
unsigned char i; //將Table里的數(shù)據(jù)放到緩沖區(qū)里
for(i=0;i<20;i++)
{
Buff[i]= Table[i];
delay_1ms(100);
}
}
//串口初始化函數(shù)
void serial_init()
{
TMOD=0x20; //定時(shí)器1工作于方式2
TH1=0xfd;
TL1=0xfd; //波特率為9600
PCON=0;
SCON=0xd0; //串口工作于方式3
TR1=1; //開啟定時(shí)器
TI=0;
RI=0;
}
//發(fā)送數(shù)據(jù)函數(shù)
void SEND_data(unsigned char *Buff)
{
unsigned char i;
unsigned char lenth;
unsigned char check;
lenth=strlen(Buff); //計(jì)算數(shù)據(jù)長(zhǎng)度
check=lenth;
TI=0; //發(fā)送數(shù)據(jù)長(zhǎng)度
TB8=0; //發(fā)送數(shù)據(jù)幀
SBUF=lenth;
while(!TI);
TI=0;
for(i=0;i<lenth;i++) //發(fā)送數(shù)據(jù)
{
check=check^Buff[i];
TB8=0;
SBUF=Buff[i];
while(!TI);
TI=0;
}
TB8=0; //發(fā)送校驗(yàn)字節(jié)
SBUF=check;
while(!TI);
TI=0;
}
//向指定從機(jī)地址發(fā)送數(shù)據(jù)
void ADDR_data(unsigned addr)
{
while(temp!=addr) //主機(jī)等待從機(jī)返回其地址作為應(yīng)答信號(hào)
{
TI=0; //發(fā)送從機(jī)地址
TB8=1; //發(fā)送地址幀
SBUF=addr;
while(!TI);
TI=0;
RI=0;
while(!RI);
temp=SBUF;
RI=0;
}
temp=_ERR_; //主機(jī)等待從機(jī)數(shù)據(jù)接收成功信號(hào)
while(temp!=_SUCC_)
{
SEND_data(Buff);
RI=0;
while(!RI);
temp=SBUF;
RI=0;
}
}
void main()
{
Buff_init();
serial_init();
while(1)
{
if(KEY1==0)
{
delay_1ms(5);
if(KEY1==0)
{
while(!KEY1);
ADDR_data(0x01);
}
}
if(KEY2==0)
{
delay_1ms(5);
if(KEY2==0)
{
while(!KEY2);
ADDR_data(0x02);
}
}
}
}
復(fù)制代碼
0.png
(70.16 KB, 下載次數(shù): 48)
下載附件
2016-9-26 12:50 上傳
多機(jī)通信的所有資料下載:
多機(jī)通信.rar
(69.63 KB, 下載次數(shù): 106)
2016-9-26 12:51 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
作者:
lakeleeson
時(shí)間:
2020-12-17 16:19
很好,學(xué)習(xí)了
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1