標(biāo)題: 藍牙控制小車單片機源代碼 [打印本頁]

作者: 12106816    時間: 2017-7-30 09:16
標(biāo)題: 藍牙控制小車單片機源代碼
藍牙控制小車,通過手機上的藍牙助手,再搭建一輛車模,配上藍牙即可使用!共享資源

單片機源程序如下:
  1. //T0產(chǎn)生雙路PWM信號,L298N為直流電機調(diào)速,接L298N時相應(yīng)的管腳上最好接上10K的上拉電阻。
  2. /* 晶振采用12M,產(chǎn)生的PWM的頻率約為100Hz */
  3. #include<reg51.h>
  4. #include<math.h>
  5. #define uchar unsigned char
  6. #define uint unsigned int
  7. #define N 40
  8. #define M 40
  9. sbit en1=P1^0; /* L298的Enable A */
  10. sbit s1=P1^1; /* L298的Input 1 */
  11. sbit s2=P1^2; /* L298的Input 2 */
  12. sbit s3=P1^3; /* L298的Input 3 */
  13. sbit s4=P1^4; /* L298的Input 4 */
  14. sbit en2=P1^5; /* L298的Enable B */
  15. uchar t=0; /* 中斷計數(shù)器 */
  16. uchar m1=0; /* 電機1速度值 */
  17. uchar m2=0; /* 電機2速度值 */
  18. uchar tmp1,tmp2; /* 電機當(dāng)前速度值 */
  19. uchar KAI=1;
  20. /* 電機控制函數(shù) index-電機號(1,2); speed-電機速度(0-100) */

  21. void Back(void)
  22. {
  23.         s1=0;
  24.         s2=1;
  25.         s3=0;
  26.         s4=1;
  27. }
  28. void GO(void)

  29. {
  30.         s1=1;
  31.         s2=0;
  32.         s3=1;
  33.         s4=0;
  34. }
  35. void TL(void)
  36. {
  37.         s1=1;
  38.         s2=0;
  39.         s3=0;
  40.         s4=1;
  41. }
  42. void TR(void)
  43. {
  44.         s1=0;
  45.         s2=1;
  46.         s3=1;
  47.         s4=0;
  48. }

  49. void Stop(void)
  50. {
  51.         s1=1;
  52.         s2=1;
  53.         s3=1;
  54.         s4=1;

  55. }

  56. void delay(uint j) /* 簡易延時函數(shù) */
  57. {
  58.         for(j;j>0;j--);
  59. }
  60. void main()
  61. {
  62.         uchar i=0,j=0,SHOU,ii=0,jj=0;
  63.         uchar flag=0;
  64.         SCON=0X50;
  65.         TMOD=0x22; /* 設(shè)定T0的工作模式為2 ,8位自動重置定時器,沒過幾個機器周期,計數(shù)器加一*/
  66.         TH0=0x9B; /* 裝入定時器的初值,計數(shù)100次溢出 */
  67.         TL0=0x9B; /*裝入時間常數(shù)*/
  68.         EA=1; /* 開中斷 */
  69.         ET0=1; /* 定時器0允許中斷 */
  70.         TR0=1; /* 啟動定時器0 */
  71.         PCON=0X00;
  72.         TH1=0XFd;
  73.         TL1=0XFd;
  74.         TR1=1;
  75.         m1=50;
  76.         m2=50;
  77.         while(1)
  78.         {        
  79.         if(RI==1)
  80.          {
  81.                  SHOU=SBUF;
  82.                 RI=0;
  83.                 if(SHOU>6) SHOU=0;
  84.          }

  85.         switch(SHOU)
  86.                 {
  87.                         case 0:
  88.                             Stop();break;
  89.                         case 1:
  90.                                 GO();break;
  91.                         case 2:
  92.                                 TR();delay(5000);SHOU=0; break;
  93.                         case 3:
  94.                                 TL();delay(5000);SHOU=0; break;
  95.                         case 4:
  96.                                 Back();break;
  97.                         case 5:
  98.                                 GO();delay(5000);SHOU=0; break;
  99.                         case 6:
  100.                                 Back();delay(5000);SHOU=0;
  101.                 }
  102.                         
  103.         }
  104. }

  105. void timer0() interrupt 1 /* T0中斷服務(wù)程序 */
  106. {
  107.         if(t==0) /* 1個PWM周期完成后才會接受新數(shù)值 */
  108.         {
  109.                 tmp1=m1;
  110.                 tmp2=m2;
  111.         }
  112.         if(t<tmp1) en1=1; else en1=0; /* 產(chǎn)生電機1的PWM信號 */
  113.         if(t<tmp2) en2=1; else en2=0; /* 產(chǎn)生電機2的PWM信號 */
  114.         t++;
  115.         if(t>=100) t=0; /* 1個PWM信號由100次中斷產(chǎn)生 */
  116. }

  117. ……………………

  118. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:
藍牙小車.zip (26.23 KB, 下載次數(shù): 14)








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