久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

51單片機stc89c52藍牙控制小車紅外手勢開關,我寫了程序不知道為什么不能遙控

[復制鏈接]
跳轉到指定樓層
樓主
ID:476498 發表于 2019-2-22 14:24 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
這是我代碼
#include<reg52.h>

typedef unsigned int u16;          
typedef unsigned char u8;

sbit int1=P0^0;
sbit int2=P0^1;
sbit int3=P0^2;
sbit int4=P0^3;
sbit kaiguan=P3^7;
u8 receiveData;
void delay(u8 a)
{
        while(a--);       
}
void Timer0Init()
{
        TMOD|=0X01;
        TH0=0X4c;       
        TL0=0X00;       
        ET0=1;
        EA=1;
        TR0=1;               
}
void UsartInit()
{
        SCON=0X50;                       
        TMOD=0X20;                       
        PCON=0X00;                       
        TH1=0XFD;                               
        TL1=0XFD;
        ES=1;                                               
        EA=1;                                               
        TR1=1;                                       
}
void forward()               
{
        int1=1;
        int2=0;
        int3=1;
        int4=0;
}

void backward()               
{
        int1=0;
        int2=1;
        int3=0;
        int4=1;
}
void turn_left()       
{
        int1=1;
        int2=0;
        int3=0;
        int4=0;
}
void rotate_left()       
{
        int1=1;
        int2=0;
        int3=0;
        int4=1;
}
void turn_right()       
{
        int1=0;
        int2=0;
        int3=1;
        int4=0;
}
void rotate_right()       
{
        int1=0;
        int2=1;
        int3=1;
        int4=0;       
}
void stop()                       
{       
        int1=1;
        int2=1;
        int3=1;
        int4=1;       
}

void tip1()
{
        rotate_left();
        delay(3);
        rotate_right();
        delay(3);
}

void tip2()
{
        rotate_left();
        delay(6);
        rotate_right();
        delay(6);

}

void tip3()
{
        turn_left();
        delay(66);
}

void tip4()
{
        turn_right();
        delay(55);
}

void ctrl()   
{
        if(kaiguan==0)
        {
                while(1)
                {
                if(receiveData==0x01)
                forward();
                if(receiveData==0x02)
                        backward();
                if(receiveData==0x03)
                        turn_left();
                if(receiveData==0x04)
                        turn_right();
                if(receiveData==0x05)
                        stop();
                if(receiveData==0x06)
                        tip1();
                if(receiveData==0x07)
                        tip2();
                if(receiveData==0x08)
                        tip3();
                if(receiveData==0x09)
                        tip4();
               
                }
        }
}
void main ()
{        Timer0Init();
       
       
                UsartInit();
       
        while(1);       
}

void Timer0() interrupt 1
{
        static u8 i;
        TH0=0XFC;       
        TL0=0X18;
        i++;
        if(i==50)
        {
                i=0;       
        }       
}

void Usart() interrupt 4
{
       
       
        if(RI==1)
        {
                receiveData=SBUF;
                RI=0;
        }       
        ctrl();
}


IMG20190222141804.jpg (2.95 MB, 下載次數: 114)

IMG20190222141804.jpg

IMG20190222141812.jpg (3.09 MB, 下載次數: 109)

IMG20190222141812.jpg

IMG20190222141815.jpg (2.86 MB, 下載次數: 99)

IMG20190222141815.jpg

IMG20190222141835.jpg (2.75 MB, 下載次數: 90)

IMG20190222141835.jpg

Screenshot_2019-02-22-10-30-13-40.png (138.21 KB, 下載次數: 97)

Screenshot_2019-02-22-10-30-13-40.png

Screenshot_2019-02-22-10-30-25-39.png (160.23 KB, 下載次數: 110)

Screenshot_2019-02-22-10-30-25-39.png
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:164602 發表于 2019-2-23 10:38 | 只看該作者
簡單看了你的程序結構,至少有這樣的問題吧
第一:最大的錯誤,在串口中斷函數中,用了while(1),這樣的結果就是,只要串口中斷一次后,就卡那里了,再次串口中斷,中斷嵌套了,這可不是好現象,結果就不好判斷了。
將 ctrl();寫到主函數中吧。
第二:看不到你的APP程序,你確定它發送的是十六進制數?
第三:你的紅外避障模塊在等于0時為開是吧,就是有手勢的時候,那就要你一直擋住它,手機再遙控才有效哦,只要車一動,你沒擋住,車就不開了——它是不會一直等于0的。

評分

參與人數 1黑幣 +70 收起 理由
admin + 70 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

板凳
ID:476498 發表于 2019-3-1 17:29 | 只看該作者
HC6800-ES-V2.0 發表于 2019-2-23 10:38
簡單看了你的程序結構,至少有這樣的問題吧
第一:最大的錯誤,在串口中斷函數中,用了while(1),這樣的結 ...

while去掉了
但是開關的問題怎么解決/?
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 91精品国产一区二区三区动漫 | 国产精品久久久久久 | 国产视频久久 | 天天操狠狠操 | 成年免费大片黄在线观看岛国 | 亚洲人成网亚洲欧洲无码 | 亚洲第一在线视频 | 精品九九久久 | 久久久久国产精品一区二区 | 天堂一区二区三区 | 亚洲欧美成人在线 | 欧美 日韩 国产 一区 | 97人澡人人添人人爽欧美 | 免费一区 | 做a视频| 亚洲欧美日韩电影 | 日本高清中文字幕 | 成人国产毛片 | 午夜在线视频 | 99福利视频 | 久久成人一区 | 日韩精品一区二区三区在线观看 | 中国一级毛片免费 | 伊人春色成人网 | 少妇淫片aaaaa毛片叫床爽 | 欧美日韩在线播放 | 亚洲精品亚洲人成人网 | 国产一级在线视频 | 国产精品毛片久久久久久 | 操操操日日日 | 羞羞视频在线观看网站 | 一区二区影视 | 日韩成人av在线 | 亚洲 欧美 日韩在线 | 一区二区三区中文字幕 | 国产精品久久久久aaaa九色 | 97久久精品 | 黄色一级免费 | 黄色大片免费播放 | 久久久久无码国产精品一区 | 欧美在线视频网站 |