久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
51單片機多機通信電路圖和源程序及proteus仿真
[打印本頁]
作者:
未創新吧唧
時間:
2016-4-23 12:41
標題:
51單片機多機通信電路圖和源程序及proteus仿真
很有用的51單片機做的多機通信proteus仿真 和源代碼
0.png
(83.73 KB, 下載次數: 95)
下載附件
2016-4-24 21:12 上傳
全部資料(壓縮包)下載:
多機通信.rar
(69.63 KB, 下載次數: 125)
2016-4-23 12:41 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
下面是proteus仿真電路圖:
0.png
(38.7 KB, 下載次數: 109)
下載附件
2016-4-24 21:06 上傳
51單片機多機通信主機程序:
#include<reg51.h>
#include<string.h>
#define _SUCC_ 0x0f//數據傳送成功
#define _ERR_ 0xf0//數據傳送失敗
unsigned char Table[9]={0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39};
//unsigned char Table[]="123456789";
unsigned char Buff[20]; //數據緩沖區
unsigned char temp=0xff;
sbit KEY1=P1^0;
sbit KEY2=P1^1;
//unsigned char addr;
//延時1ms函數
void delay_1ms(unsigned int t)
{
unsigned int x,y;
for(x=t;x>0;x--)
for(y=110;y>0;y--);
}
//緩沖區初始化
void Buff_init()
{
unsigned char i; //將Table里的數據放到緩沖區里
for(i=0;i<20;i++)
{
Buff[i]= Table[i];
delay_1ms(100);
}
}
//串口初始化函數
void serial_init()
{
TMOD=0x20; //定時器1工作于方式2
TH1=0xfd;
TL1=0xfd; //波特率為9600
PCON=0;
SCON=0xd0; //串口工作于方式3
TR1=1; //開啟定時器
TI=0;
RI=0;
}
//發送數據函數
void SEND_data(unsigned char *Buff)
{
unsigned char i;
unsigned char lenth;
unsigned char check;
lenth=strlen(Buff); //計算數據長度
check=lenth;
TI=0; //發送數據長度
TB8=0; //發送數據幀
SBUF=lenth;
while(!TI);
TI=0;
for(i=0;i<lenth;i++) //發送數據
{
check=check^Buff[i];
TB8=0;
SBUF=Buff[i];
while(!TI);
TI=0;
}
TB8=0; //發送校驗字節
SBUF=check;
while(!TI);
TI=0;
}
//向指定從機地址發送數據
void ADDR_data(unsigned addr)
{
while(temp!=addr) //主機等待從機返回其地址作為應答信號
{
TI=0; //發送從機地址
TB8=1; //發送地址幀
SBUF=addr;
while(!TI);
TI=0;
RI=0;
while(!RI);
temp=SBUF;
RI=0;
}
temp=_ERR_; //主機等待從機數據接收成功信號
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);
}
}
}
}
復制代碼
51單片機多機通信從機程序:
#include<reg51.h>
#include<string.h>
#define addr 0x02//從機2的地址
#define _SUCC_ 0x0f//數據傳送成功
#define _ERR_ 0xf0//數據傳送失敗
unsigned char aa=0xff;//主機與從機之間通信標志
unsigned char Buff[20];//數據緩沖區
//串口初始化函數
void serial_init()
{
TMOD=0x20; //定時器1工作于方式2
TH1=0xfd;
TL1=0xfd; //波特率為9600
PCON=0;
SCON=0xd0; //串口工作于方式3
TR1=1; //開啟定時器
TI=0;
RI=0;
}
//接收數據函數
unsigned char RECE_data(unsigned char *Buff)
{
unsigned char i,temp;
unsigned char lenth;
unsigned char check;
RI=0; //接收數據長度
while(!RI);
if(RB8==1) //若接收到地址幀,則返回0xfe
return 0xfe;
lenth=SBUF;
RI=0;
check=lenth;
for(i=0;i<lenth;i++) //接收數據
{
while(!RI);
if(RB8==1) //若接收到地址幀,則返回0xfe
return 0xfe;
Buff[i]=SBUF;
check=check^(Buff[i]);
RI=0;
}
while(!RI); //接收校驗字節
if(RB8==1) //若接收到地址幀,則返回0xfe
return 0xfe;
temp=SBUF;
RI=0;
check=temp^check; //將從主機接收到的校驗碼與自己計算的校驗碼比對
if(check!=0) //校驗碼不一致,表明數據接收錯誤,向主機發送錯誤信號,函數返回0xff
{
TI=0;
TB8=0;
SBUF=_ERR_;
while(!TI);
TI=0;
return 0xff;
}
TI=0; //校驗碼一致,表明數據接收正確,向主機發送成功信號,函數返回0x00
TB8=0;
SBUF=_SUCC_;
while(!TI);
TI=0;
return 0;
}
void main()
{
serial_init();
while(1)
{
SM2=1; //接收地址幀
while(aa!=addr) //從機等待主機請求自己的地址
{
RI=0;
while(!RI);
aa=SBUF;
RI=0;
}
TI=0; //一旦被請求,從機返回自己地址作為應答,等待接收數據
TB8=0;
SBUF=addr;
while(!TI);
TI=0;
SM2=0; //接收數據幀
aa=0xff; //從機接收數據,并將數據保存到數據緩沖區
while(aa==0xff)
{
aa=RECE_data(Buff);
}
if(aa==0xfe)
continue;
P1=Buff[2]; //查看接收到的數據
}
}
復制代碼
作者:
lixiaofei
時間:
2017-4-19 10:51
下載看看,我編了好多次都失敗了
作者:
569079248
時間:
2018-3-25 21:58
跟我要弄的優點不一樣
作者:
呆呆巴
時間:
2019-5-22 23:45
真的能用!
作者:
龔俊
時間:
2020-3-24 16:47
請問從機如何向主機發送數據呢
作者:
龔俊
時間:
2020-3-24 16:47
請問從機如何向主機發送數據呢
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
免费观看av网站
|
91久久精品国产91久久性色tv
|
日韩成人影院
|
在线成人www免费观看视频
|
日韩看片
|
a中文在线视频
|
欧美激情精品久久久久久
|
在线视频a
|
另类视频区
|
久久夜视频
|
国产99久久精品一区二区300
|
亚洲精品一二区
|
亚洲天堂一区
|
四虎成人免费电影
|
女人精96xxx免费网站p
|
亚洲国产精品99久久久久久久久
|
国产清纯白嫩初高生视频在线观看
|
一区二区三区欧美
|
狠狠操狠狠操
|
欧美午夜精品久久久久免费视
|
久久这里只有精品首页
|
国产成人精品一区二区三
|
欧美精品一区二区三区在线播放
|
欧美日韩在线一区二区三区
|
国产精品欧美精品日韩精品
|
日韩免费高清视频
|
ww 255hh 在线观看
|
中文字幕 在线观看
|
欧美综合一区二区三区
|
日朝毛片
|
欧美日韩不卡在线
|
91佛爷在线观看
|
超碰在线免费公开
|
欧洲精品在线观看
|
国产观看
|
一级毛片视频
|
日日摸夜夜添夜夜添特色大片
|
亚洲一区二区三区在线
|
91精品国产综合久久久久久丝袜
|
国产成人精品免费视频大全最热
|
亚洲第一天堂无码专区
|