欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

基于stc89c52藍牙小車代碼(一)

[復制鏈接]
跳轉到指定樓層
樓主
ID:233741 發表于 2017-9-17 23:52 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include<reg52.h>

sbit IN1=P1^0;  //單片機引腳的定義
sbit IN2=P1^1;
sbit IN3=P1^2;
sbit IN4=P1^3;

#define Left_moto_go      {IN1=0,IN2=1;}           //小車運動的正反轉電平設置
#define Left_moto_back    {IN1=1,IN2=0;}        
#define Left_moto_Stop    {IN1=0,IN2=0;}                       
#define Right_moto_go     {IN3=0,IN4=1;}       
#define Right_moto_back   {IN3=1,IN4=0;}       
#define Right_moto_Stop   {IN3=0,IN4=0;}         

unsigned  int  mode;  //用數字或字符來作為運行的指令
unsigned  int  flag;

   void delay(unsigned int k)
{   
     unsigned int x,y;
         for(x=0;x<k;x++)
           for(y=0;y<2000;y++);
}

  void  run(void)                                                 //與前面循跡小車項目類似定義小車運動的函數
{   
         Left_moto_go ;   
         Right_moto_go ;         
}
     void  backrun(void)
{

         Left_moto_back;   
         Right_moto_back;  
}

     void  leftrun(void)
{             
         Right_moto_go ;
     Left_moto_Stop ;  
}

   void  rightrun(void)
{
         
     Left_moto_go  ;  
         Right_moto_Stop   ;         
}

     void  stop(void)
{
         Right_moto_Stop   ;  
         Left_moto_Stop ;         
}

     void  time1init()   //        選擇使用定時器1;
{
     TMOD=0x20;                        //并且工作模式2,8位
         TH1=0xfd;                //產生9600波特率,與藍牙模塊同步 ,因為當時購買的藍牙模塊出廠設置就是9600波特率。
         TL1=0xfd;
         SM0=0;                   //設置串口的工作模式為
         SM1=1;                           //傳送8位數據
         REN=1;                           //串口通信允許接收
         TR1=1;                           //開定時器1
         EA=1;                           //允許總中斷
         ES=1;                           //允許串口中斷
}

     void init() interrupt 4   //4模式是串行口中斷:串行通信完成數據發送或接收
                                     //并且引起中斷
{
     RI=0;                  //接收中斷標志
         mode=SBUF;          //接收到的有手機app發送的緩沖區數據SBUF復制給mode
         flag=1;          //說明已經接收數據完畢
}

     int main()
{
     time1init();
         while(1)
         {
            if(flag)
                {
                   flag=0;
                   if(mode==1)        //現在大部分都是用字符,即字母作為串口通信的數據,這里我采用了數字作為通信,          
                   {                        //大大簡化了代碼
                     run();
                         delay(20);         //通過不斷調試,最后確定的延遲函數
                   }
                   if(mode==3)
                   {
                     backrun();
                         delay(20);
                   }
                   if(mode==4)
                   {
                     leftrun();
                         delay(10);
                   }
                   if(mode==5)
                   {
                     rightrun();
                         delay(10);
                   }
                   if(mode==2)
                   {
                     stop();
                         delay(40);
                   }

                }
         }
}


  后面還會陸續更新藍牙手機app軟件的制作方法,敬請留意~

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表