蓝牙模块学习笔记(1) - 图文 下载本文

{ }

switch(tmp) {

case '1': led1=1; //收到字符1,指示灯0灭 send(tmp); beep=0; delay(500); break; case '2': //收到字符2,指示灯1灭 led2=1; send(tmp); beep=1; delay(500); break; case '3': //收到字符3,指示灯0、1亮 led1=0; led2=0; send(tmp); beep=1; delay(500); break; case '4': //收到字符4,指示灯0、1灭 led1=1; led2=1; send(tmp); break; case '5': //收到字符5,指示灯3亮 led3=0; send(tmp); break; default: //其他,灯全灭 led1=1; led2=1; led3=1; send(tmp); beep=1; delay(500); }

以下是蓝牙接收字符串并向12864显示程序

/*****************************************************************************8 *任广俊 *日期:12.17

*蓝牙接收并显示在12864上,1,2,3控制发光二极管 *4,5控制继电器

******************************************************************************/

#include #include #define uint unsigned int #define uchar unsigned char #define LCD_data P0 sbit LCD_EN=P3^4; //液晶使能 1使能,0使不能 sbit LCD_RS=P3^5; //寄存器选择 1数据,0命令 sbit LCD_RW=P3^6; //液晶读写控制1读出,0写入 sbit LCD_PSB=P3^7; //串行口控制 1并行,0串行

sbit led1=P1^0; sbit led2=P1^1; sbit led3=P1^2;

sbit beep=P3^2; //蜂鸣器 sbit jdq=P1^6; //继电器 uchar code dis1[]={%uchar code dis2[]={\单片机学习%uchar Tem[20]; uchar dis3[8];

unsigned char a=0; //定义临时变量 uchar flag,flag2=0; uchar temp,i,c;

void delay(uint x) { uint m,n; for (m=x;m>0;m--)

for(n=110;n>0;n--); }

/******************************************************************************************************* 12864液晶显示

*******************************************************************************************************/

//写指令:RS=L;RW=L;E=高脉冲;D0-D7=指令码 void write_cmd(uchar cmd ) { LCD_RS=0; LCD_RW=0; LCD_EN=0; P0=cmd; delay(5); LCD_EN=1; delay(5); LCD_EN=0; }

//写数据到LCD:RS=H;RW=L;E=高脉冲 void write_dat(uchar dat) { LCD_RS=1; LCD_RW=0; LCD_EN=0; P0=dat; delay(5); LCD_EN=1; delay(5); LCD_EN=0; }

//设定显示位置

void lcd_pos(uchar x,uchar y) { uchar pos; if(x==0) {x=0x80;} else if(x==1) {x=0x90;} else if(x==2) {x=0x88;} else if(x==3) {x=0x98;}

D0-D7数据 pos=x+y; write_cmd(pos); //显示地址 }

void lcd_init() //lcd初始化 { LCD_PSB=1; //并口方式 write_cmd(0x30); //基本指令喜僮? delay(5); write_cmd(0x0C); //显示开关光标 delay(5); write_cmd(0x01); //清除lcd显示内容 delay(5); }

/*******************************************************************************************************************/

void BT_init() //蓝牙串口初始化 { ES=0; //关中串口中断 SCON = 0x50; // REN=1允许串口接收状态,串口工作方式1 //10位UART(1起始位,8数据位,1停止位?,无奇偶校检 TMOD = 0x20; // 定时器1,工作方式2 TH1=TL1=0xFD; // 设置波特率9600 PCON &= 0x7f; // 波特率不倍增 TR1 = 1; //允许串口中断 TI=0; //发送标志0 RI=0; //接收标志0 ES=1; EA= 1; //开总中断

led1=0; //初始化为全亮 led2=0; led3=0; }

void send(unsigned char a) //单字节数据发送