本實(shí)驗(yàn)主要是U1通過串口線TXD端將流水燈控制碼以方式1發(fā)送到單片機(jī)U2的RXD,U2再利用接受的控制碼控制流水燈點(diǎn)亮其P1口的8個(gè)發(fā)光二極管
單片機(jī)U1發(fā)送端
本文引用地址:http://butianyuan.cn/article/201611/320419.htm首先建立建立一個(gè)文件夾send,之后建立工作send,再添加一個(gè)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ā)送中斷標(biāo)志位沒有置"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; //定時(shí)器工作在方式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();
}
}
}
單片機(jī)U2接收端
首先建立建立一個(gè)文件夾receid,之后建立工作receive,再添加一個(gè)receid.c源文件,代碼如下
#include
unsigned char Receive(void)
{
unsigned char dat;
while(RI==0) //只要接受中斷標(biāo)志位RI沒有被置"1"就等待,直至接受完畢
;
RI=0;
dat=SBUF;
return dat;
}
void main(void)
{
TMOD=0x20; //定時(shí)器T1工作在方式2
SCON=0x50; //串口工作在方式1,允許接受(REN=1)
PCON=0x00; //主要設(shè)置波特率為9600b/s
TH1=0xfd;
TL1=0xfd;
TR1=1; //啟動(dòng)定時(shí)器T1
while(1)
{
P1=Receive();
}
}
評(píng)論