常见的普中51开发板结合蓝牙模块的串口通信
单片机源程序如下:- #include<reg52.h>
- #include "lcd1602.h"
- #include "public.h"
- #include "Uart.h"
- #include "matrix-buttons.h"
- #include "string.h"
- #include "Interu.h"
- #include "function.h"
- #include "LEDrun.h"
- #include "BEEP.h"
- u8 flag = 0;
- unsigned char mark;
- unsigned char* zoom; //选择数据缓冲区
- unsigned char* str;
- unsigned char* judge;
- u8 z1=0,z2=0;
- void main()
- {
- Init0();
- Init1();
- lcd1602_init();
- UartInit();
- str=UART_GetString();
- while(1)
- {
- flag = key_matrix_ranks_scan();
- if(flag ==1)
- {
- SendString("receive mode");
- str=UART_GetString();
- lcd1602_show_string(0,0,"Receive Mode");
- Beep(); //接收数据时蜂鸣器响一下
- Delay2000ms();
- lcd1602_clear();
- zoom = str;
- judge = str;
- while(1)
- {
-
- lcd1602_show_string(0,0,str);
- if(str != judge)
- {Beep();}
- flag = key_matrix_ranks_scan();
- if(flag == 11) //右移选择
- {
- zoom++;
- mark = *zoom;
- z1++;
-
- }
- if(flag == 9) //左移选择
- {
- zoom--;
- mark = *zoom;
- z1--;
- }
- if(flag == 6) //向上
- {
- zoom= zoom-16;
- mark = *zoom;
- z2= z2-16;
- }
- if(flag == 14) //向下
- {
- zoom=zoom+16; //由于LCD为16*2,所以移动16位
- mark = *zoom;
- z2= z2+16;
- }
- // lcd1602_show_string(z1,z2,zoom);
- // lcd1602_show_string(z1,z2," ");
- }
- }
- }
- }
- void send() interrupt 2 //用于发送选中的数据返回PC端
- {
- lcd1602_clear();
- lcd1602_show_string(0,0,"Send Mode");
- *judge = mark;
- lcd1602_show_string(0,1,"Sending:");
- SendString("reply:");
- SendChar(mark);
- Delay2000ms();
- lcd1602_clear();
- lcd1602_show_string(0,0,"Done!");
- Ledrun();
- Delay500ms();
- lcd1602_clear();
- }
复制代码
原理图: 无
仿真: 无
代码:
Bluetooth.zip
(82.01 KB, 下载次数: 7)
|