资源简介

STC89C52单片机与HC-06模块下位机测试程序,带有注释,不懂的可以到我的博客留言 http://blog.csdn.net/itas109

资源截图

代码片段和文件信息

/***********************************************************
STC90C51RD+与HC-06蓝牙连线:
蓝牙  STC90C51RD+
RXD    TXD
TXD    RXD
其他连线:
P2.0、P2.1、P2.3分别接一个指示灯

!!!!
!!!!注意:若单片机TXD(P3.1)无上拉能力,必须在P3.1端接上拉电阻。本次测试需要接上拉电阻
!!!!

手机采用蓝牙串口通信助手
最后已改用Android自编蓝牙通信软件
By itas109
http://blog.csdn.net/itas109
***********************************************************/
#include 
#include 
unsigned char tmp;
unsigned int c=0;

sbit led1=P2^0;     //指示灯0
sbit led2=P2^1; //指示灯1
sbit led3=P2^3; //指示灯3

void init();   //串口初始化
void send(unsigned char a); //单字节发送函数
void ctrl(); //接收处理函数

void main()
{
init();
          while(1)
          {         
                  if(RI==1)                     // 是否有数据到来
                  {
                   RI = 0;
                  tmp = SBUF;                   // 暂存接收到的数据
  ctrl();
  }       
          }
}

 void init() //串口初始化
 {
    ES=0;   //关中断
  SCON = 0x50;                        // REN=1允许串行接受状态,串口工作模式1
  //10位UART(1位起始位,8位数据位,1位停止位,无奇偶校验),波特率可变

  TMOD = 0x20;                        // 定时器1工作于方式2,8位自动重载模式 用于产生波特率
          TH1=TL1=0xFD;                       // 波特率9600 (本次测试采用晶振为11.0592)
          
          PCON &= 0x7f;                       // 波特率不倍增
          TR1 = 1;   //定时器1开始工作,产生波特率
  //发送标志位置0
  TI=0;   //接收标志位置0
  RI=0;
  
  //EA=0;
      ES=1;


          led1=0;                            //初始化设置3个指示灯全亮
  led2=0;
  led3=0;
 }
   
void send(unsigned char a) //单字节数据发送
{ //注意:若单片机TXD(P3.1)无上拉能力,必须在P3.1端接上拉电阻。本次测试需要接上拉电阻
TI=0;
SBUF=a;
while(TI==0);
TI=0;

if(c%2) //发送指示灯标志,每接收一次,此灯亮灭交替
 led3=1;
else
 led3=0;
c++;


void ctrl()             //接收处理函数
{
     switch(tmp)
  {
   case ‘1‘:
led1=1;             //收到字符1,指示灯0灭
send(tmp);
break;
case ‘2‘:  //收到字符2,指示灯1灭
 led2=1; 
 send(tmp);
 break;
case ‘3‘:     //收到字符3,指示灯0、1亮
 led1=0;
 led2=0;
 send(tmp);
 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);
  }
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件          58  2013-05-22 19:45  README.txt
     目录           0  2013-05-22 19:43  111\
     文件        7562  2013-05-22 18:08  111\10.LST
     文件        4140  2013-05-22 18:08  111\10.OBJ
     文件        2840  2013-05-22 18:08  111\10.c
     文件        4509  2013-05-22 18:08  111\111
     文件        7586  2013-05-22 18:08  111\111.M51
     文件         846  2013-05-22 18:08  111\111.hex
     文件          53  2013-05-22 18:08  111\111.lnp
     文件        5959  2013-05-22 19:43  111\111.plg
     文件       56078  2013-05-22 19:43  111\111.uvopt
     文件       13392  2013-05-21 14:03  111\111.uvproj
     文件       56076  2013-05-22 18:09  111\111_uvopt.bak
     文件       13393  2013-05-18 15:51  111\111_uvproj.bak
     文件        6376  2009-05-07 14:37  111\STARTUP.A51
     文件       14062  2013-05-22 18:08  111\STARTUP.LST
     文件         749  2013-05-22 18:08  111\STARTUP.OBJ

评论

共有 条评论