找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

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

新手必看(STC89C52)單片機(jī)尋跡避障藍(lán)牙四輪小車(chē)的簡(jiǎn)單實(shí)現(xiàn)

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:494288 發(fā)表于 2019-7-20 09:47 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式

一、 關(guān)于材料的選擇           

      
     1.L289驅(qū)動(dòng)電機(jī)x2
     2.1.5V電池(可以買(mǎi)充電電池,我用了幾十個(gè)電池了。。。┪沂怯8節(jié)1.5v構(gòu)成12v電池單獨(dú)給4個(gè)電機(jī)供電,另外3節(jié)1.5v給單片機(jī)供電,4.5v與           5v差不多。
     3.底板加4馬達(dá)(電機(jī))。
     4.有條件可以用電鉆(我是在各個(gè)店單獨(dú)購(gòu)買(mǎi)的,所以底板孔與器件孔不搭配,自己鉆的)
     5.若干杜邦線(xiàn),公對(duì)公 母對(duì)母 公對(duì)母都買(mǎi)X3應(yīng)該足夠了,最短就好了不需要那么長(zhǎng),但是有錢(qián)可以買(mǎi)X1
     6.淘寶上的板子STC89C52,有各種現(xiàn)成的接口,適合新手學(xué)習(xí),學(xué)習(xí)過(guò)后可以自己焊板子。
     7.4個(gè)紅外避障模塊,2個(gè)尋跡模塊,一個(gè)藍(lán)牙模塊。
     8.手機(jī)商城下個(gè)藍(lán)牙串口來(lái)操作控制。
二、關(guān)于環(huán)境
     1.我用的 keil4 (能夠編譯查看代碼是否正確。)
     2.下載stc-isp來(lái)燒程序(先斷單片機(jī)電 然后燒 再開(kāi)電,不然燒不起吧。)
     3.燒的程序名后綴是.Hex。
     4.usb-單片機(jī)線(xiàn)一根,我的是淘寶送的。
三、關(guān)于一些細(xì)節(jié)
     1.我用的是H橋來(lái)控制電機(jī),比較普遍。
     2.因?yàn)槲业男≤?chē)電機(jī)是單獨(dú)供電的,所以地線(xiàn)(12v的負(fù)極)要接在單片機(jī)的地線(xiàn)接口上!!
     3.杜邦線(xiàn)與線(xiàn)接口要處理好確保通電。
四、部分代碼
sbit IN2 = P0^1;
sbit IN3 = P0^2;
sbit IN4 = P0^3;
sbit IN5 = P0^4;
sbit IN6 = P0^5;
sbit IN7 = P0^6;
sbit IN8 = P0^7;
                  

sbit Left_bizhang = P3^0;
sbit Right_bizhang = P3^1;
sbit Left_led=P3^2;
sbit Right_led=P3^3;

unsigned char pwm_val =0;
unsigned char push_val =0;

void delay(unsigned int k)
{
      unsigned int x,y;
          for(x=0;x<k;x++)
          {
             for(y=0;y<2000;y++);
           }
}

void run(void)
{
      push_val=3;
IN1=0;
IN2=1;        
IN3=0;
IN4=1;
IN5=1;        
IN6=0;
IN7=1;
IN8=0;        
}

void backrun(void)
{
IN1=1;
IN2=0;
IN3=1;
IN4=0;
IN5=0;
IN6=1;
IN7=0;
IN8=1;
}

void leftrun(void)
{
      IN1=0;
IN2=0;
IN3=1;
IN4=0;
IN5=0;
IN6=1;
IN7=0;
IN8=0;
}
void rightrun(void)
{
     IN1=1;
IN2=0;
IN3=0;
IN4=0;
IN5=0;
IN6=0;
IN7=0;
IN8=1;
}
void stop(void)
{
IN1=0;
IN2=0;
IN3=0;
IN4=0;
IN5=0;
IN6=0;
IN7=0;
IN8=0;
}
void Che_init()
{
      P1=0x00;
          TMOD=0x01;
          TH0=0xFC;
          TH0=0x18;
          TR0=1;
          EA=1;
}
void UART_INIT()
{
        SM0 = 0;
        SM1 = 1;//串口工作方式1
        REN = 1;//允許串口接收
        EA = 1;//開(kāi)總中斷
        ES = 1;//開(kāi)串口中斷
        TMOD = 0x20;//8位自動(dòng)重裝模式
        TH1 = 0xfd;
        TL1 = 0xfd;//9600波特率
        TR1 = 1;//啟動(dòng)定時(shí)器1
}

void xunji(){

       while(1){
                        if(Left_led==1&&Right_led==1)
                {
                        ET0=1;
                        run();
                }
                else
                {
                        if(Left_led==0&&Right_led==1)
                        {
                                    IN1=0;
                                       
IN2=0;
IN3=0;
IN4=1;
IN5=1;
IN6=0;
IN7=0;
IN8=0;
                        }
                        if(Right_led==0&&Left_led==1)
                        {
                        
                                     IN1=0;
IN2=1;
IN3=0;
IN4=0;
IN5=0;
IN6=0;
IN7=1;
IN8=0;
                        }
                        
                }
                }
}
void bizhang(){

                  while(1)
        {
                run();
               
                 if(Left_bizhang==1&&Right_bizhang==1)
                 {
                         run();

                 }
                 else

                 {
                         if(Left_bizhang==1&&Right_bizhang==0)
                         {

                                 backrun();
                                 delay(50);
                                 leftrun();
                                delay(100);
                         }
                         if(Left_bizhang==0&&Right_bizhang==1)
                         {
                                 backrun();
                                 delay(50);
                                 rightrun();
                                delay(100);
                         }
                 }
        
        }
}
篇幅有限,完整代碼請(qǐng)下載附件!!!!!!如下
尋跡避障藍(lán)牙4輪小車(chē)代碼.zip (1.26 KB, 下載次數(shù): 115)
我的小車(chē)詳細(xì)的材料如下
小車(chē)的材料和實(shí)物圖詳解.zip (1.33 MB, 下載次數(shù): 66)
藍(lán)牙串口APP和燒錄工具使用 (藍(lán)牙串口請(qǐng)下載在手機(jī)上使用)如下
燒程序工具和藍(lán)牙串口及使用.zip (6.76 MB, 下載次數(shù): 57)


可能不夠完善,請(qǐng)批評(píng)指正謝謝!


評(píng)分

參與人數(shù) 2黑幣 +60 收起 理由
ycpiu + 10
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

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

使用道具 舉報(bào)

沙發(fā)
ID:654439 發(fā)表于 2019-12-2 17:07 | 只看該作者
我想問(wèn)一下進(jìn)入定時(shí)器中斷0和1之后怎么跳回主函數(shù)啊。。。
回復(fù)

使用道具 舉報(bào)

板凳
ID:642752 發(fā)表于 2019-12-2 20:25 | 只看該作者
每句后面有備注的話(huà),就更好了。
回復(fù)

使用道具 舉報(bào)

地板
ID:810687 發(fā)表于 2020-8-2 23:06 | 只看該作者
資料很好,值得安利
回復(fù)

使用道具 舉報(bào)

5#
ID:526281 發(fā)表于 2020-10-30 08:24 來(lái)自手機(jī) | 只看該作者
碎夢(mèng)如煙丶 發(fā)表于 2019-12-2 17:07
我想問(wèn)一下進(jìn)入定時(shí)器中斷0和1之后怎么跳回主函數(shù)啊。。。

如果是C程序的話(huà),會(huì)自動(dòng)返回(類(lèi)似于跳出子程序);如果是匯編程序的話(huà),讀到“RETI”會(huì)返回
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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