标题: 手机蓝牙控制的单片机心形灯制作 [打印本页]

作者: 51黑sun    时间: 2016-7-5 02:59
标题: 手机蓝牙控制的单片机心形灯制作
视频地址:http://v.qq.com/page/f/9/9/f0306rbk299.html




蓝牙是淘宝买的 HC-05,原理挺简单的,就是51单片机的串口通信,还有灵活使用hex和ASCII码

单片机程序:
  1. #include
  2. #define uint unsigned int
  3. #define uchar unsigned char

  4. void delay1ms(uint n);
  5. uint table1_0[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
  6. uint table1_1[]={0x41,0x22,0x14,0x08,0x14,0x22,0x41};
  7. uint table0_0[]={0x01,0x02,0x04,0x08};
  8. uint table0_1[]={0x05,0x0a,0x05,0x0a};
  9. uint n=500;
  10. uchar temp=0x00;
  11. void main()
  12. {
  13.         unsigned char i=0,j=0;
  14.         P1=0xff;
  15.         P0=0xff;
  16.         P2=0xff;
  17.         SCON=0x50;
  18.         TMOD=0x20;
  19.   PCON = 0x80;
  20.         TH1=0xfa;
  21.         TL1=0xfa;
  22.         ES=1;
  23.         EA=1;
  24.         TR1=1;
  25.         RI=0;
  26.         
  27.                 /*********************开灯**************************/
  28.         /*
  29.         while(1)
  30.         {
  31.                 P0=0x0f;
  32.                 P1=0x00;
  33.         }
  34.         */
  35.         
  36.         /*********************关灯**************************/
  37.         /*
  38.         while(1)
  39.         {
  40.                 P0=0x00;
  41.                 P1=0xff;
  42.         }
  43.         */
  44.         
  45.                 /***************全闪************************/
  46.         /*
  47.         while(1)
  48.         {
  49.                 P0=0x0f;
  50.                 P1=0x00;
  51.                 delay1ms(100);
  52.                 P0=0x00;
  53.                 P1=0xff;
  54.                 delay1ms(100);
  55.         }
  56.         */
  57.         
  58.         /*********************正流水灯*****************************/
  59.         /*
  60.         while(1)
  61.         {
  62.                 for(i=0;i<4;i++)
  63.                 {
  64.                         P0=table0_0[i];
  65.                         for(j=0;j<7;j++)
  66.                         {
  67.                                 P1=~table1_0[j];
  68.                                 delay1ms(100);
  69.                         }
  70.                 }
  71.         }
  72.         */
  73.         /*********************倒流水灯*****************************/
  74.         /*
  75.         while(1)
  76.         {
  77.                 for(i=4;i>0;i--)
  78.                 {
  79.                         P0=table0_0[i-1];
  80.                         for(j=7;j>0;j--)
  81.                         {
  82.                                 P1=~table1_0[j-1];
  83.                                 delay1ms(100);
  84.                         }
  85.                 }
  86.         }
  87.         */
  88.         

  89.         /*********************向中看齐*****************************/
  90.         /*
  91.         while(1)
  92.         {
  93.                         P0=0x0f;
  94.                         for(j=0;j<7;j++)
  95.                         {
  96.                                 P1=~table1_1[j];
  97.                                 delay1ms(100);
  98.                         }
  99.         }
  100.         */
  101. /***********************双灯跑马********************/
  102. /*
  103. while(1)
  104.         {
  105.                         for(i=0;i<4;i++)
  106.                 {
  107.                         P0=table0_1[i];
  108.                         for(j=0;j<7;j++)
  109.                         {
  110.                                 P1=~table1_0[j];
  111.                                 delay1ms(100);
  112.                         }
  113.                 }        
  114.         }        
  115.         */
  116. /***********************四灯跑马********************/
  117. /*
  118. while(1)
  119.         {
  120.                                 P0=0x0f;
  121.                                 for(j=0;j<7;j++)
  122.                                 {
  123.                                         P1=~table1_0[j];
  124.                                         delay1ms(100);
  125.                                 }        
  126.         }
  127.         */
  128.         /**********************响应程序***********************/

  129.         while(1)
  130.         {
  131.                         while(temp=='a')
  132.                                 {
  133.                                 P2=0xff;
  134.                                 P0=0x0f;
  135.                                 P1=0x00;
  136.                                 }
  137.                         while(temp=='b')
  138.                                 {
  139.                                 P2=0xff;
  140.                                 P0=0x0f;
  141.                                 P1=0x00;
  142.                                 delay1ms(n);
  143.                                 P0=0x00;
  144.                                 P1=0xff;
  145.                                 delay1ms(n);
  146.                                 }
  147.                         while(temp=='c')
  148.                                 {
  149.                                 P2=0xff;
  150.                                 P0=0x00;
  151.                                 P1=0xff;
  152.                                 }
  153.                         while(temp=='d')
  154.                                 {
  155.                                 P2=0xff;
  156.                                 for(i=0;i<4;i++)
  157.                                                 {
  158.                                                         P0=table0_0[i];
  159.                                                         for(j=0;j<7;j++)
  160.                                                                 {
  161.                                                                         P1=~table1_0[j];
  162.                                                                         delay1ms(n);
  163.                                                                 }
  164.                                                 }
  165.                                 }
  166.                         while(temp=='e')
  167.                                 {
  168.                                 P2=0xff;
  169.                                         P0=0x0f;
  170.                                         for(j=0;j<7;j++)
  171.                                         {
  172.                                                 P1=~table1_1[j];
  173.                                                 delay1ms(n);
  174.                                         }
  175.                                 }
  176.                         while(temp=='f')
  177.                                 {
  178.                                 P2=0xff;
  179.                                         for(i=4;i>0;i--)
  180.                                         {
  181.                                                 P0=table0_0[i-1];
  182.                                                 for(j=7;j>0;j--)
  183.                                                 {
  184.                                                         P1=~table1_0[j-1];
  185.                                                         delay1ms(n);
  186.                                                 }
  187.                                         }
  188.                                 }
  189.                         while(temp=='g')
  190.                                 {
  191.                                 P2=0xff;
  192.                                         for(i=0;i<4;i++)
  193.                                                 {
  194.                                                         P0=table0_1[i];
  195.                                                         for(j=0;j<7;j++)
  196.                                                         {
  197.                                                                 P1=~table1_0[j];
  198.                                                                 delay1ms(n);
  199.                                                         }
  200.                                                 }        
  201.                                 }
  202.                         while(temp=='i')
  203.                                 {
  204.                                         P2=0xff;
  205.                                         P0=0x0f;
  206.                                         for(j=0;j<7;j++)
  207.                                         {
  208.                                                 P1=~table1_0[j];
  209.                                                 delay1ms(n);
  210.                                         }        
  211.                                 }
  212.         }
  213. }                        
  214.                                 
  215. void serial_int() interrupt 4
  216. {
  217.         uchar num;
  218.         num=temp;
  219.         temp=SBUF;
  220.         RI=0;
  221.         SBUF=temp;
  222.         while(!TI);
  223.         TI=0;
  224.         if(temp=='k')
  225.                 {
  226.                         n=n*2;
  227.                 //        SBUF=n;
  228.                 //        while(!TI);
  229.                 //        TI=0;
  230.                         if(n>500000)
  231.                                 n=500000;
  232.                                 temp=num;
  233.                 }
  234.         else if(temp=='j')
  235.                 {
  236.                                 n=n/2;
  237.                                 if(n==0)
  238.                                         n=1;
  239.                         //        SBUF=n;
  240.                         //        while(!TI);
  241.                         //        TI=0;
  242.                                 temp=num;
  243.                 }
  244.                 else if(temp=='a'||temp=='b'||temp=='c'||temp=='d'||temp=='e'||temp=='f'||temp=='g'||temp=='i')
  245.                 {
  246.                         
  247.                 }
  248.                 else
  249.                 {
  250.                         P1=0xff;
  251.                         P2=~temp;
  252.                 }
  253.                
  254. }
  255. void delay1ms(uint n)   //误差 0us
  256. {
  257.     unsigned int a,b,c;
  258.     for(c=n;c>0;c--)
  259.         for(b=14;b>0;b--)
  260.             for(a=2;a>0;a--);
  261. }
复制代码



模块程序.doc

36.5 KB, 下载次数: 94, 下载积分: 黑币 -5


作者: hou1232    时间: 2017-2-22 20:33
写的太好了
作者: 幸福早    时间: 2017-2-23 18:39
楼主,有想法,赞一个
作者: 小鹏鸟    时间: 2017-2-26 11:13
哇!太好高级了,真的很不错,我也想做一个,只是我现在才接触单片机,有很多东西都还不懂呢。恩恩,等我完全掌握单片机后一定做一个。
作者: DerHase    时间: 2017-3-28 16:40
学习了,很有创意楼主
作者: a290792218    时间: 2017-3-28 22:50
手机软件是什么呢,楼主
作者: 看着我    时间: 2017-7-27 12:45
不错,学习啦~
作者: xiehuanle    时间: 2017-10-17 20:09
那个手机上面的程序按键是怎么编写的呢
作者: lxa0    时间: 2017-10-17 23:41
xiehuanle 发表于 2017-10-17 20:09
那个手机上面的程序按键是怎么编写的呢

核心技术不会从天上掉下来的~~~~~~~~~
作者: GG276192978    时间: 2017-10-18 09:07
手机软件是有相应的APP么
作者: sx202    时间: 2017-10-20 20:33
操作方式真好,要是能把手机端程序也分享一下就好了。
作者: 练氏    时间: 2017-10-20 22:17
可否原理图分享下,还有手机蓝牙通讯APP
作者: 446436812    时间: 2017-12-19 20:23
谢谢分享,拿走学习了
作者: 446436812    时间: 2017-12-19 20:25
很给力
作者: 446436812    时间: 2017-12-19 20:28
操作方式真好,要是能把手机端程序也分享一下就好了。
作者: 记忆鎏金    时间: 2017-12-21 21:30
可以可以,赞一个
作者: 末代皇妃    时间: 2018-10-7 17:13
绝世好贴真的
作者: 蒙河河    时间: 2019-4-30 22:07
楼主,现在你还在吗?有问题想请教
作者: 雨落    时间: 2019-5-19 15:10
请问有具体的电路图吗
作者: jiangquancai    时间: 2019-5-19 20:18
蓝牙控制。应该WiFi也行
作者: wcs1668    时间: 2019-8-1 11:10
操作方式真好,要是能把手机端程序也分享一下就好了。
作者: 快乐眼泪    时间: 2019-8-1 20:38
为楼主点赞!
作者: 废后将军    时间: 2020-3-13 23:02
想知道蓝牙通信模块的实现,楼主可以讲一下吗?
作者: China燃!    时间: 2020-3-16 10:02
都需要什么元件呢
作者: 200121    时间: 2021-4-27 00:47
可以给个电路吗




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1