辛苦一整天在寫這個,分享給大家。 不用原理圖,自己看mydefine.h文件下的接口 藍牙連接單片機:VCC 5V GND 0 TXD(單片機)接RXD(藍牙) RXD(單片機)接TXD(藍牙) 自己分析,這些都是控制家電的整套程序
$$ZNW3LNAD_%_9OJDXZWSD4.png (15.73 KB, 下載次數: 64)
下載附件
壓縮包內容
2017-11-12 22:41 上傳
0.png (9.36 KB, 下載次數: 55)
下載附件
2017-11-14 00:47 上傳
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)
2017-11-12 22:41 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|