久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1366|回復: 0
打印 上一主題 下一主題
收起左側

大家看一下,為什么單片機小車不能用藍牙和按鍵驅動前進,后退?

[復制鏈接]
跳轉到指定樓層
樓主
ID:900384 發表于 2021-4-17 16:49 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
大家看一下,為什么小車不能用藍牙和按鍵驅動前進,后退

單片機源程序如下:
#include "REG51.h"
#include "oled.h"
#include "bmp.h"
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit S2 = P2^3;
sbit S3 = P2^2;
sbit S4 = P2^1;
sbit S5 = P2^0;
int num;
unsigned int time;
uint w,a,s,d,q,e;
sbit LIN1=P1^5;         
sbit LIN2=P1^4;
sbit LIN3=P1^3;         
sbit LIN4=P1^2;
void delay(uint z)
{
        uint x,y;
        for(x = z; x > 0; x--)
                for(y = 114; y > 0 ; y--);                 
}


void delay_nus(unsigned int i)  
{
  i=i/10;
  while(--i);
}   
void delay_nms(unsigned int n)
{
  n=n+1;
  while(--n)  
  delay_nus(900);         
  
}  
void UsartInit()
{
SCON=0X50;   
TMOD=0X20;   
PCON=0X80;   
TH1=0XF9;   
TL1=0XF9;
ES=1;      
EA=1;      
TR1=1;     
}


char i;
int msy;
void forward()
{
        uchar t;
                OLED_Init();                        
                                t=' ';
LIN1=1;LIN2=0;LIN3=0;LIN4=1;
OLED_ShowCHinese(20,0,0);
OLED_ShowCHinese(40,0,1);
   
}
void back()
{
uchar t;
                OLED_Init();                          
                                t=' ';
LIN1=0;LIN2=1;LIN3=1;LIN4=0;
OLED_ShowCHinese(20,0,2);
OLED_ShowCHinese(40,0,3);
}


void stop()
{


LIN1=1;LIN2=1;LIN3=1;LIN4=1;

}

void left()
{
uchar t;
                OLED_Init();                        
                                t=' ';
LIN1=1;LIN2=1;LIN3=0;LIN4=1;
OLED_ShowCHinese(20,0,4);
OLED_ShowCHinese(40,0,7);
}
void right()
{
uchar t;
                OLED_Init();                        
                                t=' ';
LIN1=1;LIN2=0;LIN3=1;LIN4=1;
OLED_ShowCHinese(20,0,6);
OLED_ShowCHinese(40,0,5);
}
void ControlCar(unsigned char ConType)  


{
  stop();
switch(ConType)
  {
   case 01:forward(); delay(500);break;
   case 02:left(); delay(500);break;
   case 03:right();delay(500);break;
   case 04:back();delay(500);break;
   case 05:stop();delay(500);break;
  }
}


void InitTimer0(void)
{
    TMOD = 0x01;
    TH0 = 0x0D8;
    TL0 = 0x0F0;
    EA = 1;
    ET0 = 1;
    TR0 = 1;
}


void sao()
{if(S2 == 0)
                {
                        delay(20);
                        if(S2 == 0)
                        {w=w+1;
                                q=time;

                                while(!S2);
                                
                        }        
                }


if(S3 == 0)
                {
                        delay(20);
                        if(S3 == 0)
                        {a=a+1;

                                while(!S3);
                                
                        }        
                }
if(S4 == 0)
                {
                        delay(20);
                        if(S4 == 0)
                        {
s=s+1;
e=time;               
                                while(!S4);
                                
                        }        
                }
if(S5 == 0)
                {
                        delay(20);
                        if(S5 == 0)
                        {
d=d+1;
                                while(!S5);
                        }        
                }
}

        void Timer0Interrupt(void) interrupt 1
{
    TH0 = 0x0D8;
    TL0 = 0x0F0;
    time++;
         sao();
        if(q!=0||e!=0)
        {switch(msy)
                        {
                 
                 case 0:stop();
                 case 1:if(time==q+3000){time=0;w=0;s=0;stop();msy=0;q=0;}break;
                 case 2:if( time==q+6000){time=0;w=0;s=0;stop();msy=0;q=0;}break;                        
                 case 3:if( time ==q+9000){time=0;w=0;s=0;stop();msy=0;q=0;}break;                        
                 case -1:if( time ==e+3000){time=0;w=0;s=0;stop();msy=0;e=0;}break;               
                 case -2:if( time ==e+6000){time=0;w=0;s=0;stop();msy=0;e=0;}break;
                 case -3:if( time ==e+9000){time=0;w=0;s=0;stop();msy=0;e=0;}break;                        
                   }
    }
}        
void UARTInit()  
{
    EA=1;
        ES=1;
        SM0=0;SM1=1;
        REN=1;
        TR1=1;
        TMOD|=0X20;
        TH1=0xfd;
        TL1=0xfd;
}






void Usart() interrupt 4
{
uchar receiveData;
uint a;
   delay_nms(50);
receiveData=SBUF;

ControlCar(5);
delay_nms(50);
   RI=0;
   a=SBUF;
   a=SBUF%16;
  ControlCar(a);
  delay_nms(50);
SBUF=receiveData;
while(!TI);   
TI=0;      
}
void         main()
{
         w=0;a=0;s=0;d=0;
        msy=0;
        time=0;
        InitTimer0();
         
                                while(1){
   delay_nms (10);
UARTInit();
  delay_nms (10);
msy=w-s;
  if(msy!=0)
               
        {
                if(msy>0)
               
                forward();
                else
                        back();
               }
        
                        if(a>0)
                {right();
                a--;
                delay(2000);
                stop();}
                 if(d>0)
                { left();
                d--;
                delay(2000);
        stop();}
        
}
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美三级三级三级爽爽爽 | 国产精品日韩欧美一区二区三区 | 日本三级全黄三级三级三级口周 | 中文字幕一区二区三区四区五区 | 日韩精品一区二区三区中文在线 | 国产精品久久777777 | 成人免费视频播放 | 国产成人精品免费视频大全最热 | 99精品国产一区二区青青牛奶 | 日本精品一区二区三区在线观看视频 | 日韩午夜在线观看 | 黄色毛片一级 | 国产一区二区在线免费观看 | 精品日韩一区二区 | 天堂在线1 | 一级在线观看 | 99re热精品视频国产免费 | 噜久寡妇噜噜久久寡妇 | 黄色一级片aaa | 免费一二区 | 久久国产精品视频 | 日本三级电影在线看 | 日日干干 | 亚洲精品中文字幕在线 | 国产国语精品 | 欧美精品在线播放 | 欧美黑人一级爽快片淫片高清 | 中文字幕一区二区三区日韩精品 | 高清国产午夜精品久久久久久 | 亚洲品质自拍视频 | 中文字幕一区二区三区在线观看 | 欧美一区二区黄 | 日韩视频免费 | 日韩成人专区 | 久草免费在线视频 | av在线一区二区三区 | 91精品国产91久久久久久吃药 | 成人在线免费电影 | 成年人在线观看视频 | 国产乱码久久久久久一区二区 | 久久精品国产精品青草 |