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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

51單片機舵機驅動程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:334683 發表于 2018-5-21 10:17 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
51單片機舵機驅動。測試可用

單片機源程序如下:
  1. #include<reg52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int

  4. sbit pwm=P1^1;     //pwm信號輸出

  5. sbit K1=P1^3;                //模式一按鍵
  6. sbit K2=P1^4;                //模式二按鍵
  7. sbit K3=P1^5;                //模式三按鍵
  8. sbit K4=P1^6;                //模式四按鍵

  9. sbit LEDx1=P2^0;
  10. sbit LEDx2=P2^1;
  11. sbit LEDx3=P2^2;
  12. sbit LEDx4=P2^3;
  13. sbit LEDx5=P2^4;
  14. sbit LEDx6=P2^5;
  15. sbit LEDx7=P2^6;
  16. sbit LEDx8=P2^7;
  17. sbit LEDx9=P3^1;
  18. sbit LEDx10=P3^2;
  19. sbit LEDx11=P3^3;
  20. sbit LEDx12=P3^4;
  21. sbit LEDx13=P3^5;
  22. sbit LEDx14=P3^6;
  23. sbit LEDx15=P3^7;

  24. uchar count=0;         //次數標識
  25. uchar jd=120;                   //角度標識

  26. /*=========
  27. ms延時函數                       
  28. ===========*/
  29. void delay(uint x)
  30. {
  31.     uchar i,j;
  32.         for(i=x;i>0;i--)
  33.         for(j=115;j>0;j--);
  34. }

  35. /*==============
  36. 定時器初始化函數
  37. ================*/
  38. void Timer0_init()
  39. {
  40.    TMOD |= 0X01;   //定時器工作方式1
  41.    TH0=(65536-10)/256;           //裝初值
  42.    TL0=(65536-10)%256;
  43.    EA=1;           //開總中斷
  44.    ET0=1;          //開定時器0中斷
  45.    TR0=1;                   //啟動定時器                                                                  
  46. }                                                                                                                          

  47. /*======
  48. 中斷函數
  49. ========*/
  50. void Timer0() interrupt 1
  51. {
  52.               TH0=(65536-10)/256;              //初值       
  53.        TL0=(65536-10)%256;
  54.            if(count<jd)                  //判斷次數是否小于角度標識
  55.            pwm=1;                          //是,pwm輸出高電平                                               
  56.            else
  57.            pwm=0;                          //否,pwm輸出低電平
  58.            count++;                  //次數加1
  59. }

  60. /*===========                                                         
  61. 紅外掃描函數                                                         
  62. =============*/                                  
  63. void LEDscan()
  64. {
  65. //======== X軸為1 ============
  66.          if(LEDx1==0)
  67.      {
  68.             jd=200;
  69.                 delay(10);
  70.                 //jd=120;
  71.                 //delay(5);
  72.          }
  73. //======== X軸為2 ============
  74.             if(LEDx2==0)
  75.      {
  76.             jd=189;
  77.                 delay(5);
  78.          }
  79. //======== X軸為3 ============
  80.             if(LEDx3==0)
  81.      {
  82.             jd=177;
  83.                 delay(5);
  84.           }
  85. //======== X軸為4 ============
  86.          if(LEDx4==0)
  87.      {
  88.             jd=166;       
  89.                 delay(5);
  90.          }
  91. //======== X軸為5 ============
  92.          if(LEDx5==0)
  93.      {
  94.                 jd=154;       
  95.                 delay(5);       
  96.          }
  97. //======== X軸為6 ============
  98.          if(LEDx6==0)
  99.      {
  100.             jd=143;
  101.                 delay(5);
  102.          }
  103. //======== X軸為7 ============
  104.          if(LEDx7==0)
  105.      {
  106.             jd=131;
  107.                 delay(5);
  108.          }
  109. //======== X軸為8 ============
  110.      if(LEDx8==0)
  111.      {
  112.             jd=120;
  113.                 delay(5);
  114.          }
  115. //======== X軸為9 ============
  116.          if(LEDx9==0)
  117.      {               
  118.             jd=110;
  119.                 delay(5);
  120.          }
  121. //======== X軸為10 ============
  122.          if(LEDx10==0)
  123.      {
  124.                 jd=100;
  125.                 delay(5);
  126.          }
  127. //======== X軸為11 ============
  128.          if(LEDx11==0)
  129.      {
  130.             jd=90;
  131.                 delay(5);
  132.          }
  133. //======== X軸為12 ============
  134.          if(LEDx12==0)
  135.      {
  136.             jd=80;
  137.                 delay(5);
  138.          }
  139. //======== X軸為13 ============
  140.          if(LEDx13==0)
  141.      {
  142.             jd=70;
  143.                 delay(1);
  144.          }
  145. //======== X軸為14 ============
  146.          if(LEDx14==0)
  147.      {
  148.             jd=60;
  149.                 delay(1);
  150.          }
  151. //======== X軸為15 ============
  152.          if(LEDx15==0)
  153.      {
  154.             jd=50;
  155.                 delay(1);
  156.          }
  157.   }                 
  158. /*===========                                                         
  159. 按鍵掃描函數                                                         
  160. =============*/
  161. void KEYscan()
  162. {
  163.      if(K1==0)
  164.          {
  165.             delay(10);
  166.                 LEDscan();
  167.             delay(10);
  168.                 jd=60;
  169.                 delay(5);
  170.                 if(LEDx1==0)
  171.                 {
  172.                   jd=50;
  173.                   delay(5);
  174.                 }
  175.                 if(LEDx2==0)
  176.                 {
  177.                   jd=70;
  178.                   delay(5);
  179.                 }
  180.                 if(LEDx3==0)
  181.                 {
  182.                   jd=120;
  183.                   delay(5);
  184.                 }
  185.                 if(LEDx4==0)
  186.                 {
  187.                   jd=100;
  188.                   delay(5);
  189.                 }
  190.                 if(LEDx5==0)
  191.                 {
  192.                   jd=90;
  193.                   delay(5);
  194.                 }
  195.                 if(LEDx6==0)
  196.                 {
  197.                   jd=80;
  198.                   delay(5);
  199.                 }
  200.                 if(LEDx7==0)
  201.                 {
  202.                   jd=70;
  203.                   delay(5);
  204.                 }
  205.                 while(LEDx3==0 && LEDx2==1 && LEDx4==1);
  206.                 delay(1000);
  207.          }
  208.      if(K2==0)
  209.          {
  210.                 jd=200;
  211.                 LEDscan();
  212.          }
  213.          if(K3==0)
  214.          {
  215.             jd=200;
  216.                 delay(1);
  217.         if(LEDx2==0)
  218.                 {
  219.                    jd=165;       
  220.                    delay(5);
  221.                 }
  222.                 if(LEDx3==0)
  223.                 {
  224.                    jd=154;       
  225.                    delay(5);
  226.                 }
  227.                 if(LEDx4==0)
  228.                 {
  229.                    jd=143;       
  230.                    delay(5);
  231.                 }
  232.                 if(LEDx5==0)
  233.                 {
  234.                    jd=135;       
  235.                    delay(5);
  236.                 }
  237.                 if(LEDx6==0)
  238.                 {
  239.                    jd=110;       
  240.                    delay(5);
  241.                 }
  242.                 if(LEDx7==0)
  243.                 {
  244.                    jd=131;       
  245.                    delay(5);
  246.                 }
  247.                 if(LEDx8==0)
  248.                 {
  249.                    jd=120;       
  250.                    delay(5);
  251.                 }
  252.                 if(LEDx9==0)
  253.                 {
  254.                    jd=112;       
  255.                    delay(5);
  256.                 }
  257.                 if(LEDx10==0)
  258.                 {
  259.                    jd=103;       
  260.                    delay(5);
  261.                 }
  262.                 if(LEDx11==0)
  263.                 {
  264.                    jd=95;       
  265.                    delay(5);
  266.                 }
  267.                 if(LEDx12==0)
  268.                 {
  269.                    jd=85;       
  270.                    delay(5);
  271.                 }
  272.                 while(LEDx8==0 && LEDx7==1 && LEDx9==1);
  273.                 delay(3000);
  274.                  LEDscan();
  275.            }
  276.            if(K4==0)
  277.                 {
  278.                    jd=200;
  279.                    delay(5);
  280.                    LEDscan();
  281.                    delay(100);
  282.                    jd=200;
  283.                    delay(5);
  284.                    if(LEDx9==0)
  285.                    {
  286.                        jd=80;
  287.                            delay(5);
  288.                    }
  289.                    if(LEDx10==0)
  290.                    {
  291.                       jd=110;
  292.                           delay(5);
  293.                    }
  294.                   
  295.                    if(LEDx11==0)
  296.                    {
  297.                       jd=133;
  298.                           delay(5);
  299.                    }
  300.                    if(LEDx12==0)
  301.                    {
  302.                       jd=130;
  303.                           delay(5);
  304.                    }
  305.                    if(LEDx13==0)
  306.                    {
  307.                       jd=120;
  308.                           delay(5);
  309.                    }
  310.                    if(LEDx14==0)
  311.                    {
  312.                       jd=100;
  313.                           delay(5);
  314.                    }
  315.                    if(LEDx15==0)
  316.                    {
  317.                       jd=80;
  318.                           delay(5);
  319.                    }
  320.                    while(LEDx13==0&& LEDx14==1 && LEDx12==1);
  321.                    delay(1000);
  322.                 }
  323. }          
  324. /*=====
  325. 主函數
  326. =======*/         
  327. void main()
  328. {  
  329.    Timer0_init();
  330.    while(1)
  331.    {  
  332.           LEDscan();
  333.           KEYscan();
  334.    }
  335. }  
復制代碼

所有資料51hei提供下載:
舵機1.zip (32.87 KB, 下載次數: 23)


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

使用道具 舉報

沙發
ID:335855 發表于 2018-5-22 18:33 | 只看該作者
請問這個舵機控制電路是啥啊
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 自拍偷拍亚洲欧美 | 99精品视频在线观看免费播放 | 久久久久国产精品 | 99reav | 欧洲一区二区三区 | 亚洲欧美国产精品久久 | 国产成人精品999在线观看 | 久久国内| 欧美狠狠操| 久久久精品亚洲 | 福利视频一区 | 国产高潮好爽受不了了夜夜做 | 成人天堂| 91精品国产91久久久久久密臀 | 国产精品毛片一区二区在线看 | 精品视频在线一区 | 精品综合 | 久久久久久久久国产精品 | 综合久久一区 | av资源中文在线天堂 | 九九九视频精品 | 毛片com | 波多野结衣一区二区三区 | 亚洲综合三区 | 91精品国产91久久久久久最新 | 亚洲欧美日韩精品 | 超碰97免费在线 | 日韩欧美三级在线 | 中文字幕成人在线 | 精品久久一区 | 91资源在线观看 | 黄色片a级 | 精品一区二区三区日本 | 日韩小视频 | 第四色影音先锋 | 涩涩操| 丁香五月缴情综合网 | 国产精品久久久久久亚洲调教 | 亚洲国产免费 | 亚洲视频一区在线观看 | h漫在线观看 |