|
本帖最后由 lm959680 于 2014-3-19 00:01 编辑
自己搞的最小系统 STC12C5A60S2 加 L298
#include <reg51.h>
sfr AUXR = 0x8E;
#define MOTOR_Forward IN1=1;IN2=0;IN3=1;IN4=0; //前进
#define MOTOR_Back IN1=0;IN2=1;IN3=0;IN4=1; //后退
#define MOTOR_Left IN1=1;IN2=0;IN3=0;IN4=1; //左
#define MOTOR_Right IN1=0;IN2=1;IN3=1;IN4=0; //右
#define MOTOR_STOP IN1=0;IN2=0;IN3=0;IN4=0; //停止
sbit IN1=P1^0;
sbit IN2=P1^1;
sbit ENA=P1^2;
sbit IN3=P1^3;
sbit IN4=P1^4;
sbit ENB=P1^5;
void Motor_Init(void)
{
ENA=1;
ENB=1;
MOTOR_STOP;
}
void UART_init(void)
{
TMOD = 0x20;
SCON = 0x50;
TH1 = 0x70; //9600 22.1184 1t
TL1 = TH1;
PCON = 0x80;
EA = 1;
ES = 1;
TR1 = 1;
}
void Communication_Decode(unsigned char buffer)
{
switch(buffer) {
case 0x01:
MOTOR_Forward;
return;
case 0x02:
MOTOR_Back;
return;
case 0x03:
MOTOR_Left;
return;
case 0x04:
MOTOR_Right;
return;
case 0x00:
MOTOR_STOP;
return;
default:
return;
}
}
void main(void)
{
AUXR = AUXR|0x40; // T1, 1T Mode
Motor_Init();
UART_init();
while(1);
}
void UARTInterrupt(void) interrupt 4
{ unsigned char UART_data; //定义串口接收数据变量
if(RI)
{
UART_data = SBUF; //接收数据 SBUF 为单片机的接收发送缓冲寄存器
RI = 0; //令接收中断标志位为0(软件清零)
SBUF = UART_data;
Communication_Decode(SBUF);
}
else
TI = 0;
}
手机端 是1.04 版本 发出的数据 收到的数据 显示数据正常 但无法控制 pc用1.28的蓝牙模式 正常 并且是控制 wifi模式死活就是没反应 除了返回的数据正确外 控制就是没反应 真的无语 115200 更别提了 直接00
到低是什么数据?!!!!
|
|