实物电路连接
我也是在测试,所以先用LED 等来代替继电器输出,然后才用到继电器上面。单片机直接放在我做的最小系统版上面,然后用导线来连接到蓝牙开关的小板子上,等测试无误之后再安装在上面,不然不好写程序上去。输出接的是一个小电机,用的一个12v蓄电池代替220V电源,如果要用220V的电源,要注意安全了!提醒一下,绝缘一定要做好,毕竟不是开玩笑的。简单说一下电路连接,首先你得需要焊接一个51单片机最小系统板,(如果这个都不会,那你需要先学习一下,不然肯定是没办法做的)然后是由三极管驱动继电器的电路,记得加二极管,不然三极管很有几率被击穿,最后是蓝牙模块与单片机的连接,电源接好,一般蓝牙模块都是宽电压的,所以直接接到5V电源上,与单片机共用电源,不用什么电压转换,很方便的,把蓝牙模块的TX与单片机的RX连接,就是P3.0那个引脚,RX接单片机的TX,就是P3.1那个引脚,至于继电器哪里你需要接成常开还是常闭的模式就你自己决定了,当然还要加一点录滤波的,因为继电器启动的一瞬间电流很大,担心是单片机死机!这些就是主要的东西了!)
蓝牙开关单片机代码
- /********************************************************************
- 制 作 人:林景福
- *********************************************************************/
- #include <reg52.h>
- #include <intrins.h>
- #include <math.h>
- #define uchar unsigned char
- #define uint unsigned int
- uchar receive=0;
- uchar send=0xff;
- sbit out1=P2^0; //继电器1
- sbit out2=P2^1; //继电器2
- sbit out3=P2^2; //继电器3
- sbit out4=P2^3; //继电器4
- sbit out5=P2^4; //继电器5
- sbit out6=P2^6; //继电器6
- sbit out7=P2^5; //继电器7
- sbit out8=P2^7; //继电器8
- /********************************************************************
- * 名称 : Delay_1ms()
- * 功能 : 延时子程序,延时时间为 1ms * x
- * 输入 : x (延时一毫秒的个数)
- * 输出 : 无
- **********************************************************************/
- void Delay_1ms(uint i) //1ms延时
- {
- uchar x,j;
- for(j=0;j<i;j++)
- for(x=0;x<=148;x++);
- }
- /********************************************************************
- * 名称 : Com_Init()
- * 功能 : 串口初始化,晶振11.0592,波特率9600,使能了串口中断
- * 输入 : 无
- * 输出 : 无
- **********************************************************************/
- void Com_Init(void)
- {
- TMOD = 0x20; //设置定时器工作方式2
- // PCON = 0x00; //设置波特率不加倍
- SCON = 0x50; //设置为工作方式1
- TH1 = 0xfd; //设置波特率 9600
- TL1 = 0xfd;
- TR1 = 1; //启动定时器1
- ES = 1; //开串口中断
- EA = 1; //开总中断
- }
- //开关操作函数,接收到一次数据改变一次状态
- void alloff()
- {
- P2=0xff;
- }
- void main()
- {
- Delay_1ms(100);
- Com_Init();//串口初始化
- while (1);
- }
- /********************************************************************
- * 名称 : Com_Int()
- * 功能 : 串口中断子函数
- * 输入 : 无
- * 输出 : 无
- **********************************************************************/
- void Com_Int(void) interrupt 4
- {
- EA = 0;
- if(RI == 1) //当硬件接收到一个数据时,RI会置位
- {
- receive = SBUF ; //接收=SBUF
- RI = 0; //令接收中断标志位为0(软件清零)
- switch (receive)
- {
- case 0x00:alloff();break; //关闭所有
- case 0x01: P2=0xfe;break;
- case 0x20: out2=1;break;
- case 0x21: out2=0;break;
- case 0x30: out3=1;break;
- case 0x31: out3=0;break;
- case 0x40: out4=1;break; //关
- case 0x41: out4=0;break; //开
- case 0x50: out5=1;break;
- case 0x51: out5=0;break;
- case 0x60: out6=1;break;
- case 0x61: out6=0;break;
- case 0x70: out7=1;break;
- case 0x71: out7=0;break;
- case 0x80: out8=1;break;
- case 0x81: out8=0;break;
- // case常量表达式x:语句x;break;
- default:P2=0xff;break;
- }
- }
- EA = 1;
- }
复制代码
全部资料51hei下载地址:
简易制作蓝牙控制开关(程序 蓝牙APP 制作讲解).rar
(405.42 KB, 下载次数: 506)
|