欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: 初學(xué)單片機(jī),如何在主函數(shù)里面調(diào)用我在串口助手里面輸入的數(shù)字 [打印本頁(yè)]

作者: yusabc    時(shí)間: 2018-5-30 12:23
標(biāo)題: 初學(xué)單片機(jī),如何在主函數(shù)里面調(diào)用我在串口助手里面輸入的數(shù)字
初學(xué)單片機(jī),哪位大哥幫我看下如何在主函數(shù)里面調(diào)用我在串口助手里面輸入的數(shù)字,我下面的不行啊幫忙看下哪里錯(cuò)了


作者: yusabc    時(shí)間: 2018-5-30 12:25
sbit led=P2^0;         //D1
sbit led1=P2^1;         //D1
sbit led2=P2^2;         //D1

void delay(u16 i)
{
        while(i--);       
}

void display()
{
        while(1)
        {
                led=0;
                delay(50000); //大約延時(shí)450ms
                led=1;
                delay(50000); //大約延時(shí)450ms       
        }               
}


void display1()
{
        while(1)
        {
                led1=0;
                delay(50000); //大約延時(shí)450ms
                led1=1;
                delay(50000); //大約延時(shí)450ms       
        }               
}

void display2()
{
        while(1)
        {
                led2=0;
                delay(50000); //大約延時(shí)450ms
                led2=1;
                delay(50000); //大約延時(shí)450ms       
        }               
}
void UsartInit()
{
        SCON=0X50;                        //設(shè)置為工作方式1
        TMOD=0X20;                        //設(shè)置計(jì)數(shù)器工作方式2
        PCON=0X80;                        //波特率加倍
        TH1=0XF3;                                //計(jì)數(shù)器初始值設(shè)置,注意波特率是4800的
        TL1=0XF3;
        ES=1;                                                //打開(kāi)接收中斷
        EA=1;                                                //打開(kāi)總中斷
        TR1=1;                                        //打開(kāi)計(jì)數(shù)器
}


void main()
{
            UsartInit();
              switch(SBUF)
            {
                  case(1):
                      display() ;break;
              case(2):
                      display1() ;break;
                  case(3):
                      display2() ;break;
            }
        while(1);
}

void Usart() interrupt 4
{
        u8 receiveData;
        receiveData=SBUF;//出去接收到的數(shù)據(jù)
        RI = 0;//清除接收中斷標(biāo)志位
        SBUF=receiveData;//將接收到的數(shù)據(jù)放入到發(fā)送寄存器
        while(!TI);                         //等待發(fā)送數(shù)據(jù)完成
        TI=0;                                                 //清除發(fā)送完成標(biāo)志位
}
作者: TT1998    時(shí)間: 2018-6-3 18:29
你把switch放到中斷看看,感覺(jué)是sbuf的問(wèn)題
作者: woshige    時(shí)間: 2018-6-3 20:09
串口助手輸入的“數(shù)字”其實(shí)是字符,并且有對(duì)應(yīng)的ASCII碼值,你把case里的123當(dāng)做字符用單引號(hào)括起來(lái)就可以了,或者使用ASCII值
作者: loading88    時(shí)間: 2018-6-4 10:25
你這里問(wèn)題有;
第一:不能直接判斷SBUF寄存器里面的數(shù)據(jù)
第二:你得確定串口來(lái)的數(shù)據(jù)是1.2.3,或者是ASCII碼值


void main()
{
             u8  receiveData;
             receiveData=SBUF;
             UsartInit();
               switch(receiveData)
             {
                   case(1):                //可能是ASSCII碼0X31
                       display() ;break;
               case(2):                     //可能是ASSCII碼0X32
                       display1() ;break;
                   case(3):                  //可能是ASSCII碼0X33
                       display2() ;break;
             }
         while(1);
}




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1