📄 8-
字号:
#include "reg52.h"
sfr AUXR=0X8E;
sbit k1=P1^7;
sbit k2=P1^6;
sbit k3=P1^5;
sbit k4=P1^4;
sbit k5=P3^2;
sbit k6=P3^3;
sbit k7=P3^4;
sbit k8=P3^5;
#define uchar unsigned char
#define uint unsigned int
uchar Tdata[]={"a11111111c"};
uchar Rdata[]={"a11111111c"};
uchar a,b,c,d,e,f,g,h;
void UartInit(void);
void relay(void);
main()
{
uchar i;
P1|=0xf0;
P3|=0x3c;
a=1,b=1,c=1,d=1;
e=1,f=1,g=1,h=1;
UartInit();
EA=1;
while(1)
{
for(i=0;i<10;i++)
{
ES=0;
SBUF=Tdata[i];
while(!TI);
TI=0;
ES=1;
}
relay();
}
}
void relay(void)
{
if((Rdata[0]=='a')&(Rdata[9]=='c'))
{
if(Rdata[1]=='0')
a=0,k1=0;
if(Rdata[1]=='1')
a=1,k1=1;
if(Rdata[2]=='0')
b=0,k2=0;
if(Rdata[2]=='1')
b=1,k2=1;
if(Rdata[3]=='0')
c=0,k3=0;
if(Rdata[3]=='1')
c=1,k3=1;
if(Rdata[4]=='0')
d=0,k4=0;
if(Rdata[4]=='1')
d=1,k4=1;
if(Rdata[5]=='0')
e=0,k5=0;
if(Rdata[5]=='1')
e=1,k5=1;
if(Rdata[6]=='0')
f=0,k6=0;
if(Rdata[6]=='1')
f=1,k6=1;
if(Rdata[7]=='0')
g=0,k7=0;
if(Rdata[7]=='1')
g=1,k7=1;
if(Rdata[8]=='0')
h=0,k8=0;
if(Rdata[8]=='1')
h=1,k8=1;
}
Tdata[1]=d+'0';
Tdata[2]=c+'0';
Tdata[3]=b+'0';
Tdata[4]=a+'0';
Tdata[5]=e+'0';
Tdata[6]=f+'0';
Tdata[7]=g+'0';
Tdata[8]=h+'0';
}
void UartInit(void) //9600bps@11.0592MHz
{
PCON &= 0x7f; //波特率不倍速
SCON = 0x50; //8位数据,可变波特率
AUXR |= 0x40; //定时器1时钟为Fosc,即1T
AUXR &= 0xfe; //串口1选择定时器1为波特率发生器
TMOD &= 0x0f; //清除定时器1模式位
TMOD |= 0x20; //设定定时器1为8位自动重装方式
TL1 = 0xD9; //设定定时初值
TH1 = 0xD9; //设定定时器重装值
ET1 = 0; //禁止定时器1中断
TR1 = 1; //启动定时器1
}
com_interrupt(void) interrupt 4 using 3
{
uchar j;
if(RI)
{
RI=0;
Rdata[j]=SBUF;
j++;
if(j==10)
j=0;
}
if(TI)
TI=0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -