新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 51單片機 基于方式1的單工通信

51單片機 基于方式1的單工通信

作者: 時間:2016-11-23 來源:網(wǎng)絡(luò) 收藏
本實驗主要是U1通過串口線TXD端將流水燈控制碼以方式1發(fā)送到單片機U2的RXD,U2再利用接受的控制碼控制流水燈點亮其P1口的8個發(fā)光二極管

單片機U1發(fā)送端

本文引用地址:http://m.butianyuan.cn/article/201611/320419.htm

首先建立建立一個文件夾send,之后建立工作send,再添加一個send.c源文件,代碼如下

#include

unsigned char code Tab[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

void Send(unsigned char dat)

{

SBUF=dat;

while(TI==0) //若發(fā)送中斷標志位沒有置"1",就等待

{

;

}

TI=0;

}

void delay(void)

{

unsigned char m,n;

for(m=0;m<200;m++)

for(n=0;n<250;n++)

;

}

void main()

{

unsigned char i;

TMOD=0x20; //定時器工作在方式2

SCON=0x40; //串口工作方式1

PCON=0x00; //設(shè)置波特率為9600b/s

TH1=0xfd;

TL1=0xfd;

TR1=1;

while(1)

{

for(i=0;i<8;i++)

{

Send(Tab[i]);

delay();

}

}

}

單片機U2接收端

首先建立建立一個文件夾receid,之后建立工作receive,再添加一個receid.c源文件,代碼如下

#include

unsigned char Receive(void)

{

unsigned char dat;

while(RI==0) //只要接受中斷標志位RI沒有被置"1"就等待,直至接受完畢

;

RI=0;

dat=SBUF;

return dat;

}

void main(void)

{

TMOD=0x20; //定時器T1工作在方式2

SCON=0x50; //串口工作在方式1,允許接受(REN=1)

PCON=0x00; //主要設(shè)置波特率為9600b/s

TH1=0xfd;

TL1=0xfd;

TR1=1; //啟動定時器T1

while(1)

{

P1=Receive();

}

}



關(guān)鍵詞: 51單片機方式1單工通

評論


技術(shù)專區(qū)

關(guān)閉