|
帮我看看这个程序里是否有舵机和超声波代码,找个半天没找到定义的是哪个IO口,我用的是51版
/************************************************
51版WIFI小车基础下位机程序
************************************************/
#include <REG52.h> //通用89C52头文件
#define uchar unsigned char
#define uint unsigned int
int buffer[3]; //接收指令数组
int rec_flag=0; //标志位
/********电机控制端口***************/
/*sbit ENA = P1^0; //A使能端
sbit INPUT1 = P2^1; //A控制I/O口
sbit INPUT2 = P2^2; //A控制I/O口
sbit ENB = P1^3; //B使能端
sbit INPUT3 = P1^4; //B控制I/O口
sbit INPUT4 = P1^5; //B控制I/O口
*/
sbit Beep = P3^6; //蜂鸣器驱动端口
/************************************************
非精确延时函数 ,单位ms
z:变量范围0-65535.改变z的大小,可以改变延时的时间
************************************************/
void Delay_xMs(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=125;y>0;y--);
}
/************************************************
蜂鸣器发声
t:控制蜂鸣器发声次数,变量范围:1-255
************************************************/
void Alarm(uchar t)
{
uchar i;
for(i=0 ; i<t; i++)
{
Beep = 0;
Delay_xMs(100);
Beep = 1;
Delay_xMs(100);
}
}
/************************************************
串口初始化
启动UART串口接收中断,允许串口接收,启动T/C1产生波特率
振荡晶体为11.0592MHz
************************************************/
void UART_init (void){
EA = 1; //允许总中断(如不使用中断,可用//屏蔽)
ES = 1; //允许UART串口的中断
TMOD = 0x20; //定时器T/C1工作方式2
SCON = 0x50; //串口工作方式1,允许串口接收(SCON = 0x40 时禁止串口接收)
TH1 = 0xFD; //定时器初值高8位设置
TL1 = 0xFD; //定时器初值低8位设置
//PCON = 0x80; //波特率倍频(屏蔽本句波特率为9600)
TR1 = 1; //定时器启动
}
void UART_send_byte(uint byte)
{
ES = 0; //关串口中断
TI = 0; //清零串口发送完成中断请求标志
SBUF = byte;
while(TI ==0); //等待发送完成
TI = 1; //清零串口发送完成中断请求标志
ES = 1; //允许串口中断
}
void UART_send(uint *Buffer, uint Length)
{
while(Length != 0)
{
UART_send_byte(*Buffer);
Buffer++;
Length--;
}
}
void Communication_Decode(void)
{
if(buffer[0]==0x00)
{
switch(buffer[1])
{
case 0x01:P2=0xF6; return;
case 0x02:P2=0xF9; return;
case 0x03:P2=0xF5; return;
case 0x04:P2=0xFA; return;
case 0x00:P2=0x00; return;
default: return;
}
}
else
{
return;
}
}
void main(void)
{
Alarm(1);
UART_init(); //初始化串口
while(1)
{
}
}
void INT_UartRcv(void) interrupt 4
{
static int i;
if(RI==1)
{
RI=0;
if(rec_flag==0)
{
if(SBUF==0xff)
{
rec_flag=1;
i=0;
}
}
else
{
if(SBUF==0xff)
{
rec_flag=0;
if(i==3)
{
Communication_Decode();
}
i=0;
}
else
{
buffer[i]=SBUF;
i++;
}
}
}
else
{
TI = 0;
}
}
|
|