欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

兩個51單片機串口通信程序問題

[復制鏈接]
跳轉到指定樓層
樓主
我再進行兩個51單片機串口通信的時候遇到了一些問題,我不知道是我的程序的問題還是仿真的問題,求大神可以解答一下!!!!!!拜托了!!!!

這是我的輸出數據的單片機的程序U1
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char

void send(uchar state)
{
SBUF=state;
while(T1==0);
TI=0;
}
void SCON_Init()
{
TMOD=0x20; //定時器T1工作于方式2(可自動重裝的8位定時器)
SCON=0x40; //串口工作方式1,不允許接收
PCON=0x00; //波特率不倍增
TH1=0xfd; //波特率為9600b/s
TL1=0xfd;
TR1=1; //啟動定時器T1(T1作波特率的發生器)
}
void main()
{
P1=0xff;
SCON_Init();
while(1)
{
  send(P1);
}
}

/***************分割線************************************************/

這是我接收數據的程序U2
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char

uchar state;
void receive()
{
while(RI==0);
  state=SBUF;
RI=0;
}
void SCON_Init()
{
TMOD=0x20; //設置定時器T1工作于方式2
SCON=0x50; //串口工作方式1,允許接收數據
PCON=0x00; //波特率不倍增
TH1=0xfd; //波特率為9600b/s
TL1=0xfd;
TR1=1; //啟動定時器T1
REN=1; //允許接收數據
}
void main()
{
P1=0xff;
SCON_Init();
while(1)
{
  receive();
  P1=state;
}
}


這個是我仿真出來的樣子


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:235200 發表于 2020-3-24 23:46 | 只看該作者
是程序問題
while(T1==0);   //TI打錯了  改為 while(!TI);
TI=0;
回復

使用道具 舉報

板凳
ID:286327 發表于 2020-3-26 13:08 | 只看該作者
程序發送函數哪兒void send(uchar state) { SBUF=state; while(T1==0); TI=0; }這里是TI哦
回復

使用道具 舉報

地板
ID:851716 發表于 2020-12-24 11:23 | 只看該作者
這兩個P1=oxff刪去之后也不影響仿真效果,這個P1=oxff賦初值有什么用
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表