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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

51單片機藍牙小車程序

[復制鏈接]
跳轉到指定樓層
樓主


小車有兩種模式可通過藍牙軟件切換
單片機源程序如下:
  1. /**************
  2. 作者 : 卑微小趙
  3. ************/
  4. #include <reg52.h>
  5. #define uc unsigned char
  6. #define ui unsigned int
  7.        
  8. #define  LCDIO     P2       


  9. sbit LCD1602_RS=P1^2;   
  10. sbit LCD1602_RW=P1^1;   
  11. sbit LCD1602_EN=P1^0;

  12. sbit q1=P0^3;
  13. sbit q1_1=P1^3;

  14. sbit q2=P1^5;
  15. sbit q2_2=P1^4;

  16. sbit h1=P0^1;
  17. sbit h1_1=P0^2;

  18. sbit h2=P1^6;
  19. sbit h2_2=P1^7;

  20. sbit n1=P0^0;
  21. sbit n2=P0^1;
  22. sbit n3=P0^2;
  23. sbit n4=P0^7;

  24. sbit yn1=P0^6;
  25. sbit yn2=P0^7;

  26. sbit zn1=P0^4;
  27. sbit zn2=P0^5;

  28. sbit fm=P0^0;

  29. sbit hw1=P3^7;
  30. sbit hw2=P3^6;
  31. sbit hw3=P3^5;
  32. sbit hw4=P3^4;

  33. #define qian  q1=1; q1_1=0; q2=1; q2_2=0; h1=1; h1_1=0; h2=1; h2_2=0;
  34. #define hou   q1=0; q1_1=1; q2=0; q2_2=1; h1=0; h1_1=1; h2=0; h2_2=1;
  35. #define zuo   q1=0; q1_1=1; q2=1; q2_2=0; h1=0; h1_1=1; h2=1; h2_2=0;
  36. #define you   q1=1; q1_1=0; q2=0; q2_2=1; h1=1; h1_1=0; h2=0; h2_2=1;
  37. #define tin   h1=1; h1_1=1; h2=1; h2_2=1; q1=1; q1_1=1; q2=1; q2_2=1;


  38. #define n1k yn1=1; yn2=1;
  39. #define n1g yn1=0; yn2=0;
  40. #define n2k zn1=1; zn2=1;
  41. #define n2g zn1=0; zn2=0;

  42. uc receiveData;
  43. uc jj=0,ll=0;
  44. uc kk=0,mm=0;
  45. uc b=0;
  46. bit h=0;

  47. uc bb=0;

  48. void delay(ui shi)
  49. {
  50.         while(shi--);
  51. }

  52. void LCD_Busy(void) //1602判忙
  53. {

  54.         uc i;
  55.         LCDIO=0xff;
  56.         LCD1602_RS=0;   
  57.         LCD1602_RW=1;
  58.         for(i=0;i<200;i++)
  59.         {
  60.                 LCD1602_EN=0;
  61.                 LCD1602_EN=1;
  62.                 if(!(LCDIO&0x80))break;
  63.         }
  64.         LCD1602_EN=0;
  65.         LCD1602_RW=0;
  66. }

  67. void LCD_en_command(uc command)
  68. {
  69.         LCD_Busy();
  70.         LCD1602_RS=0;   
  71.         LCDIO=command;
  72.         LCD1602_EN=1;
  73.         LCD1602_EN=0;
  74. }

  75. void LCD_en_dat(uc dat)
  76. {
  77.         LCD_Busy();
  78.         LCD1602_RS=1;
  79.         LCDIO=dat;
  80.         LCD1602_EN=1;
  81.         LCD1602_EN=0;
  82. }


  83. void LCD_set_xy( uc x, uc y )
  84. {
  85.         uc address;
  86.         x&=0x0f;
  87.         if (y == 0)
  88.          address = 0x80 + x;
  89.         else
  90.          address = 0xC0 + x;
  91.         LCD_en_command(address);
  92. }


  93. void LCD_write_char( uc x,uc y,uc dat)
  94. {
  95.         LCD_set_xy( x, y );
  96.         LCD_en_dat(dat);
  97. }

  98. void LCD_write_string(uc X,uc Y,uc *s)
  99. {
  100.         LCD_set_xy( X, Y );
  101.         while (*s)   
  102.         {
  103.             LCD_en_dat(*s);  
  104.             s ++;         
  105.         }
  106. }


  107. void LCD_init(void)//1602初始化
  108. {
  109.         LCD1602_EN=0;         
  110.         LCD_en_command(0x38);  
  111.         LCD_en_command(0x0C);   
  112.         LCD_en_command(0x01);   
  113. }

  114. void pwm1()
  115. {
  116.         you;
  117.         n1k;
  118.         delay(8000);
  119.         n1g;
  120.         delay(5000);
  121. }

  122. void pwm2()
  123. {
  124.         zuo;
  125.         n2k;
  126.         delay(8000);
  127.         n2g;
  128.         delay(5000);
  129. }




  130. void pwm3()
  131. {
  132.         qian;
  133.         n1k; n2k;
  134.         delay(500);
  135.         n1g; n2g;
  136.         delay(3000);
  137. }

  138. void pwm4()
  139. {
  140.         hou;
  141.         n1k; n2k;
  142.         delay(500);
  143.         n1g; n2g;
  144.         delay(3000);
  145. }

  146. void pwm5()
  147. {
  148.         you;
  149.         n1k;
  150.         delay(5000);
  151.         n1g;
  152.         delay(4000);
  153. }

  154. void pwm6()
  155. {
  156.         zuo;
  157.         n2k;
  158.         delay(5000);
  159.         n2g;
  160.         delay(4000);
  161. }


  162. void biz()
  163. {
  164.         pwm3();
  165.         if(hw1==0||hw4==0){pwm5();}
  166.         if(hw2==0||hw3==0){pwm6();}
  167.         if(hw1==0&&hw3==0){pwm3();}
  168.         if(hw2==0&&hw4==4){pwm4();}
  169. }

  170. void kongzhi()
  171. {
  172.         switch(bb)
  173.         {
  174.                 case 0:if(kk==1){pwm2();} else{n1k;n2k; qian;}  if(mm==1){pwm1();} else{n1k;n2k; qian;} if((jj==0&&kk==0)||(jj==0&&mm==0)){bb=4;} break;
  175.                 case 1:if(kk==1){pwm1();} else{n1k;n2k; hou;}   if(mm==1){pwm2();}else{n1k;n2k; hou;}  if((ll==0&&kk==0)||(ll==0&&mm==0)){bb=4;} break;
  176.                 case 2:if(jj==1){n1k; n2k;qian;}else{n1k; n2k; zuo;} if(ll==1){n1k; n2k;hou;}else{n1k; n2k; zuo;} if(kk==0) {bb=4;} break;
  177.                 case 3:if(jj==1){n1k; n2k;qian;}else{n1k; n2k; you;} if(ll==1){n1k; n2k;hou;}else{n1k; n2k; you;} if(mm==0) {bb=4;} break;
  178.                 case 4: tin; break;
  179.         }
  180.                        
  181. }
  182. void moshi()
  183. {
  184.         if(h==0){kongzhi();}
  185.         if(h==1){biz();}
  186. }

  187. void tishi()
  188. {
  189.         if(b==1){fm=0; delay(4000); fm=1;delay(40000);fm=0; delay(4000); fm=1;delay(40000); b=0;}
  190. }

  191. void ckinit()
  192. {SCON=0x50;//設定串口工作方式0101 0000

  193. PCON=0x00;

  194. TMOD=0x20;

  195. EA=1;

  196. ES=1;

  197. TL1=0xfd;//波特率9600

  198. TH1=0xfd;

  199. TR1=1;

  200. }


  201. void init()
  202. {
  203.         ckinit();
  204.         LCD_init();
  205.         LCD_write_string(0,0,"inti");
  206.         delay(50000);
  207.         qian;
  208.         LCD_write_string(0,0,"inti.");
  209.         delay(50000);
  210.         LCD_write_string(0,0,"inti..");
  211.         delay(50000);
  212.         LCD_write_string(0,0,"inti...");
  213.         delay(50000);
  214.         LCD_write_string(0,0,"inti....");
  215.         delay(50000);
  216.         LCD_write_string(0,0,"inti.....");
  217.         delay(50000);
  218.         tin;
  219.         LCD_write_string(0,0,"ok         ");
  220.        
  221.         fm=0; delay(30000); fm=1; delay(30000);
  222.         LCD_write_string(0,0,"         ");
  223.         fm=0; delay(30000);  LCD_write_string(0,0,"ok         ");  fm=1; delay(30000);fm=0;LCD_write_string(0,0,"         "); delay(30000);LCD_write_string(0,0,"ok         ");  fm=1; LCD_write_string(0,0,"remote control ");
  224. }

  225. void main()
  226. {
  227.         init();
  228.         while(1)
  229. ……………………

  230. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

上程序
111.7z (817.61 KB, 下載次數: 48)



評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發
ID:840461 發表于 2020-11-8 09:59 | 只看該作者
thank you for sharing
回復

使用道具 舉報

板凳
ID:670608 發表于 2020-11-8 17:43 | 只看該作者

希望能一起學習
回復

使用道具 舉報

地板
ID:841696 發表于 2020-11-11 13:50 | 只看該作者

thank you for sharing
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日本人和亚洲人zjzjhd | 亚洲www| 日韩欧美在线免费 | 99久久精品国产毛片 | 欧美精品成人一区二区三区四区 | 91色综合| 国产精品无码专区在线观看 | 亚洲一区二区三区欧美 | 久久久久久美女 | 久久久999成人 | 国产精品一区二区在线 | 波多野吉衣在线播放 | 日韩手机在线看片 | 精品99久久久久久 | 日本成人中文字幕 | 狠狠做六月爱婷婷综合aⅴ 国产精品视频网 | 国产成人精品在线 | 日韩一级二级片 | 国产精品国产三级国产aⅴ浪潮 | 精品福利一区 | 日韩一区二区在线免费观看 | 国产成人精品一区二区三区网站观看 | 在线精品亚洲欧美日韩国产 | 中文字幕视频在线观看 | 亚洲经典一区 | 免费在线日韩 | 放个毛片看看 | 最新国产精品精品视频 | 久久成人国产精品 | 国产在线不卡 | 成人亚洲一区 | 99精品视频在线观看 | 午夜日韩| 国产免费拔擦拔擦8x高清 | 亚洲另类自拍 | 日韩一区二区三区在线观看视频 | 久草免费在线视频 | 色婷婷一区 | 最新中文字幕在线 | 国产精品视频网 | 日本欧美国产在线观看 |