辛苦一整天在写这个,分享给大家。 不用原理图,自己看mydefine.h文件下的接口 蓝牙连接单片机:VCC 5V GND 0 TXD(单片机)接RXD(蓝牙) RXD(单片机)接TXD(蓝牙) 自己分析,这些都是控制家电的整套程序
压缩包内容
LCD12864+蓝牙控制+蜂鸣器+按键控制 家电状态单片机源程序如下:
- #include <reg52.h>
- #include <mydefine.h>
- void main()
- {
- // WE = 0;//关闭数码管
- // DU = 0;//关闭数码管
- Com_Init();//串口初始化
- LCD12864_Init();//12864初始化
- Display_String(0,0,"电冰箱:关 ");//开机画面都是家电关闭着的
- Display_String(1,0,"电视机:关 ");//开机画面都是家电关闭着的
- Display_String(2,0,"洗衣机:关 "); //开机画面都是家电关闭着的
- while(1)
- {
- KEY_Scan();
- }
- }
- /********************************************************************
- * 名称 : Com_Int()
- * 功能 : 串口中断子函数
- * 输入 : 无
- * 输出 : 无
- ***********************************************************************/
- void Com_Int(void) interrupt 4
- {
-
- EA = 0;
- if(RI == 1) //当硬件接收到一个数据时,RI会置位
- {
- Receive = SBUF ; //接收数据
- RI = 0;//清除标志位
- switch (Receive)
- {
- case 0x00://当收到串口数据0x00执行下面代码
- { //AllOff();关闭所有家电,并显示家电关闭
- AllOff();BEEP_Run();//蓝牙开关按下时蜂鸣器响
- Display_String(0,0,"电冰箱:关");
- Display_String(1,0,"电视机:关");
- Display_String(2,0,"洗衣机:关");
- }break;
- case 0x10://当收到串口数据0x00执行下面代码
- {
- LED1=1;BEEP_Run();
- Display_String(0,0,"电冰箱:关");
- }break;
- case 0x11://当收到串口数据0x11执行下面代码
- {
- LED1=0;BEEP_Run();
- Display_String(0,0,"电冰箱:开");
- }break;
- case 0x20://当收到串口数据0x20执行下面代码
- {
- LED2=1;BEEP_Run();
- Display_String(1,0,"电视机:关");
- }break;
- case 0x21://当收到串口数据0x21执行下面代码
- {
- LED2=0;BEEP_Run();
- Display_String(1,0,"电视机:开");
- }break;
- case 0x30://当收到串口数据0x30执行下面代码
- {
- LED3=1;BEEP_Run();
- Display_String(2,0,"洗衣机:关");
- }break;
- case 0x31://当收到串口数据0x31执行下面代码
- {
- LED3=0;BEEP_Run();
- Display_String(2,0,"洗衣机:开");
- }break;
- default:break;
- }
- }
- EA = 1;
- }
复制代码- #include <reg52.h>
- #include <mydefine.h>
- /******************************************
- * 按键扫描函数
- *当按键1按下1次:关电冰箱 ,鸣响一次,显示关
- *当按键1按下1次:开电冰箱 ,鸣响一次,显示开
- *当按键2按下1次:关电视机 ,鸣响一次,显示关
- *当按键2按下1次:开电视机 ,鸣响一次,显示开
- *当按键3按下1次:关洗衣机 ,鸣响一次,显示关
- *当按键3按下1次:开洗衣机 ,鸣响一次,显示开
- *当按键4按下1次:关所有家电,鸣响一次,显示开
- *当按键4按下1次:开所有家电,鸣响一次,显示关
- *说明:做板子的时候,请在按键上并联电容,不然不好使
- *******************************************/
- void KEY_Scan()
- {
- uchar num[4];
- if(KEY1 == 0)
- {
- Delay_ms(10);
- if(KEY1 == 0)
- {
- LED1=0;BEEP_Run();num[0]++;
- if(num[0] == 2)
- {
- Display_String(0,0,"电冰箱:关");
- num[0] = 0;
- }
- else
- Display_String(0,0,"电冰箱:开");
- }
-
- }
- else if(KEY2 == 0)
- {
- Delay_ms(5);
- if(KEY2 == 0)
- {
- LED2=0;BEEP_Run();num[1]++;
- if(num[1] == 2)
- {
- Display_String(1,0,"电视机:关");
- num[1] = 0;
- }
- else
- Display_String(1,0,"电视机:开");
- }
- }
- else if(KEY3 == 0)
- {
- Delay_ms(12);
- if(KEY3 == 0)
- {
- LED3=0;BEEP_Run();num[2]++;
- if(num[2] == 2)
- {
- Display_String(2,0,"洗衣机:关");
- num[2] = 0;
- }
- else
- Display_String(2,0,"洗衣机:开");
- }
- }
- else if(KEY4 == 0)
- {
- Delay_ms(5);
- if(KEY4 == 0)
- {
- AllOff();BEEP_Run();num[3]++;//开关按下时蜂鸣器响
- if(num[3] == 2)
- {
- Display_String(0,0,"电冰箱:开");
- Display_String(1,0,"电视机:开");
- Display_String(2,0,"洗衣机:开");
- num[3] = 0;
- }
- else
- {
- Display_String(0,0,"电冰箱:关");
- Display_String(1,0,"电视机:关");
- Display_String(2,0,"洗衣机:关");
- }
-
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
LCD12864 蓝牙控制一整套程序.rar
(114.29 KB, 下载次数: 112)
|