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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1752|回復: 2
打印 上一主題 下一主題
收起左側

單片機舵機轉動超聲波測距程序 為啥我加入超聲波測距舵機就不轉了 求幫助

[復制鏈接]
跳轉到指定樓層
樓主
ID:501937 發表于 2019-5-7 20:24 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  1.     #include<reg51.h>
  2.     #include<intrins.h>


  3.     #define uchar unsigned char
  4.     #define uint unsigned int
  5.            uchar num=0,sun;
  6.          uchar shi,ge,bai;
  7.          int jia=0;
  8.          
  9.          unsigned long  int s=0;
  10.                  void delay(uint max)
  11.        {
  12.            int x,y;
  13.             for(x=0;x<max;x++)
  14.                    for(y=0;y<500;y++);
  15.        }
  16.          int cade[]={1,8,18};
  17.     sbit RS=P2^6;
  18.     sbit RW=P2^5;  
  19.     sbit E=P2^7;  
  20.           sbit trig=P2^1;
  21.         sbit echo=P2^2;
  22.            sbit pwm=P2^0;

  23.         void start()
  24.         {
  25.          trig=1;
  26.          _nop_();
  27.          _nop_();
  28.          _nop_();
  29.          _nop_();
  30.          _nop_();
  31.          _nop_();
  32.          _nop_();
  33.          _nop_();
  34.          _nop_();
  35.          _nop_();
  36.          _nop_();
  37.          _nop_();
  38.          trig=0;
  39.         }

  40.         




  41.     uchar Lcd1602_ReadBusy()  
  42.     {
  43.        uchar temp;
  44.        RS=0;
  45.        RW=1;
  46.        _nop_();
  47.        P0=0xff;               


  48.        _nop_();
  49.        E=1;
  50.        _nop_();
  51.        temp=P0;   
  52.        _nop_();
  53.        E=0;
  54.        return (temp&0x80);

  55.     }


  56.     void Lcd1602_WriteCom(uchar com)
  57.     {
  58.        while(Lcd1602_ReadBusy());
  59.        RS=0;
  60.        RW=0;  
  61.        _nop_();
  62.        P0=com;  
  63.        _nop_();
  64.        E=1;     
  65.        _nop_();
  66.        _nop_();
  67.        E=0;      
  68.        _nop_();
  69.        _nop_();   
  70.     }

  71.     void Lcd1602_WriteData(uchar dat)
  72.     {
  73.        while(Lcd1602_ReadBusy());   
  74.        RS=1;   
  75.        RW=0;  
  76.        _nop_();
  77.        P0=dat;
  78.        _nop_();
  79.        E=1;
  80.        _nop_();
  81.        _nop_();
  82.        E=0;
  83.        _nop_();
  84.        _nop_();   
  85.     }

  86.     void Lcd1602_init()
  87.     {
  88.        delay(15);
  89.        Lcd1602_WriteCom(0x38);  
  90.        delay(5);
  91.        Lcd1602_WriteCom(0x38);
  92.        delay(5);
  93.        Lcd1602_WriteCom(0x38);
  94.        Lcd1602_WriteCom(0x0c);  
  95.        Lcd1602_WriteCom(0x01);
  96.        Lcd1602_WriteCom(0x06);
  97.     }



  98.          void  count()
  99.          {
  100.         
  101.                  TMOD=0x01;
  102.                  ET0=1;
  103.                  EA=1;
  104.                  TL0=0;
  105.                  TH0=0;
  106.                  start();
  107.                  while(!echo);
  108.                  TR0=1;
  109.                  while(echo);
  110.                  TR0=0;
  111.                  s=TH0*256+TL0+jia;
  112.                  jia=0;
  113.                  s=s*0.017*12/11;
  114.                  Lcd1602_init();
  115.                  bai=s/100;
  116.                  shi=s/10%10;
  117.                  ge=s%10%10;
  118.                  Lcd1602_WriteCom(0x80+0x02);
  119.                  Lcd1602_WriteData(0x30+bai);
  120.                  Lcd1602_WriteData(0x30+shi);
  121.                  Lcd1602_WriteData(0x30+ge);

  122.         
  123.          }
  124.          void T1_time()interrupt 3
  125.          {
  126.          jia=jia+65536;
  127.          TH0=0;
  128.          TL0=0;
  129.          }
  130.           void duoji(uint i)

  131.           {
  132.          
  133.           TMOD=0X11;
  134.           TH0=(65536-100)/256;
  135.           TR0=(65536-100)%256;
  136.           EA=1;
  137.           ET0=1;
  138.           TR0=1;
  139.                  sun=cade[i];
  140.         

  141.          }
  142.             void T0_time()interrupt 1
  143.                   {
  144.                                      TH0=(65536-100)/256;
  145.                                          TL0=(65536-100)%256;
  146.                                            num++;
  147.                                               if(num==50)  num=0;
  148.                                                             if(num>sun) pwm=0;
  149.                                                                  else  pwm=1;
  150.                                                                  }

  151.                   void main()
  152.                   {
  153.                   duoji(0);
  154.                   delay(100);
  155.         
  156.                   duoji(1);
  157.                   delay(100);
  158.                   count();
  159.                
  160.                   
  161.                   duoji(2);
  162.                   delay(100);
  163.                   }
復制代碼



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

使用道具 舉報

沙發
ID:630001 發表于 2019-11-3 12:44 | 只看該作者
補下電路圖
回復

使用道具 舉報

板凳
ID:630001 發表于 2019-11-3 13:03 | 只看該作者
你舵機TMOD為0x11,超聲波為0x01,先舵機設置,后超聲波,TMOD數值改了
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: www.日本在线播放 | 精品欧美一区二区三区久久久 | 国产色99精品9i | 久久99视频精品 | 手机看片169 | 中文字幕免费视频 | 国产精品免费一区二区三区四区 | 国产一区二区在线视频 | 福利视频二区 | 综合久久av| 日本亚洲精品成人欧美一区 | 久久国产精品-国产精品 | 中文欧美日韩 | 中文在线一区二区 | 中文字幕在线人 | 日韩中文字幕一区 | 伊人久久综合 | 国产精品一区三区 | 在线欧美日韩 | 久久综合久 | 人人干超碰 | 欧美一级在线视频 | 天天爽夜夜爽精品视频婷婷 | 午夜精品视频一区 | 国产中文字幕在线观看 | 日韩欧美电影在线 | 一区二区中文 | 天天久久 | 久久草视频 | 日韩精品在线看 | 日韩欧美精品在线 | 国产精品自产拍 | 色婷婷在线视频 | 欧美夜夜 | 亚洲性视频网站 | 国产成人精品区一区二区不卡 | 九九热最新地址 | 一级毛片在线播放 | 欧美日韩在线一区二区 | 黄色免费观看网站 | 国产色99精品9i |