#include<reg52.h>
#define uchar unsigned char
sbit D1=P0^0; //电机
sbit D2=P0^1;
uchar a,flag;
void main()
{
TMOD=0x20;
TH1=0xfd;
TL1=0xfd;
TR1=1;
SM0=0;
SM1=1;
REN=1;
EA=1;
ES=1;
PCON=0x80;
while(1)
{
if(flag==1)
{
flag=0;
// SBUF=a;
while(!
ti);
TI=0;
}
switch(a)
{
case 0xfe:D1=0;D2=1;break;
}
}
}
void serial() interrupt 4
{
ES=0;
if(RI) /* RI==1 */
{
a=SBUF;
flag=1;
RI=0;
}
ES=1;
}
如上代码:红 {MOD}那个语句,没有注释掉的时候,串口助手可以看到,电机也会动,但好像是发什么数据都会动;当我把那句注释掉,发什么数据电机都不动了;另外,新手提问一下,如果我想实现发送0xfe就正转,0xfd就反转,应该程序怎么写,求大神~~
{
case 0xfe:D1=0;D2=1;break;
case 0xfd:D1=1;D2=0;break;
}
这样你试试是不是行
一周热门 更多>