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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2928|回復: 7
打印 上一主題 下一主題
收起左側

如何實現51單片機雙機串行雙機通訊的兩個數據交替發送

[復制鏈接]
跳轉到指定樓層
樓主
ID:920083 發表于 2021-5-12 15:47 來自手機 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
求解如何改寫這段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;
}
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:889094 發表于 2021-5-12 16:38 | 只看該作者
發送函數沒毛病,可以發送,只是你裝的0xD0是什么波特率?然后就是沒有接收處理函數
回復

使用道具 舉報

板凳
ID:920083 發表于 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;
}
回復

使用道具 舉報

地板
ID:889094 發表于 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
回復

使用道具 舉報

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

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

使用道具 舉報

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

使用道具 舉報

7#
ID:920083 發表于 2021-5-13 11:00 來自手機 | 只看該作者
birdzhyli 發表于 2021-5-12 22:19
可以兩個單片機程序大體相同,只是在其中一個main中初始完串口后就發送一個字符或數字0;然后每個單片機串 ...

如果接收十六進制數的話   ,接收程序段需要咋改,我這個顯示不了十六進制。
回復

使用道具 舉報

8#
ID:883031 發表于 2021-5-13 17:04 | 只看該作者
林冊 發表于 2021-5-13 11:00
如果接收十六進制數的話   ,接收程序段需要咋改,我這個顯示不了十六進制。

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

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产国产精品久久久久 | 亚洲黄色在线 | 久久久久亚洲 | 羞羞色网站 | 久久高清精品 | 亚洲视频精品 | 久久99精品久久久97夜夜嗨 | 日日精品 | 亚洲人人舔人人 | 亚洲va欧美va天堂v国产综合 | 亚洲 一区 | 中文字幕av在线 | 国产91久久久久久久免费 | 视频1区| 91在线观看 | 日本精品一区二区 | 日本成人二区 | 国产日韩欧美激情 | 亚洲男人天堂 | 久久久女女女女999久久 | 国产一级在线观看 | 日韩三片 | 亚洲国产精品视频 | 国产日韩欧美在线播放 | 欧美日本一区二区 | 日韩精品 电影一区 亚洲 | 国产精品免费在线 | 国产精品99久久久久久久久久久久 | 国产精品一区二区不卡 | 精品一二三 | 99热免费在线 | 国产精品免费观看 | 2019中文字幕视频 | 久久精品福利视频 | 亚洲欧美成人影院 | 成人av播放 | 国产在线观看网站 | 久久久久久免费看 | 久久久精品网 | 久久久久久黄 | 九九热视频这里只有精品 |