#include "CONFIG.H"
#define uchar unsigned char
sbit wifi_tx=P1^0; // WiFi数据接收端
sbit wifi_rx=P1^1; // WiFi数据发送端
uchar temp[1],cmd1[4],cmd2[4]; // WIFI数据存储空间(cmd1方向控制存储, cmd2模式切换控制)
/***************************************************************************/
/**************************** WIFI?? *********************************/
/***************************************************************************/
uchar cont;
int n=0;
void Timer1_Init()
{
TMOD&= 0xF0; //定时器工作模式;
TH1 = 0x00; //设置初值
TL1 = 0x00;
ET1 = 1; //允许定时器0中断
EA = 1; //总中断
TR1 = 1; //启动定时器0
}
void UART_Init()
{
SCON = 0x50; // REN=1允许串行接受状态,串口工作模式1
TMOD|= 0x20; // 定时器工作方式2
PCON|= 0x80; // 数据位8、停止位1。效验位无 (12M)
TH1 = 0xFA; // TH1 = 0xFD; 波特率 9600
TL1 = 0xFA;
TR1 = 1;
ES = 1; // 开串口中断
EA = 1; // 开总中断
}
void Start_UART(void) //延时启动串口通讯
{
if(n>=2000) //延时时间
{
n=0;
// LED =~LED; //时间到灯亮启动串口
TR0 =0; //关闭定时器
ET0 =0; //不允许定时器中断
UART_Init(); //串口初始化
}
}
void Timer0(void) interrupt 1 //定时器中断0
{
n=n++;
}
void UART() interrupt 4 // UART 启动
{
if(RI=1)
{
RI=0;
temp[cont]=SBUF; // 接收的数据存放在temp中
if(SBUF!=0xff)
{
if(temp[0]==0x01)
{
cmd1[cont]= temp[cont]; //
}
if(temp[0]==0x02)
{
cmd2[cont]= temp[cont]; //
}
cont++;
}
else
{
cont=0;
}
}
}
void wificon()
{
Timer1_Init();
cont=0;
if(cmd1[1]==0xfa)
{
go();
}
if(cmd1[1]==0xfc)
{
turn_left();
}
if(cmd1[1]==0xfd)
{
turn_right();
}
if(cmd1[1]==0xfb)
{
back();
}
if(cmd1[1]==0xfc)
{
stop();
}
if(cmd2[1]==0x0A) // cmd[0]==0x0A
{
xunji();
}
if(cmd2[1]==0x0B) // cmd[0]==0x0B
{
csbbizhang();
}
if(cmd2[1]==0x0C) // cmd[0]==0x0C
{
hwbizhang();
}
if(cmd2[1]==0x0D) // cmd[0]==0x0D
{
qianyin();
}
cmd2[1]=0xff;
}
这是我写的WIFI的部分程序,,有哪位大神帮着看看 |