單片機1P1口的狀態,通過串行通信方式傳遞到單片機2P2口輸出
/*******************************************
發送信息
***************************************/
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
void send(uchar state)
{
SBUF=state;
while(TI==0);
TI=0;
}
void SCON_init()
{
SCON=0X40;//選擇串口通信方式1
TMOD=0x20;//設置計數器T1為計數方式2(自動重裝初值)
PCON=0x00;//設置波特率倍增
TH1=0xFD;
TL1=0xFD;
TI=0;
TR1=1;
}
void main()
{
SCON_init();
while(1)
send(P1);
/*******************************************
接收機接收信息
***************************************/
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar state;
void receive()
{
while(RI==0);
state=SBUF;
RI=0;
}
void SCON_init()//接受設置函數
{
SCON=0X50;//選擇串口通信方式1,允許接受
TMOD=0x20;//設置計數器T1為計數方式2(自動重裝初值)
PCON=0x00;//設置波特率倍增
TH1=0xFD; //計數器工作與方式2,高位存放初值,計數溢出后自動裝入TL0
TL1=0xFD; //計數單元,從FD開始計數
RI=0;
TR1=1;
}
void main()
{
SCON_init();
while(1) //等待接受
{
receive();
P2=state;
}
}