📄 main.c
字号:
//main.c
#include <reg51.h>
#include <comtest1.h>
sbit IIP=P2^5;
sbit IN=P2^4;
sbit FP=P2^7;
sbit FN=P2^6;
sbit ZP=P3^7;
sbit ZN=P3^6;
sbit UP=P1^1;
sbit DOWN=P1^0;
sbit LEFT=P1^3;
sbit RIGHT=P1^2;
sbit AUTO=P1^4;
sbit LED=P1^7;
void com_init(unsigned int baud_rate);
int ReadConvert(char tunnel);
extern unsigned char databuf[FIELD_MAXBUF];
//bit bCommAct;
#define POINTNMB 7
int delay(int iTime)
{
while(iTime--)
{
if(databuf[0]==POINTNMB) break;
}
return iTime;
}
void main(void){
int iInData;
unsigned char aa;
//for (i=0;i<FIELD_MAXBUF;i++)databuf[i]=i+0x30;
com_init(9600);
//bCommAct=0;
AUTO=1;
databuf[0]=0xff;
while(1){
/*可以处理非串口任务*/
while(databuf[0]!=POINTNMB)
{
LED=!LED;
if(delay(0xfff)!=0xffff) break;
P1|=0x0f;
P2|=0xf0;
P3|=0xc0;
if(delay(0x4fff)!=0xffff) break;
}
EA=0;
if(databuf[1]==0x80)
{
switch(databuf[2])
{
case 0x10:
IN=1;
IIP=0;
break;
case 0x11:
IIP=1;
IN=0;
break;
case 0x12:
ZN=1;
ZP=0;
break;
case 0x13:
ZP=1;
ZN=0;
break;
case 0x14:
FN=1;
FP=0;
break;
case 0x15:
FP=1;
FN=0;
break;
case 0x0e:
P1|=0x1f;
AUTO=0;
}//switch
}//databuf[0]=0x80
if(databuf[1]==0xc0)
{
AUTO=1;
aa=databuf[2];
if((aa&0x70)>0x50)
{
if(aa&0x80)
{
UP=1;
DOWN=0;
}
else
{
DOWN=1;
UP=0;
}
}// if((aa&0x70)>0x60)
if((aa&0xf)>5)
{
if(aa&8)
{
LEFT=1;
RIGHT=0;
}
else
{
RIGHT=1;
LEFT=0;
}
}//if((aa&0xf)>6)
}//databuf[1]=0xc0
databuf[0]=0xff;
EA=1;
}//while
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -