微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 我是新手,做了个遥控车,但是超出遥控范围后车子停不下

我是新手,做了个遥控车,但是超出遥控范围后车子停不下

时间:10-02 整理:3721RD 点击:
怎么样让第二个单片机收不到信号的时候让车子停下来?



————————————————————————————我是华丽的分割线——————————————————————————————————
程序:
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
#define key_port P0
#define dis_pors P1
#define dis_port P2
void delay(unsigned char delay_time)
{
   unsigned char i;
    while(delay_time--)
          for(i=0;i<125;i++);
}
void main (void)
{
        uchar key_in=0xff;
    SCON=0x50;   
    TMOD=0x20;           
    TH1=0xFD;
    TR1 = 1;
        EA = 1;
        ES = 1;   
        while(1)
        {               
                if (key_in != key_port)
                        {
                                delay(10);
                                if (key_in != key_port)
                                key_in = key_port;
                                if((P3&0x80)==0)  
                                {
                                SBUF=key_in;
                                }
                                else
                                {
                                SBUF=~key_in;
                                }
                        }
        }
}
void get_disp (void) interrupt 4 using 0
{
        if(RI)
        {
                    if((SBUF)==0x01)   dis_pors=0xf9;
        else   if((SBUF)==0x02)    dis_pors=0xf6;
        else   if((SBUF)==0x04)    dis_pors=0xf5;
        else   if((SBUF)==0x08)    dis_pors=0xfa;
        else   if((SBUF)==0x10)    dis_pors=0xef;
        else   if((SBUF)==0x20)    dis_pors=0xdf;
        else   if((SBUF)==0x40)    dis_pors=0xbf;
        else   if((SBUF)==0x80)    dis_pors=0x7f;
        else   dis_pors=0xff;
               if((SBUF)==0xfe)    dis_port=0xfe;
        else   if((SBUF)==0xfd)    dis_port=0xfd;
        else   if((SBUF)==0xfb)    dis_port=0xfb;
        else   if((SBUF)==0xf7)    dis_port=0xf7;
        else   if((SBUF)==0xef)    dis_port=0xef;
        else   if((SBUF)==0xdf)    dis_port=0xdf;
        else   if((SBUF)==0xbf)    dis_port=0xbf;          
        else   if((SBUF)==0x7f)    dis_port=0x7f;
        else    dis_port=0xff;
        RI=0;
        }
        else  TI=0;
}

写程序加点注释,别人才好看懂

这个还需要用两片吗?
驱动怎么不用三极管?继电器又大又重

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top