|
楼主 |
发表于 2014-4-15 21:59:43
|
显示全部楼层
本帖最后由 liuyunaizj 于 2014-4-15 22:00 编辑
liuviking 发表于 2014-4-14 23:28
这个要结合你的晶振的。
89C51系统板,晶振11.0592HM,串口调试时,只有19200,小车有反应。程序如下:
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit b=P0^7;
uchar a;
void init()
{
TMOD=0x20;//设定定时器1为方式2
PCON=0X00;
SCON=0X50;//串口方式1
TH1=0xFD;
TL1=0xFD;//装初值
TR1=1; //启动定时器1
REN=1; //使能接收
SM0=0;
SM1=1; //打开串口方式为1
EA=1; //打开总中断开关
ES=1; //打开串口中断开关
}
void main()
{
init();
while(1)
{
b=1;
a=SBUF;//将接收到的值赋值给a
switch(a)
{
case 1: P2=0x8a; break;//发送命令1 小车前进
case 2: P2=0x85; break;//发送命令2 小车后退
case 3: P2=0x86; break;//发送命令3 小车左转
case 4: P2=0x99; break;//发送命令4 小车右转
default: break;
}
}
}
void ser() interrupt 4
{
ES=0;
RI=0;//将接收中断标志位清零
a=SBUF;//将接收到的值赋值给a
ES=1;
}
串口调试
|
|