2个蛋骗鸡加载同一个程序,本程序甲乙蛋骗鸡互发数字在数码管中显示,参考基于Proteus的单片机串口通信仿真 - 百度文库,兼顾回复单片机-串口通信-CSDN论坛 C51单片机串口实验-嵌入式-CSDN问答
#include "reg52.h"
unsigned char code DuLiAnJian[]={1,2,4,8,16,32,64,128,254,253,251,247,239,223,191,127};
unsigned char code smgduan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0,64}; //共阴0~F消隐减号
sbit k1=P1^7;
bit k = 0;
void CKF(unsigned char C)
{//向串口发送数据
SBUF=C;
while(!TI);
TI=0;
}
void CKS() interrupt 4
{//串口接收数据
if(RI)
{
RI=0;//if(aa>250)aa-=250;//串口一次能收到的数据从0-255
// if(SBUF>='0'&&SBUF<='9')P0=~smgduan[SBUF-'0'];else P0=0;
if(SBUF>=0&&SBUF<=15)P2=P0=~smgduan[SBUF];else P0=255;
}
}
void CKSZ()
{
SCON=0X50;//串口模式1允许接收
TMOD=0X20;//T1工作模式2
PCON=0X00;//波特率不倍增
TH1=TL1=0XFD;//波特率9600
TI=RI=0;
TR1=1;
IE=0X90;//允许串口中断
}
void main()
{
unsigned char wei=0,Xd=0,Sw=0;
unsigned int Ys=47474,Lx=0;
CKSZ();
while(1)
{
// if(!k1&&!++Xd)CKF('4');
if(!k1&&!++Xd){CKF(Sw);P2=P0=255;if(++Sw>9)Sw=0;while(!k1);}
//if(!k1&&!++Xd){CKF(Sw);P2=P0=255;if(!++Sw)Sw=251;while(!k1);}
if(!--Ys)
{
CKF(Sw);
if(++Sw>16)Sw=0;
Ys=47474;
}
}
}
自动发送信息,LED变化。图中MAX232芯片14,13引脚的标号应修改为CC1,CC2。
CD4052开关芯片选择串口接入。