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

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

QQ登錄

只需一步,快速開始

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

我寫了一個(gè)關(guān)于51單片機(jī)控制舵機(jī)的垃圾桶程序,諸位大佬幫幫忙看看哪里有什么漏洞嗎

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:760058 發(fā)表于 2020-9-4 19:19 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
#include <reg52.h>
#include <stdio.h>
#include <intrins.h>
#define  uchar unsigned char
#define  uint  unsigned int

sbit Trig = P3^4;    //超聲波控制端
sbit Echo = P3^5;   //超聲波接收端
sbit led  =  P1^0;   //指示燈
sbit led1 = P3^2;   //紅外感應(yīng)
sbit beep = P2^3;        //蜂鳴器
sbit servorControl = P1^3;  //舵機(jī)的控制引腳
uchar flag = 0;
uchar control  = 0;  //舵機(jī)控制變量
uchar servorTime =0;
unsigned char T0RH =0;
unsigned char T0RL =0;
void delay (unsigned int z)//毫秒級(jí)延時(shí)
{
unsigned int x,y;
for(x = z; x > 0; x--)
  for(y = 114; y > 0 ; y--);
}
//初始化定時(shí)器
void Delay_us(unsigned char t)
{
while(--t);
}  //大約延時(shí)t*2+5us  超聲波模塊用
void timer0() interrupt 1
  {
TH0 = 0;
TL0 = 0;
}

//中斷程序初始化賦值 重新計(jì)數(shù) 超聲波模塊用 計(jì)算時(shí)間
//void time_init()
//{
// TMOD |= 0x01;
// TH0 = 0;
// TL0 = 0;   
// TR0 = 1;     //啟動(dòng)定時(shí)器0
// ET0 = 1;     //允許定時(shí)器0中斷
// EA = 1;     
//}
void time_init()
{
EA  = 1;     //總中斷允許
TMOD= 0x11;  //8位自動(dòng)重裝模塊
TH0 = 0;
TL0 = 0;     //11.0592M晶振下占空比最大比值是256,輸出100HZ
}
void main()
{
  unsigned int time,distance;
EA  = 1;
  ET0 = 1;
  ET1 = 1;
  TMOD=0x11;
  TH1 =0xff;
  TL1 =0x9c;
  servorTime = 0;
  
Trig = 0;
Echo = 0;   //超聲波脈沖
time_init();
  while(1)
{
  Trig = 1;
  Delay_us (5);
  Trig = 0;
  while (Echo == 0);
  TR0  = 1;
  while (Echo);
  TR0  = 0;
  time = TH0*256+TL0;
  distance = (int)(time*0.017);  //計(jì)算路程 單位為cm
  TH0 = 0;
  TL0 = 0;
   if (led1 == 0) //紅外 檢測(cè)到雜物
  {
   led = 0;       //指示燈閃亮
       delay(50);  
   led = 1;
    delay(100);
   control = 0;   //舵機(jī)不轉(zhuǎn)動(dòng)
   servorTime = 0;
   TR1 = 0;
   delay (200);
   delay (200);
   TR1 = 1;
   delay (200);
   delay (200);
   if(led1 == 1)
    led = 1;
  }
    else
   {
    if(distance>=40 && led1==1)
    {
    beep = 1;
    control = 20;    //使舵機(jī)向右擺動(dòng)
    servorTime =0;
    TR1 = 1;
    delay(200);
    delay(200);
    TR1 = 0;
    delay(200);
    delay(200);
    }  
    if(distance<40 && led1==1)  //如果距離小于40cm 蜂鳴器響
    {
        
    control = 5;   //使舵機(jī)向左擺動(dòng)
    servorTime =0;
    TR1 = 1;
    delay(200);
    delay(200);
    TR1 = 0;
    delay(200);
    delay(200);
      beep = 0;
     delay (50);
     beep = 1;
     delay (2500);
   }
  }
}
}

void T1_int (void ) interrupt 3   //產(chǎn)生舵機(jī)所需要的脈沖
  {  
  TH1 = 0xff;
  TL1 = 0x9c;
  servorTime++;
  if(servorTime <= control)
   servorControl = 1;
  else
   servorControl = 0;
   if(servorTime >= 200)
   servorTime=0;
  }
  
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:473004 發(fā)表于 2020-9-5 19:01 | 只看該作者
燒錄后是什么問題,舵機(jī)沒反應(yīng)?
回復(fù)

使用道具 舉報(bào)

板凳
ID:584814 發(fā)表于 2020-9-5 19:04 | 只看該作者
沒有任何漏洞。因?yàn)椴恢肋@個(gè)是做什么的,就是算指出問題也可能有意為之。
回復(fù)

使用道具 舉報(bào)

地板
ID:760058 發(fā)表于 2020-9-7 01:12 | 只看該作者
1025432523 發(fā)表于 2020-9-5 19:01
燒錄后是什么問題,舵機(jī)沒反應(yīng)?

這個(gè)燒錄后時(shí)好時(shí)壞的,很尷尬,上面寫的程序中,當(dāng)紅外傳感器感應(yīng)到雜物的時(shí)候舵機(jī)應(yīng)該不動(dòng)的,可是有的時(shí)候也會(huì)動(dòng),很煩惱的。大佬啊,幫幫我看看吧
回復(fù)

使用道具 舉報(bào)

5#
ID:760058 發(fā)表于 2020-9-7 01:13 | 只看該作者
man1234567 發(fā)表于 2020-9-5 19:04
沒有任何漏洞。因?yàn)椴恢肋@個(gè)是做什么的,就是算指出問題也可能有意為之。

那我想請(qǐng)教一下,怎么樣才能讓蜂鳴器只響一聲就停,就是舵機(jī)運(yùn)動(dòng)一次,蜂鳴器響一聲
回復(fù)

使用道具 舉報(bào)

6#
ID:511890 發(fā)表于 2020-9-7 02:22 | 只看該作者
這個(gè)應(yīng)該是燈亮滅的過程中和脈沖發(fā)生中斷產(chǎn)生沖突的原因。把舵機(jī)控制放到第一位。然后再去亮滅燈和其它的。修改程序如下:
   while(1)
{
   Trig = 1;
   Delay_us (5);
   Trig = 0;
   while (Echo == 0);
   TR0  = 1;
   while (Echo);
   TR0  = 0;
   time = TH0*256+TL0;
   distance = (int)(time*0.017);  //計(jì)算路程 單位為cm
   TH0 = 0;
   TL0 = 0;
    if (led1 == 0) //紅外 檢測(cè)到雜物
  {
   servorTime = 0;
    control = 0;   //舵機(jī)不轉(zhuǎn)動(dòng)
    led = 0;       //指示燈閃亮
       delay(50);  //這三行注釋掉,改成檢測(cè)到有雜物燈常亮,判斷下紅外檢測(cè)是否正常。
    led = 1;   //這三行注釋掉,改成檢測(cè)到有雜物燈常亮,判斷下紅外檢測(cè)是否正常。
     delay(100);//這三行注釋掉,改成檢測(cè)到有雜物燈常亮,判斷下紅外檢測(cè)是否正常。
    TR1 = 0;
    delay (200);
    delay (200);
    TR1 = 1;
    delay (200);
    delay (200);
    if(led1 == 1)
     led = 1;
   }
     else
    {
     if(distance>=40 && led1==1)
     {
    servorTime =0;
     control = 20;    //使舵機(jī)向右擺動(dòng)
     beep = 1;
     TR1 = 1;
     delay(200);
     delay(200);
     TR1 = 0;
     delay(200);
     delay(200);
     }  
     if(distance<40 && led1==1)  //如果距離小于40cm 蜂鳴器響
    {
         
     control = 5;   //使舵機(jī)向左擺動(dòng)
    servorTime =0;
     TR1 = 1;
     delay(200);
     delay(200);
     TR1 = 0;
     delay(200);
     delay(200);
       beep = 0;
      delay (50);
      beep = 1;
      delay (2500);
    }
   }
}
如果還是不行,那要看看紅外是否出問題了。把紅外檢測(cè)到雜物燈閃改成常量檢查下紅外感應(yīng)是否出問題。

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

7#
ID:816586 發(fā)表于 2020-9-7 08:43 | 只看該作者
燒錄后是什么問題,舵機(jī)沒反應(yīng)?
回復(fù)

使用道具 舉報(bào)

8#
ID:760058 發(fā)表于 2020-9-10 19:26 | 只看該作者
幻劍心 發(fā)表于 2020-9-7 02:22
這個(gè)應(yīng)該是燈亮滅的過程中和脈沖發(fā)生中斷產(chǎn)生沖突的原因。把舵機(jī)控制放到第一位。然后再去亮滅燈和其它的。 ...

好的,謝謝啦,情況我已經(jīng)解決了,哈哈,感謝感謝。
回復(fù)

使用道具 舉報(bào)

9#
ID:760058 發(fā)表于 2020-9-10 19:27 | 只看該作者
圖銳工程 發(fā)表于 2020-9-7 08:43
燒錄后是什么問題,舵機(jī)沒反應(yīng)?

情況已經(jīng)解決,感謝少俠。
回復(fù)

使用道具 舉報(bào)

10#
ID:1036122 發(fā)表于 2022-6-21 15:32 | 只看該作者
可以求這個(gè)垃圾桶的所有資料嘛,包括實(shí)物圖,pcb圖等
回復(fù)

使用道具 舉報(bào)

11#
ID:760058 發(fā)表于 2022-10-5 22:35 | 只看該作者
1205200383 發(fā)表于 2022-6-21 15:32
可以求這個(gè)垃圾桶的所有資料嘛,包括實(shí)物圖,pcb圖等

這個(gè)垃圾桶我沒做PCB板子,就按照這個(gè)程序搭建了一個(gè)硬件電路,就是做著玩玩的
回復(fù)

使用道具 舉報(bào)

12#
ID:879348 發(fā)表于 2022-10-6 13:33 | 只看該作者
沒有實(shí)物談何漏洞
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 一道本在线 | 欧美在线观看一区 | 亚洲美女在线视频 | 欧美日韩综合精品 | 免费国产一区二区 | 密色视频 | 日韩福利在线 | 欧美99| 日韩高清一区 | 欧美日韩精品亚洲 | 日本 欧美 国产 | 欧美日韩高清在线一区 | 欧美日韩亚洲国产 | 成人二区 | 福利视频一区二区 | 亚洲精品在线免费 | 国产精品一区二区不卡 | 国产欧美一区二区三区在线看 | 亚洲国产精久久久久久久 | 免费视频一区二区 | www.日韩欧美 | www.av在线 | 久久成人一区 | 精品自拍视频 | 国产精品国产三级国产aⅴ入口 | 久久亚洲春色中文字幕久久久 | 五月婷婷视频 | 欧美一级二级视频 | 国产激情 | 久久五月婷 | 精品视频在线免费观看 | 欧美激情久久久 | 国产一级大片 | 99亚洲国产精品 | 亚洲va国产日韩欧美精品色婷婷 | 国内精品视频免费观看 | 一区二区三区欧美 | 久国久产久精永久网页 | 青青草网站在线观看 | 九九热精品视频 | 91精品国产一区二区三区 |