找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1344|回復: 0
打印 上一主題 下一主題
收起左側

51 藍牙測試程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:276416 發(fā)表于 2019-5-6 10:22 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
/***********************************************************
藍牙數碼管顯示加LED指示燈
STC89c52與藍牙連線:
單片機P30接藍牙模塊TXD
單片機P31接藍牙模塊RXD
藍牙模塊可以從開發(fā)板上取5V電源供電
藍牙模塊VCC接開發(fā)板上VCC注意VCC要為5V的電壓
藍牙模塊GND接開發(fā)板上GND
先燒錄程序再接上藍牙模塊的TXD與RXD引腳否則會無法燒錄程序
手機采用藍牙串口通信助手發(fā)送信息

開發(fā)板數碼管顯示手機app上發(fā)送的數據,采用1位數碼管顯示
數碼管驅動電路帶有鎖存器數據口接的P0口
發(fā)送不同的數值P1口的流水燈模塊也會對應的亮起
此程序只適用于清翔51單片機開發(fā)板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; //讀入緩沖區(qū)的值
  Flag=1;
}
// SBUF=dat; //把接收到的數據發(fā)送出去
// 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 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表