久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: 如何實現51單片機雙機串行雙機通訊的兩個數據交替發送 [打印本頁]

作者: 林冊    時間: 2021-5-12 15:47
標題: 如何實現51單片機雙機串行雙機通訊的兩個數據交替發送
求解如何改寫這段c語言的發送程序然后實現兩個數據交替發送。
#include<reg51.h>
#define uchar unsigned char
void init();
void send();

void init()
{
PCON &=0x7F;
TMOD=0x20;
TH1=0xD0;
TL1=0xD0;
TR1=1;
SCON=0x50;
EA=1;
ES=1;
ET1=0;
}
void main()
{
init();
send();

while(1);

}
void send()
{

SBUF=55;
while(!TI);
TI=0;
}
作者: birdzhyli    時間: 2021-5-12 16:38
發送函數沒毛病,可以發送,只是你裝的0xD0是什么波特率?然后就是沒有接收處理函數

作者: 林冊    時間: 2021-5-12 18:46
birdzhyli 發表于 2021-5-12 16:38
發送函數沒毛病,可以發送,只是你裝的0xD0是什么波特率?然后就是沒有接收處理函數

波特率是600   下面是接受程序
#include<reg51.h>
bit tt;
unsigned char rev;
unsigned char code dis[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
void init()
{
PCON&=0x7F;
TMOD=0x20;
TH1=0xD0;
TL1=0xD0;
TR1=1;
SCON=0x50;
EA=1;
ES=1;
ET1=0;
}
void delay(unsigned int c)
{
   unsigned char i,j;
   for(i=0;i<c;i++)         ;
    for(j=0;j<110;j++);
}
void display(unsigned char x)
{
unsigned char shi,ge;
shi=x/10;
ge=x%10;
P0=dis[shi];
P2=0xbf;
delay(5);
P0=0;
P2=0xff;

P0=dis[ge];
P2=0x7f;
delay(5);
P0=0;
P2=0xff;

}

void main()
{
init();
while(1)
{
display(rev);
delay(5);
}

}

void receive() interrupt 4  //串口接收函數
{
rev=SBUF;
ES=0;
RI=0;
}
作者: birdzhyli    時間: 2021-5-12 19:53
貌似沒什么問題,只是函數結構實在不怎么樣,看看手冊上面的例程,串口收發函數不是這個樣子的
void UsartInt() interrupt 4
{
unsigned char receiveData;
if(RI == 1)
{
  receiveData=SBUF; //出去接收到的數據
  RI = 0;           //清除接收中斷標志位
  while(busy);
  busy=1;
  SBUF=receiveData; //將接收到的數據放入到發送寄存器
}  
if(TI)
{
   busy=0;
   TI=0;
}
}
這是我常用的根據手冊弄的串口模板,發送之前檢查busy,收到之后先取數據再RI=0

作者: 林冊    時間: 2021-5-12 20:17
birdzhyli 發表于 2021-5-12 19:53
貌似沒什么問題,只是函數結構實在不怎么樣,看看手冊上面的例程,串口收發函數不是這個樣子的
void Usart ...

如果發送兩個數據  并且讓他們交替顯示的話 應該在么改?比如 55H  ccH

作者: birdzhyli    時間: 2021-5-12 22:19
可以兩個單片機程序大體相同,只是在其中一個main中初始完串口后就發送一個字符或數字0;然后每個單片機串口設置成收到一個字符后進行+1,判斷到9就變成0,然后再通過串口送出這樣就會在兩個單片機之間形成一個循環,每個單片機都可以顯示出來,當然發送過程要有個延時,不要太快,顯示函數要保持24HZ以上的刷新
作者: 林冊    時間: 2021-5-13 11:00
birdzhyli 發表于 2021-5-12 22:19
可以兩個單片機程序大體相同,只是在其中一個main中初始完串口后就發送一個字符或數字0;然后每個單片機串 ...

如果接收十六進制數的話   ,接收程序段需要咋改,我這個顯示不了十六進制。
作者: cn_zhx    時間: 2021-5-13 17:04
林冊 發表于 2021-5-13 11:00
如果接收十六進制數的話   ,接收程序段需要咋改,我這個顯示不了十六進制。

你的程序作了處理,肯定顯示不了A-F




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 成人动漫视频网站 | 天堂一区 | 成人在线免费观看 | 日韩在线播放一区 | 成人免费视频网站在线看 | 日韩欧美在线一区二区 | 精品欧美一区二区在线观看视频 | 九九久久精品视频 | 五月激情综合 | 一区二区三区视频在线观看 | 中文日韩在线 | 蜜桃特黄a∨片免费观看 | 亚洲精品乱码久久久久久按摩观 | 精品日韩在线 | 在线国产一区二区 | 亚洲人成网站777色婷婷 | 99精品国自产在线 | 欧美一区二区 | 91视频一88av | 麻豆国产一区二区三区四区 | 伊人电影院av | 久久一起草| 一区二区三区中文字幕 | 视频二区在线观看 | 久久夜夜| 一级黄色绿像片 | 国产成人精品一区二区三区视频 | 亚洲激情综合 | 正在播放国产精品 | 在线国产小视频 | 中文一区二区 | 亚洲伊人精品酒店 | 精品一区二区三区免费毛片 | 欧美成人精品一区二区三区 | 99精品在线观看 | 欧美日韩在线观看视频网站 | 日本 欧美 国产 | 亚洲国产黄色av | 色综合久久久 | 欧美在线视频二区 | 国产一级精品毛片 |