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

標題: 急求 基于51單片機的遠程控制智能小車的系統設計 藍牙控制 [打印本頁]

作者: 卡卡兮    時間: 2017-6-21 11:30
標題: 急求 基于51單片機的遠程控制智能小車的系統設計 藍牙控制
藍牙控制 單片機為AT89C52 直流電機

作者: likanghua    時間: 2017-12-17 13:39
#include<reg51.h>  #include<math.h>  #define uchar unsigned char  #define uint unsigned int  #define N 40 #define M 40 sbit en1=P1^0; /* L298的Enable A */  sbit s1=P1^1; /* L298的Input 1 */  sbit s2=P1^2; /* L298的Input 2 */  sbit s3=P1^3; /* L298的Input 3 */  sbit s4=P1^4; /* L298的Input 4 */ sbit en2=P1^5; /* L298的Enable B */  uchar t=0; /* 中斷計數器 */  uchar m1=0; /* 電機1速度值 */  uchar m2=0; /* 電機2速度值 */  uchar tmp1,tmp2; /* 電機當前速度值 */  uchar KAI=1; /* 電機控制函數 index-電機號(1,2); speed-電機速度(0-100) */   void Back(void) {         s1=0;         s2=1;         s3=1;         s4=0; } void GO(void)  {         s1=1;         s2=0;         s3=1;         s4=0; } void TL(void) {         s1=1;         s2=0;         s3=0;         s4=1; } void TR(void) {         s1=0;         s2=1;         s3=1;         s4=0; }  void Stop(void) {         s1=1;         s2=1;         s3=1;         s4=1;  }  void delay(uint j) /* 簡易延時函數 */  {          for(j;j>0;j--);  } void main()  {          uchar i=0,j=0,SHOU,ii=0,jj=0;          uchar flag=0;         SCON=0X50;         TMOD=0x22; /* 設定T0的工作模式為2 ,8位自動重置定時器,沒過幾個機器周期,計數器加一*/          TH0=0x9B; /* 裝入定時器的初值,計數100次溢出 */          TL0=0x9B; /*裝入時間常數*/         EA=1; /* 開中斷 */          ET0=1; /* 定時器0允許中斷 */          TR0=1; /* 啟動定時器0 */         PCON=0X00;         TH1=0XFd;         TL1=0XFd;         TR1=1;         m1=50;         m2=50;         while(1)         {                 if(RI==1)          {                  SHOU=SBUF;                 RI=0;                 if(SHOU>6) SHOU=0;          }          switch(SHOU)                 {                         case 0:                             Stop();break;                         case 1:                                 GO();break;                         case 2:                                 TR();delay(5000);SHOU=0; break;                         case 3:                                 TL();delay(5000);SHOU=0; break;                         case 4:                                 Back();break;                         case 5:                                 GO();delay(5000);SHOU=0; break;                         case 6:                                 Back();delay(5000);SHOU=0;                 }                                   }  }                                                                                                             void timer0() interrupt 1 /* T0中斷服務程序 */  {          if(t==0) /* 1個PWM周期完成后才會接受新數值 */          {                  tmp1=m1;                  tmp2=m2;          }          if(t<tmp1) en1=1; else en1=0; /* 產生電機1的PWM信號 */          if(t<tmp2) en2=1; else en2=0; /* 產生電機2的PWM信號 */          t++;          if(t>=100) t=0; /* 1個PWM信號由100次中斷產生 */  }




歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1