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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

藍牙,超聲波,怎樣集合

[復制鏈接]
跳轉到指定樓層
樓主
ID:149774 發表于 2017-2-14 21:37 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include <reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
//sfr  T2MOD=0xc9;
sbit in1  =P1^0;
sbit in2  =P1^1;
sbit in3  =P1^2;
sbit in4  =P1^3;
sbit in5  =P1^4;
sbit in6  =P1^5;
sbit in7  =P1^6;
sbit in8  =P1^7;

sbit ina  =P3^4;  //電機PWM-A
sbit ina2 =P3^5;
sbit inb  =P3^6;  //電機PWM-B
sbit inb2  =P3^7;

sbit bz_l =P2^0;  //避障左
sbit bz_r =P2^1;  //避障右

sbit moto_pwm =P3^2;//PWM輸出腳控制舵機

unsigned int  time=0;
unsigned long S=0;

sbit Trig = P0^2;
sbit Echo = P0^3;

uint tt = 0;//變量定義
uint num=0;//變量定義

uchar pwm_lefr=0;//定義 定時器自加1變量

uchar duojiguizhong=14;//舵機歸中1.5ms
uchar duojiguizhong1=14;//舵機歸中1.5ms
uchar tmp,w,sudu;
void Conut();
void  StartModule();
void init() ;
void delay1(uint z)//延時函數
{
        uint x,y;
        for(x=z;x>0;x--)
                for(y=120;y>1;y--);
}
void delay(uint z)
{
        uint x,y;
        for(x=0;x<z;x++)
        for(y=0;y<1000;y++);

}


void pwmmaic()//產生PWM
{
        if(pwm_lefr<=duojiguizhong)        
                moto_pwm=1;    //舵機PWM
                else
                moto_pwm=0;
                if(pwm_lefr>=200)
                pwm_lefr=0;               
}

void duoji_kz()//舵機控制
{

        duojiguizhong=9;      
        delay(100);  //轉頭時間
        StartModule();
        //Conut();     //測速運行程序就卡死了
       
        duojiguizhong=16;        
        delay(100);

       
        duojiguizhong=24;        
        delay(100);

       
        duojiguizhong=16;        
        delay(100);

}

void qianjin()
{
        in1=1;in2=0;in3=1;in4=0;in5=1;in6=0;in7=1;in8=0;

}   
void houtui()
{
        in1=0;in2=1;in3=0;in4=1;in5=0;in6=1;in7=0;in8=1;

}  
void zuozhuan()
{
        in1=0;in2=1;in3=0;in4=1;in5=1;in6=0;in7=1;in8=0;

}
void youzhuan()
{
        in1=1;in2=0;in3=1;in4=0;in5=0;in6=1;in7=0;in8=1;

}  
void tingzhi()
{
        in1=0;in2=0;in3=0;in4=0;in5=0;in6=0;in7=0;in8=0;

}
void bizhang()        //避障
{
    if(bz_l==1&&bz_r==1)
         qianjin();
        if(bz_l==0&&bz_r==1)
         zuozhuan();
         if(bz_l==1&&bz_r==0)
         youzhuan();
         if(bz_l==0&&bz_r==0)
         {        
                 tingzhi();
                delay(100);
                houtui();
                delay(500);
                zuozhuan();
                delay(200);
                qianjin();
         }
                                                                                                  
}


void  StartModule()                          //啟動模塊
{
          Trig=1;                                             //啟動一次模塊
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          _nop_();
          Trig=0;
}


void Conut()
{
     while(!Echo);//當RX為零時等待
     TR0=1;//開啟計數
    while(Echo);        //當RX為1計數并等待
   TR0=0;               
   time=TH0*256+TL0;
   TH0=0;
  TL0=0;
  S=(time*1.7)/100;  //算出來是CM
}


void init()   //串口初始化
{                                                                       //關中斷
    SCON =0x50; //串口模式1,允許接收                  
    TMOD =0x20;//定時器1為模式2 8-bit自動裝載方式用于產生波特率
    PCON=0x00;//波特率不倍增
        TH1=0xfd;//波特率9600  11.0592M
        TL1=0xfd;
TH0=0;
TL0=0;
        ET0=1; //        T0中斷允許
        TR0=1; //        啟動T0定時器
        TR1=1; //        啟動T1定時器
        EA=1;
        ES=1;       
        duojiguizhong=16;
        duojiguizhong1=16;
}


void ctrl() //接收處理函數
{
   switch(tmp)
   {         
     case 1:qianjin();break;                                                     
     case 2:houtui();break;                                                                             
     case 3:zuozhuan();break;
     case 4:youzhuan();break;  
     case 0:tingzhi(); break;
     case 7:duoji_kz();break;        //舵機         C
     case 8:bizhang();break;        //避障        D

   }
}


void tiaosu () //調速
{
        switch(sudu)
        {
                                case 5: w=40; break;         //A
                                case 6: w=75; break;         //B               
        }
}


void main()
{
   init();         
   while(1)
   {
        ctrl();
        tiaosu();  
   }
}


void time0() interrupt 1
{  
                                TH0=0xfd;
                                TL0=0xae;
         tt++;
        pwm_lefr++;
        pwmmaic();
        if(tt<w)
        {
                ina=1;
         ina2=1;
                inb=1;
         inb2=1;
        }
        else
        {
                ina=0;
         ina2=0;
                inb=0;
         inb2=0;
        }
        if(tt==100)
        {tt=0;
}
}


void ckzd() interrupt 4
{
        ES=0;
        RI=0;
        tmp=SBUF;
        sudu=SBUF;
        ES=1;
}
問下 Conut() 運行無效??是定時器問題嗎?

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

使用道具 舉報

沙發
ID:164717 發表于 2017-2-15 10:01 | 只看該作者
很給力!
回復

使用道具 舉報

板凳
ID:149774 發表于 2017-2-15 21:23 | 只看該作者
沒高手高速我或給個思路嗎
回復

使用道具 舉報

地板
ID:164859 發表于 2017-2-16 09:12 來自手機 | 只看該作者
藍牙是用來控制小車模式還是運動形式的,可以將藍牙的命令放在串口中斷中執行
回復

使用道具 舉報

5#
ID:123289 發表于 2017-2-16 18:22 | 只看該作者
1、首先藍牙、超聲波與單片機在硬件上是如何搭接的。(如:都接串口)
2、兩者的數據與單片機的如何協議的。(如:波特率、串行格式)
3、程序中當有分別處理二者的子程序。
4、系統中二者有數據中斷時,各子的處理子程序應分別響應(或先做標記,而后再處理)
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久久久久国产一区二区三区 | 亚洲视频免费在线观看 | 天天看天天摸天天操 | 一区二区三区四区在线视频 | 在线观看免费av网 | 亚洲激情一区二区三区 | caoporn国产精品免费公开 | 日韩一区二区三区在线 | 8x国产精品视频一区二区 | 国产性生活一级片 | 精品欧美乱码久久久久久 | www.国产91| 国产 欧美 日韩 一区 | 亚洲www啪成人一区二区 | 人人干人人超 | 欧美精品一区二区在线观看 | 久久精品成人热国产成 | 成在线人视频免费视频 | 色呦呦网站 | 性一交一乱一透一a级 | 亚洲欧美日韩激情 | 久久久九九 | www.午夜 | 精品久久香蕉国产线看观看亚洲 | 欧美国产精品久久久 | 国产免费高清 | 中文字幕在线视频精品 | 黑人巨大精品欧美一区二区免费 | 在线观看第一区 | 久久久99精品免费观看 | 久久国产精品99久久久久久丝袜 | 日韩视频在线播放 | 亚洲精品一区二区三区在线 | 久久成人18免费网站 | 亚洲高清在线视频 | 欧美精品一二三区 | 91porn在线观看 | 精品国产乱码久久久久久a丨 | 亚洲电影一区二区三区 | 91麻豆精品国产91久久久久久 | 色接久久 |