找回密码
 立即注册

QQ登录

只需一步,快速开始

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

刚刚学了一个月51单片机,做了个超声波小车(舵机控制)还望各位指点

[复制链接]
跳转到指定楼层
楼主
另含舵机测试程序,l298n驱动电机程序
程序写得不是很好,还希望各位高手多多指点


实在是没弄懂该怎么发程序。。。只好截图了。。。

单片机源程序如下:
  1. #include<reg52.h>
  2. #include<intrins.h>

  3. sbit duojip=P1^2;                  //舵机输出接口

  4. sbit trig=P1^0;                          //触发脚
  5. sbit echo=P1^1;                          //接受脚

  6. unsigned int dis;         //测算出的距离
  7. unsigned char duojiCNT;
  8. unsigned char duojiJD;

  9. void open();           //打开超声波函数
  10. void jisuan();         //计算距离函数

  11. void main()
  12. {
  13.    unsigned int a = 20000;
  14.    TMOD=0X11;                                               
  15.    TR0=1;                          //打开定时器0,1,打开中断,并定时0.5ms
  16.    EA=1;
  17.    ET0=1;
  18.    TH0=0XFE;
  19.    TL0=0X33;
  20.    while(1)
  21.    {  
  22.      if(dis<=8)
  23.         {
  24.       duojiJD=1;
  25.           duojiCNT=0;
  26.           for(a=20000;a>0;a--);
  27.           for(a=20000;a>0;a--);
  28.           open();
  29.           jisuan();
  30.                                                        //{如果距离大于8,前进,并每隔一个for循环开启一次超声波,                                                                                                                                                                                                 
  31.                                                                //如果距离小于8,舵机转到0度//{如果0度处距离大于8,舵机归中,并前进                        {距离小于8,舵机归中,后退       
  32.                   if(dis>=8)                                                                                        //{如果0度处距离小于8,舵机转到180度,开启超声波{距离大于8,归中
  33.                   {
  34.                    duojiJD=3;      //舵机归中
  35.                    duojiCNT=0;
  36.                    for(a=20000;a>0;a--);
  37.                    for(a=20000;a>0;a--);
  38.                    }
  39.                    else
  40.                    {
  41.                    duojiJD=5;      //舵机转到180度
  42.                    duojiCNT=0;
  43.                    for(a=20000;a>0;a--);         
  44.                    for(a=20000;a>0;a--);
  45.                    for(a=20000;a>0;a--);
  46.                    open();
  47.                    jisuan();
  48.                       if(dis>=8)
  49.                           {
  50.                            duojiJD=3;
  51.                        duojiCNT=0;
  52.                            }
  53.                            else
  54.                            {
  55.                            duojiJD=5;
  56.                            duojiCNT=0;
  57.                            for(a=20000;a>0;a--);
  58.                        for(a=20000;a>0;a--);
  59.                        for(a=20000;a>0;a--);
  60.                            }
  61.                    }
  62.                 }
  63.         else
  64.         {
  65.          duojiJD=3;
  66.          duojiCNT=0;
  67.          open();
  68.          jisuan();
  69.          for(a=20000;a>0;a--);
  70.          }
  71.    }
  72. }

  73. void open()
  74. {
  75.   trig=1;
  76.   _nop_();
  77.   _nop_();
  78.   _nop_();
  79.   _nop_();
  80.   _nop_();
  81.   _nop_();
  82.   _nop_();
  83.   _nop_();
  84.   _nop_();
  85.   _nop_();
  86.   _nop_();
  87.   _nop_();
  88.   trig=0;
  89. }

  90. void jisuan()
  91. {
  92.    unsigned int t;
  93.    TH1=0;
  94.    TL1=0;
  95.    while(!echo);
  96.    TR1=1;
  97.    while(echo);
  98.    TR1=0;
  99.    t=TL1+TH1*255;
  100.    dis=(t*1.7)/100;
  101. }

  102. void timer() interrupt 1
  103. {
  104.    TH0=0XFE;
  105.    TL0=0X33;
  106.    if(duojiCNT<duojiJD)
  107.    {
  108.      duojip=1;
  109.          }
  110.         else
  111.         {
  112.          duojip=0;
  113.          }
  114.    duojiCNT++;
  115.    duojiCNT=duojiCNT%40;                        //每20ms duojiCNT归零
  116. }  
复制代码

所有资料51hei提供下载:
舵机测试,电机测试,超声波小车程序.rar (85.41 KB, 下载次数: 49)


评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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