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

標題: 兩個51單片機串口通信程序問題 [打印本頁]

作者: hangsy    時間: 2020-3-24 16:10
標題: 兩個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;
}
}


這個是我仿真出來的樣子



作者: csmyldl    時間: 2020-3-24 23:46
是程序問題
while(T1==0);   //TI打錯了  改為 while(!TI);
TI=0;
作者: 零點xu    時間: 2020-3-26 13:08
程序發送函數哪兒void send(uchar state) { SBUF=state; while(T1==0); TI=0; }這里是TI哦
作者: Johnny-star    時間: 2020-12-24 11:23
這兩個P1=oxff刪去之后也不影響仿真效果,這個P1=oxff賦初值有什么用




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1