找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1864|回復(fù): 3
打印 上一主題 下一主題
收起左側(cè)

藍(lán)牙HC-06模塊代碼有地方看不懂,請教

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:272485 發(fā)表于 2020-4-23 10:08 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
//#include <reg52.h>
//#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar tmp;
uint c=0;
sbit led1=P1^0;            //指示燈0
sbit led2=P1^1;            //指示燈1
sbit led3=P1^2;            //指示燈3
sbit led7=P1^7;            //指示燈3

sbit P2_0 = P2^0;
sbit P2_1 = P2^1;
sbit P2_2 = P2^2;
sbit P2_3 = P2^3;

uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,
                        0xf8,0x80,0x90};

void delay1(uint z)//1ms
{
    uint x,y;
    for(x=z;x>0;x--)
        for(y=120;y>0;y--);   
}
void display(uchar value)
{
    uchar shu1,value1;
    value1=value-48;
    //bai=value1/16;
    shu1=value1%16;


   P0=table[shu1];
   P2_0 = 0;
   delay1(1);
   P2_0 = 1;
}   
      
void init();   //串口初始化
void send(unsigned char a);    //單字節(jié)發(fā)送函數(shù)
void ctrl(); //接收處理函數(shù)

void main()
{
        init();
          while(1)
          {         
                  display(SBUF);
                  if(RI==1)                     // 是否有數(shù)據(jù)到來
                  {
                   RI = 0;
                  ctrl();
                  }      
          }
}

void init()    //串口初始化
{
           ES=0;                                  //關(guān)中斷
          SCON = 0x50;                        // REN=1允許串行接受狀態(tài),串口工作模式1,
                                              //10位UART(1位起始位,8位數(shù)據(jù)位,1位停止位,無奇偶校驗(yàn)),波特率可變

          TMOD = 0x20;                        // 定時(shí)器1工作于方式2,8位自動(dòng)重載模式, 用于產(chǎn)生波特率
          TH1=TL1=0xFD;                       // 波特率9600 (本次測試采用晶振為11.0592)
         
          PCON &= 0x7f;                       // 波特率不倍增
          TR1 = 1;                              //定時(shí)器1開始工作,產(chǎn)生波特率
                                              //發(fā)送標(biāo)志位置0
          TI=0;                                  //接收標(biāo)志位置0
          RI=0;
         
          //EA=0;
          ES=1;
}
   
void send(unsigned char a)    //單字節(jié)數(shù)據(jù)發(fā)送
{                            //注意:若單片機(jī)TXD(P3.1)無上拉能力,必須在P3.1端接上拉電阻。本次測試需要接上拉電阻
    TI=0;   
    SBUF=a;
    while(TI==0);
    TI=0;

    if(c%2)                    //發(fā)送指示燈標(biāo)志,每接收一次,此燈亮滅交替
     led7=1;
    else
     led7=0;
    c++;
}

void ctrl()                    //接收處理函數(shù)
{
                    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);
                  }
}





我想問一下這個(gè)藍(lán)牙模塊的代碼中,我手機(jī)輸入一個(gè)數(shù)字,怎么就賦值給temp了



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:272485 發(fā)表于 2020-4-23 10:10 | 只看該作者
還有這個(gè)display函數(shù)的作用是啥?為什么p0要取數(shù)組里的值啊
回復(fù)

使用道具 舉報(bào)

板凳
ID:732168 發(fā)表于 2020-4-24 10:29 | 只看該作者
你的tmp好像沒有賦值,你可以把函數(shù)名改成這樣void ctrl(uchar tmp),然后在main的while那個(gè)弄入這個(gè)函數(shù),
回復(fù)

使用道具 舉報(bào)

地板
ID:514901 發(fā)表于 2020-4-24 13:59 | 只看該作者
display是讓數(shù)碼管顯示的函數(shù),P0獲取數(shù)組里的值是獲取數(shù)碼管的段選,
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表