本實驗主要是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();
}
}
評論