?? 串口通信主機(jī)程序.txt
字號(hào):
#include <reg51.h>
#define uchar unsigned char
#define _rdy_ 0x05
#define _ok_ 0x04
#define _busy_ 0x03
#define _succ_ 0x02
#define _ecc_ 0x01
uchar data ss[]={4,0,0,0};
sbit k1=P3^3;
void intial()
{TMOD=0x20;
TH1=250;
TL1=250;
TR1=1;
PCON=0x80;
SCON=0x50;
}
void delay()
{uchar m,n;
for(m=20;m>0;m--)
for(n=250;n>0;n--);
}
bit send_ena()
{ACC=_rdy_;
SBUF=ACC;
while(!TI);
TI=0;
while(!RI);
RI=0;
ACC=SBUF;
if(ACC==_ok_)return 1;
else return 0;
}
bit keyscan()
{bit i=0;
if(k1==0)
{delay();
if(k1==0) i=1;
else i=0;
}
return i;
}
void send(uchar x)
{ACC=x;
SBUF=ACC;
while(!TI);
TI=0;
}
void send_full()
{uchar i,j;
j=ss[0];
for(i=0;i<j;i++)
{send(ss[i]);
}
}
uchar recv()
{uchar k;
while(!RI);
RI=0;
ACC=SBUF;
k=ACC;
return k;
}
void main(void)
{uchar i,t;
bit temp,keyword;
intial();
while(1)
{ss[1]=P1;
ss[2]=P2;
for(i=0;i<3;i++)
{t=ss[i];
ss[3]=ss[3]|t;
}
keyword=keyscan();
if(keyword!=0)
{temp=send_ena();
if(temp==1)
{send_full();
t=recv();
while(t!=_succ_)
{send_full();
t=recv();
}
}
}
}
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -