找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 8333|回复: 8
打印 上一主题 下一主题
收起左侧

单片机蓝牙灯程序 实现蓝牙调光以及开关控制功能

  [复制链接]
跳转到指定楼层
楼主
单片机控制的蓝牙灯的视频:


实物图如下:


单片机源程序:
  1. /*****************************************
  2. ******************************************
  3. ***********
  4. 程序名:    蓝牙灯
  5. 编写人:    莫沫 
  6. 编写时间:  2017年1月31日
  7. 硬件支持:  STC12C2052AD 12MHz
  8. 接口说明:  pwm P3.7  
  9. 修改日志:  
  10.   NO.1-   2017年1月31日 14:56:26  
  11. 完成最基本的蓝牙调光以及开关控制功能  
  12.      
  13. ******************************************
  14. ******************************************
  15. **********/
  16. #include <STC12C5A60S2.H>
  17. sbit LED = P1^0;
  18. /*****************************************
  19. ******************************************
  20. **********
  21. 函数名:PWM初始化函数
  22. 调  用:PWM_init();
  23. 参  数:无
  24. 返回值:无
  25. 结  果:将PCA初始化为PWM模式,初始占空比为0
  26. 备  注:需要更多路PWM输出直接插入CCAPnH和
  27. CCAPnL即可
  28. /*****************************************
  29. ******************************************
  30. ***********/
  31. /*void PWM_init (void){
  32. CMOD=0x02; //设置PCA定时器
  33.   CL=0x00;
  34.   CH=0x00;
  35. CCAPM0=0x42; //PWM0设置PCA工作方式
  36. 为PWM方式(0100 0010)
  37.   CCAP0L=0x00; //设置PWM0初始值与
  38. CCAP0H相同
  39.   CCAP0H=0x00; // PWM0初始时为0
  40. CR=1; //启动PCA定时器
  41. }
  42. /*****************************************
  43. ******************************************
  44. ***********/

  45. /*****************************************
  46. ******************************************
  47. **********
  48. 函数名:UART串口初始化函数
  49. 调  用:UART_init();
  50. 参  数:无
  51. 返回值:无
  52. 结  果:启动UART串口接收中断,允许串口接收
  53. ,启动T/C1产生波特率(占用)
  54. 备  注:振荡晶体为11.0592MHz,PC串口端设置
  55. [ 19200,8,无,1,无 ]
  56. /*****************************************
  57. ******************************************
  58. ***********/
  59. void UART_init (void){
  60. EA = 1; //允许总中断(如不使用中断
  61. ,可用//屏蔽)
  62. ES = 1; //允许UART串口的中断
  63. TMOD = 0x20; //定时器T/C1工作方
  64. 式2
  65. SCON = 0x50; //串口工作方式1,允
  66. 许串口接收(SCON = 0x40 时禁止串口接收)
  67. TH1 = 0xFD; //定时器初值高8位设

  68. TL1 = 0xFD; //定时器初值低8位设

  69. // PCON = 0x80; //波特率倍频(屏蔽
  70. 本句波特率为9600)
  71. TR1 = 1; //定时器启动   
  72. }
  73. /*****************************************
  74. ******************************************
  75. ***********/
  76. /*****************************************
  77. ******************************************
  78. **********
  79. 函数名:UART串口接收中断处理函数
  80. 调  用:[SBUF收到数据后中断处理]
  81. 参  数:无
  82. 返回值:无
  83. 结  果:UART串口接收到数据时产生中断,用户
  84. 对数据进行处理(并发送回去)
  85. 备  注:过长的处理程序会影响后面数据的接收
  86. /*****************************************
  87. ******************************************
  88. ***********/
  89. void UART_R (void) interrupt 4  using 1{
  90. //切换寄存器组到1
  91. unsigned char UART_data; //定义串口
  92. 接收数据变量
  93. RI = 0;   //令接收中
  94. 断标志位为0(软件清零)
  95. UART_data = SBUF; //将接收到
  96. 的数据送入变量 UART_data
  97. if(UART_data == '0')  LED=0;
  98. if(UART_data == '1')  LED=1;
  99. }
  100. /*****************************************
  101. ******************************************
  102. ***********/
  103. /*****************************************
  104. ******************************************
  105. **********
  106. 函数名:PWM0占空比设置函数
  107. 调  用:PWM0_set();
  108. 参  数:0x00~0xFF(亦可用0~255)
  109. 返回值:无
  110. 结  果:设置PWM模式占空比,为0时全部高电平
  111. ,为1时全部低电平
  112. 备  注:如果需要PWM1的设置函数,只要把
  113. CCAP0L和CCAP0H中的0改为1即可
  114. /*****************************************
  115. ******************************************
  116. ***********
  117. void PWM0_set (unsigned char a){
  118. CCAP0L= a; //设置值直接写入CCAP0L
  119.   CCAP0H= a; //设置值直接写入CCAP0H

  120. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码



完整程序源码 视频等下载:
蓝牙控制.rar (3.06 MB, 下载次数: 168)

评分

参与人数 1黑币 +5 收起 理由
zff1995 + 5 很给力!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏6 分享淘帖 顶1 踩
回复

使用道具 举报

沙发
ID:105804 发表于 2017-6-9 15:24 | 只看该作者
电路图呢?
回复

使用道具 举报

板凳
ID:269065 发表于 2018-1-8 19:46 | 只看该作者
视频呢
回复

使用道具 举报

地板
ID:268627 发表于 2018-1-26 17:19 | 只看该作者
楼主麻烦您注明一下,这个程序没有加入pwm控制部分。
回复

使用道具 举报

5#
ID:316332 发表于 2018-5-14 14:14 | 只看该作者
APP软件没有
回复

使用道具 举报

6#
ID:332534 发表于 2018-5-18 06:02 | 只看该作者
晕,程序不完整
回复

使用道具 举报

7#
ID:251401 发表于 2018-7-2 21:09 | 只看该作者
感谢!
回复

使用道具 举报

8#
ID:684408 发表于 2020-1-10 00:39 | 只看该作者
给力,太棒了,我正好需要这个
回复

使用道具 举报

9#
ID:647226 发表于 2020-4-22 09:42 | 只看该作者
好像51不能输出0%的PWM?这个您是如何解决的?
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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