找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 15353|回复: 24
收起左侧

手机蓝牙控制的单片机心形灯制作

  [复制链接]
ID:128771 发表于 2016-7-5 02:59 | 显示全部楼层 |阅读模式
视频地址:http://v.qq.com/page/f/9/9/f0306rbk299.html


130939uqg3ykqkoky7sqr7.jpg.thumb.jpg

蓝牙是淘宝买的 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

评分

参与人数 5黑币 +34 收起 理由
Whistle0602 + 5 绝世好帖!
练氏 + 12 很给力!
张小帅1126 + 7 赞一个!
zhaok2013 + 5 很给力!
hou1232 + 5 很给力!

查看全部评分

回复

使用道具 举报

ID:166036 发表于 2017-2-22 20:33 | 显示全部楼层
写的太好了
回复

使用道具 举报

ID:138267 发表于 2017-2-23 18:39 | 显示全部楼层
楼主,有想法,赞一个
回复

使用道具 举报

ID:160485 发表于 2017-2-26 11:13 | 显示全部楼层
哇!太好高级了,真的很不错,我也想做一个,只是我现在才接触单片机,有很多东西都还不懂呢。恩恩,等我完全掌握单片机后一定做一个。
回复

使用道具 举报

ID:184177 发表于 2017-3-28 16:40 | 显示全部楼层
学习了,很有创意楼主
回复

使用道具 举报

ID:58312 发表于 2017-3-28 22:50 | 显示全部楼层
手机软件是什么呢,楼主
回复

使用道具 举报

ID:218694 发表于 2017-7-27 12:45 | 显示全部楼层
不错,学习啦~
回复

使用道具 举报

ID:240356 发表于 2017-10-17 20:09 | 显示全部楼层
那个手机上面的程序按键是怎么编写的呢
回复

使用道具 举报

ID:74784 发表于 2017-10-17 23:41 | 显示全部楼层
xiehuanle 发表于 2017-10-17 20:09
那个手机上面的程序按键是怎么编写的呢

核心技术不会从天上掉下来的~~~~~~~~~
回复

使用道具 举报

ID:237942 发表于 2017-10-18 09:07 | 显示全部楼层
手机软件是有相应的APP么
回复

使用道具 举报

ID:240522 发表于 2017-10-20 20:33 | 显示全部楼层
操作方式真好,要是能把手机端程序也分享一下就好了。
回复

使用道具 举报

ID:187478 发表于 2017-10-20 22:17 | 显示全部楼层
可否原理图分享下,还有手机蓝牙通讯APP
回复

使用道具 举报

ID:249041 发表于 2017-12-19 20:23 | 显示全部楼层
谢谢分享,拿走学习了
回复

使用道具 举报

ID:249041 发表于 2017-12-19 20:25 | 显示全部楼层
很给力
回复

使用道具 举报

ID:249041 发表于 2017-12-19 20:28 | 显示全部楼层
操作方式真好,要是能把手机端程序也分享一下就好了。
回复

使用道具 举报

ID:264401 发表于 2017-12-21 21:30 | 显示全部楼层
可以可以,赞一个
回复

使用道具 举报

ID:390260 发表于 2018-10-7 17:13 | 显示全部楼层
绝世好贴真的
回复

使用道具 举报

ID:432270 发表于 2019-4-30 22:07 | 显示全部楼层
楼主,现在你还在吗?有问题想请教
回复

使用道具 举报

ID:540911 发表于 2019-5-19 15:10 | 显示全部楼层
请问有具体的电路图吗
回复

使用道具 举报

ID:502774 发表于 2019-5-19 20:18 来自手机 | 显示全部楼层
蓝牙控制。应该WiFi也行
回复

使用道具 举报

ID:71883 发表于 2019-8-1 11:10 | 显示全部楼层
操作方式真好,要是能把手机端程序也分享一下就好了。
回复

使用道具 举报

ID:399179 发表于 2019-8-1 20:38 来自手机 | 显示全部楼层
为楼主点赞!
回复

使用道具 举报

ID:708025 发表于 2020-3-13 23:02 | 显示全部楼层
想知道蓝牙通信模块的实现,楼主可以讲一下吗?
回复

使用道具 举报

ID:709228 发表于 2020-3-16 10:02 | 显示全部楼层
都需要什么元件呢
回复

使用道具 举报

ID:820972 发表于 2021-4-27 00:47 | 显示全部楼层
可以给个电路吗
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表