找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1204|回复: 0
打印 上一主题 下一主题
收起左侧

51 蓝牙测试程序

[复制链接]
跳转到指定楼层
楼主
ID:276416 发表于 2019-5-6 10:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/***********************************************************
蓝牙数码管显示加LED指示灯
STC89c52与蓝牙连线:
单片机P30接蓝牙模块TXD
单片机P31接蓝牙模块RXD
蓝牙模块可以从开发板上取5V电源供电
蓝牙模块VCC接开发板上VCC注意VCC要为5V的电压
蓝牙模块GND接开发板上GND
先烧录程序再接上蓝牙模块的TXD与RXD引脚否则会无法烧录程序
手机采用蓝牙串口通信助手发送信息

开发板数码管显示手机app上发送的数据,采用1位数码管显示
数码管驱动电路带有锁存器数据口接的P0口
发送不同的数值P1口的流水灯模块也会对应的亮起
此程序只适用于清翔51单片机开发板MCS51,其他硬件平台需要对程序做一定修改
***********************************************************/
#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar dat = '0'; //蓝牙数据暂存,默认值初始化为字符0
sbit P27=P2^7;
sbit P26=P2^6;
sbit P25=P2^5;
sbit P24=P2^4;
sbit A=P2^1;
sbit Z=P2^2;
sbit C=P2^0;
uchar Flag=0,QF,HF,TF,ZF,YF;
char code str[] = "temp12345";

//串口初始化
void boothint(void)
{
   
    SCON = 0x50;  // SCON: 模式1, 8-bit UART, 使能接收
TMOD |= 0x20;
TH1=0xfd;   //波特率9600 初值
TL1=0xfd;
TR1= 1;
EA = 1;     //开总中断
ES= 1;    //打开串口中断

}
/******************************************************************/
/* 串口中断程序*/
/******************************************************************/
void UART_SER () interrupt 4
{
if(RI)   //判断是接收中断产生
{
  RI=0;  //标志位清零
  dat=SBUF; //读入缓冲区的值
  Flag=1;
}
// SBUF=dat; //把接收到的数据发送出去
// while(TI==0);
// TI=0;
}
void send_str( )
        // 传送字串
{
unsigned char i = 0;
Flag=0;
while(str[i] != '\0')
{
SBUF = str[i];
while(!TI);    // 等特数据传送
TI = 0;     // 清除数据传送标志
i++;     // 下一个字符
}
}
void delayms( unsigned char ms)//延时子程序
{
uchar i;
while(ms--)
{
  for(i=0;i<120;i++);
}
}

void main()
{
boothint(); //串口初始化
while(1)
{  
if(Flag==1)
{   ES=0;
     delayms(50);      
  switch(dat) //点亮对应P1口上的LED
  {
   case '1': P1=0XFF; break; //关闭P1上所有流水灯
   case '0': P1=0; break;
   case '2': P1=0;P26=1;P25=0;P24=1; break;
   case '3': P1=1;P26=0;P25=0;P24=1; break;
   case '4': P1=0;P26=1;P25=1;P24=0; break;
   case '5': P1 = 0XEF; break;
   case '6': P1 = 0XDF; break;
   case '7': P1 = 0XBF; break;
   case '8': P1 = 0X7F; break;
   case '9': P1 = 0; break; //点亮P1上所有灯
   default:  P1 = 0XFF; break; //关闭P1上所有灯
  }
  ES=1;
    }
}
}


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表