我是靠谱客的博主 眯眯眼烧鹅,这篇文章主要介绍2022-11-12 基于开发板的蓝牙点灯分享,现在分享给大家,希望可以做个参考。

2022-11-12 基于开发板的蓝牙点灯分享(程序已上传到微信公众号:风吹摇铃 奔赴星海)

(公众号有详细的程序讲解和效果视频)

硬件准备:

51单片机开发板或者最小系统、LED灯、杜邦线、蓝牙模块、手机(安装APP)或者PC端串口调试助手、LCD1602显示屏

软件准备:

KEIL4编程,串口驱动、LCD1602驱动等

原理图准备:

1、LCD1602

2、单片机最小系统

3、独立按键部分

4、LED

5、蓝牙,该模块主要用于短距离的数据无线传输领域。可以方便的和 PC 机的蓝牙设备相连,也 可以两个模块之间的数据互通。避免繁琐的线缆连接,能直接替代串口线。

6、蓝牙实物:

软件部分:

1、LCD1602驱动部分

复制代码
1
2
3
4
5
6
7
8
9
10
void LcdWriteCom(uchar com) //写入命令{ LCD1602_E = 0; //使能清零 LCD1602_RS = 0; //选择写入命令 LCD1602_RW = 0; //选择写入 LCD1602_DATAPINS = com; //由于4位的接线是接到P0口的高四位,所以传送高四位不用改 Lcd1602_Delay1ms(1); LCD1602_E = 1; //写入时序 Lcd1602_Delay1ms(5); LCD1602_E = 0; LCD1602_DATAPINS = com << 4; //发送低四位 Lcd1602_Delay1ms(1); LCD1602_E = 1; //写入时序 Lcd1602_Delay1ms(5); LCD1602_E = 0;} void LcdWriteData(uchar dat) //写入数据{ LCD1602_E = 0; //使能清零 LCD1602_RS = 1; //选择写入数据 LCD1602_RW = 0; //选择写入 LCD1602_DATAPINS = dat; //由于4位的接线是接到P0口的高四位,所以传送高四位不用改 Lcd1602_Delay1ms(1); LCD1602_E = 1; //写入时序 Lcd1602_Delay1ms(5); LCD1602_E = 0; LCD1602_DATAPINS = dat << 4; //写入低四位 Lcd1602_Delay1ms(1); LCD1602_E = 1; //写入时序 Lcd1602_Delay1ms(5); LCD1602_E = 0;}

2、显示部分:

复制代码
1
void display_data(void)///显示{ if(led_flag==1) { LcdWriteCom(0x80); //第一行 LcdWritestr("LED:ON "); uartSendStr("LED:ON ",7); } else if(led_flag==0) { LcdWriteCom(0x80); //第一行 LcdWritestr("LED:OFF"); uartSendStr("LED:OFF",7); } }

3、独立按键部分:

复制代码
1
2
void key()//按键操作函数{ if(k1==0) //判断 { Delay1ms(); //消抖处理 if(k1==0) //在判断 { //设置 led_flag=1; P1=0X00; }while(k1==0); } if(k2==0) { Delay1ms(); if(k2==0) //加 { led_flag=0; P1=0XFF; }while(k2==0); }}

4、串口初始化:

复制代码
1
void UART_Init(void){ SCON = 0x50; // SCON: 模式 1, 8-bit UART, 使能接收 TMOD |= 0x20; // TMOD: timer 1, mode 2, 8-bit 重装 TH1 = 0xFD; // TH1: 重装值 9600 波特率 晶振 11.0592MHz TL1 = TH1; TR1 = 1; // TR1: timer 1 打开 EA = 1; //打开总中断 ES = 1; //打开串口中断}

5、串口中断服务

复制代码
1
void UART_SER (void) interrupt 4 //串行中断服务程序{ if(RI) //判断是接收中断产生 { RI=0; //标志位清零 reseve_flag = SBUF; } if(TI) //如果是发送标志位,清零 TI=0; switch(reseve_flag) { case (0+0x30): led_flag=1; P1=0X00; break; case (1+0x30): led_flag=0; P1=0XFF;break; default: break; }}

实现效果:

到公众号:风吹摇铃 奔赴星海:观看

最后

以上就是眯眯眼烧鹅最近收集整理的关于2022-11-12 基于开发板的蓝牙点灯分享的全部内容,更多相关2022-11-12内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部