找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2656|回复: 3
打印 上一主题 下一主题
收起左侧

用超声波模块制作小车,通过pwm调速程序

[复制链接]
跳转到指定楼层
楼主
ID:80321 发表于 2015-10-27 22:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<AT89X52.h>
#define uint unsigned int
#define uchar unsigned char
        sbit Trig=P3^2;
        sbit Echo=P3^4;
        sbit s1=P1^4;
        sbit s2=P1^5;
        sbit s3=P1^6;
        sbit s4=P1^7;
        sbit dianji01=P0^0;
        sbit dianji02=P0^1;
        sbit dianji03=P0^2;
        sbit dianji04=P0^3;
        sbit  ENA=P0^4;
        sbit  ENB=P0^5;
        int  S=0,c,N;
        int pwm1=16,pwm2=16;
        int flag;
        void delay(uint i)
{
         uchar j;
         while(i--)
         for(j=0;j<120;j++);
            
}
void keyscan01()
{
     if(s1==0)
                 {
       delay(50);
                         if(s1==0)
                         {

                                if(pwm1<32)
                                {
                                        pwm1++;

                                }
                        }
                }
               
     if(s2==0)
                 {
       delay(50);
                         if(s2==0)
                         {

                                if(pwm1>1)
                                {
                                        pwm1--;

                                }
                        }
                }
          if(pwm1>flag)
                {
     dianji01=1;
                }
                else
                 {
                        dianji01=0;
                        }
               
               
}
void keyscan02()
{
if(s3==0)
                 {
       delay(50);
                         if(s3==0)
                         {

                                if(pwm2<32)
                                {
                                        pwm2++;
                                }
                        }
                }
               
     if(s4==0)
                 {
       delay(50);
                         if(s4==0)
                         {

                                if(pwm2>1)
                                {
                                        pwm2--;

                                }
                        }
                }
                if(flag<pwm2)
                {

      dianji02=1;

                }
                else
                        {
                  dianji02=0;
                  }
}
void init()
{
        // ET0=1;
                 ET1=1;
                 EA=1;
                 TH1=0XFE;
                 TL1=0X00;
                 TR1=1;
}
        void main()
        {         
               
                 int i=4;
                 int Time,time;
                 int LED[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
                 ENA=1;
                 ENB=1;
                 dianji01=1;
                 dianji02=0;
                 dianji03=1;
                 dianji04=0;
                 TMOD&=0xF0;                   
                 TMOD|=0x01;
                 TMOD=0X01;
           init();
        while(1)
        {
               
                Trig=1;
                 i=10;
                 while(i--);       
                 Trig=0;
                 TH0=0;
                 TL0=0;
                 time=0;
                 while(Echo==0&&(time++<50000));
                 TR0=1;
                 time=0;       
                 while(Echo==1&&(time++<50000));
                        TR0=0;
                 Time=TH0*256+TL0;
                        S=Time/58;
                if(S>5&&S<20)
                {
       dianji01=0;
                         delay(50);
                        if(S>5&&S<20)
                         dianji01=0;
                          delay(50);
                        dianji01=1;
                }
                  
        }
        keyscan01();
        keyscan02();
}
void interrupr() interrupt 3
{
                 TR1=0;
           TH1=0XFE;
                 TL1=0X00;
           TR1=1;
           flag++;
          if(flag>32)
          {
      flag=0;
    }

}


评分

参与人数 2黑币 +60 收起 理由
dww465757120 + 10 赞一个!
admin + 50

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:93852 发表于 2015-10-28 12:44 | 只看该作者
好啊,不错,不错
回复

使用道具 举报

板凳
ID:103094 发表于 2016-1-14 13:19 | 只看该作者
还不错
回复

使用道具 举报

地板
ID:449368 发表于 2018-12-21 21:03 | 只看该作者
请问楼主   你这个程序是四轮驱动的么
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表