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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

循跡小車程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:83710 發(fā)表于 2015-6-23 23:53 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
#include<reg52.h>

#define uchar unsigned char
#define uint unsigned int
sbit IN1=P2^0;  
sbit ENA=P2^1;
sbit IN2=P2^2;                       
sbit IN4=P2^3;
sbit ENB=P2^4;
sbit IN3=P2^5;
                                                                                                         

sbit hw1=P1^0;          
sbit hw2=P1^1;
sbit hw3=P1^2;
sbit hw4=P1^3;
               
uchar PWM1=0 ;    //**右邊電機(jī)的占空比**//
uchar PWM2=0 ;    //**左邊電機(jī)的占空比**//
uchar num=0;        //**定時器中斷計(jì)數(shù)器**//
uchar flag;
void init()
{
    TMOD=0x01;
        TH0=(65536-50)/256;
        TL0=(65536-50)%256;
        EA=1;
        ET0=1;
        TR0=1;

        IN1=0;
        IN2=0;
        IN3=0;
        IN4=0;
}


void main()
{
     init();

         while(1)
         {
                 if(hw1||hw2||hw3||hw4)//如果檢測到信號
                    {
                             if(hw1&&hw2&&hw3&&hw4)
                                 {
                                     ENA=0;
                                         ENB=0;
                                 }
                                 if(hw1&&!hw2&&!hw3&&!hw4)
                                         {
                                                 IN1=1;
                                                 IN2=0;
                                                 IN3=1;
                                                 IN4=0;
                                                 PWM1=0;
                                                 PWM2=15;
                                                 flag=1;
                                         }
                                 if(!hw1&&hw2&&!hw3&&!hw4)
                                         {
                                             IN1=1;
                                                 IN2=0;
                                                 IN3=1;
                                                 IN4=0;
                                                 PWM1=0;
                                                 PWM2=13;
                                                 flag=2;
                                         }
                                 if(!hw1&&!hw2&&hw3&&!hw4)
                                         {
                                            IN1=1;
                                            IN2=0;
                                            IN3=1;
                                                IN4=0;
                                                PWM1=13;
                                                PWM2=0;
                                                flag=3;
                                         }
                                 if(!hw1&&!hw2&&!hw3&&hw4)
                                         {
                                             IN1=1;
                                                 IN2=0;
                                                 IN3=1;
                                                 IN4=0;
                                                 PWM1=15;
                                                 PWM2=0;
                                                 flag=4;
                                         }
                        }
                 else  //如果檢測不到信號
                   {
                       switch(flag)
                           {
                              case 1:                         
                                        {
//                                                            IN1=1;
//                                                         IN2=0;
//                                                         IN3=1;
//                                                         IN4=0;
//                                                         PWM1=10;
//                                                         PWM2=5;
                                                 IN1=0;
                                                 IN2=1;
                                                 IN3=1;
                                                 IN4=0;
                                                 PWM1=12;
                                                 PWM2=12;
                                                         //flag=0;
                                                }        break;

                                               
                              case 2:
                                        {
                                                            IN1=1;
                                                         IN2=0;
                                                         IN3=1;
                                                         IN4=0;
                                                         PWM1=8;
                                                         PWM2=8;
                                                         flag=0;
                                                }         break;
                                               
                              case 3:
                                        {
                                                            IN1=1;
                                                         IN2=0;
                                                         IN3=1;
                                                         IN4=0;
                                                         PWM1=8;
                                                         PWM2=8;
                                                         flag=0;
                                                }        break;

                                               
                              case 4:
                                        {
                                                 IN1=1;
                                                 IN2=0;
                                                 IN3=0;
                                                 IN4=1;
                                                 PWM1=12;
                                                 PWM2=12;
                                                        // flag=0;
                                                }          break;

                                               
                              default:
                                        {
                                                            IN1=1;
                                                         IN2=0;
                                                         IN3=1;
                                                         IN4=0;
                                                         PWM1=12;
                                                         PWM2=12;
                                                }
                           }
                   }

         }          
}

void timer0() interrupt 1
{
     TH0=(65536-50)/256;
         TL0=(65536-50)%256;
         num++;
         if(num>=40)num=0;
         if(num<PWM1)ENA=1;
         else ENA=0;
         if(num<PWM2)ENB=1;
         else ENB=0;

}


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

使用道具 舉報(bào)

沙發(fā)
ID:88399 發(fā)表于 2015-8-15 19:31 | 只看該作者
在做小車,來學(xué)習(xí)~~~~~
回復(fù)

使用道具 舉報(bào)

板凳
ID:142243 發(fā)表于 2016-10-12 21:54 | 只看該作者
新手,不知道怎么接線
回復(fù)

使用道具 舉報(bào)

地板
ID:219135 發(fā)表于 2017-7-12 15:45 | 只看該作者
學(xué)習(xí)學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

5#
ID:228550 發(fā)表于 2017-9-10 18:22 | 只看該作者
未接到信號的由哪幾種情況,可以詳細(xì)說明一下嗎
回復(fù)

使用道具 舉報(bào)

6#
ID:235166 發(fā)表于 2017-9-24 12:49 | 只看該作者
  if(hw1&&hw2&&hw3&&hw4)
                                  {
                                      ENA=0;
                                          ENB=0;
                                  }
                                  if(hw1&&!hw2&&!hw3&&!hw4)
                                          {
                                                  IN1=1;
                                                  IN2=0;
                                                  IN3=1;
                                                  IN4=0;
                                                  PWM1=0;
                                                  PWM2=15;
                                                  flag=1;
                                          }
樓主你好,請問這段可否給我細(xì)講一下,看到這兒就有點(diǎn)不懂了,我正在寫小車PWM程序,萬分感謝。
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

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