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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6635|回復: 2
收起左側

一個stc89c52單片機按鍵控制舵機程序分享

[復制鏈接]
ID:236397 發表于 2017-12-4 20:20 | 顯示全部樓層 |閱讀模式
做了一個stc89c52開發板的按鍵控制舵機程序
希望對學習舵機的同學有小幫助
0.png
   0.5ms--------------0度;
   1.0ms------------45度;
   1.5ms------------90度;
   2.0ms-----------135度;
   2.5ms-----------180度;

單片機源程序如下:
  1. #include<reg52.h>
  2. #define unchar unsigned char
  3. unsigned char count;      //0.5ms次數標識
  4. unsigned char jd=0;  
  5. sbit pwm1 = P2^1;
  6. unsigned char flag=1;
  7. unsigned char flag1=1;
  8. sbit key1=P3^1;

  9. //void delayms(unsigned int t)
  10. //{
  11. //        int i = 0;
  12. //                for(;t>0;t--);
  13. //        for(i=110;i>0;i--);
  14. //
  15. //}
  16. void Time0_Init()          //定時器初始化
  17. {
  18. TMOD = 0x01;           //定時器0工作在方式1   
  19. TH0  =  (65535-500)/256;
  20. TL0  =  (65535-500)%256;    //12MZ晶振,0.5ms
  21. EA=1;            //總中斷打開
  22. ET0=1;           //定時器中斷打開
  23. TR0=1;           //定時器開關打開
  24. }

  25. void Time0_Int() interrupt 1
  26. {
  27.    static int t=0;
  28.    t++;
  29.   TH0  = (65535-500)/256;             //重新賦值
  30.    TL0  = (65535-500)%256;   
  31.     if(count< jd)              //判斷0.5ms次數是否小于角度標識
  32.      {
  33.           pwm1=1;                  //確實小于,PWM輸出高電平
  34.      }
  35.     else
  36.       {
  37.           pwm1=0;                 //大于則輸出低電平
  38.       }
  39.     count++;//(count+1);          //0.5ms次數加1
  40.      if(count>=40)
  41.      count=0;
  42.     //count=count%40;     //次數始終保持為40 即保持周期為20ms
  43. //   if(t<2000)
  44. //   {
  45. //           jd=4;
  46. //   }
  47. //   else if(t<4000)
  48. //   {
  49. //     jd=1;
  50. //   }
  51. //         else
  52. //         t=0;

  53.                
  54. }
  55.    unsigned char count;      //0.5ms次數標識

  56. void keyscan()              //按鍵掃描
  57. {
  58.     if(key1==0&&flag1)
  59.         {
  60.        
  61.            flag=!flag;
  62.            flag1=0;
  63.    }else if(key1) flag1=1;
  64.             
  65. }

  66. void main()
  67. {
  68.       
  69. count=0;
  70. Time0_Init();
  71. while(1)
  72. {
  73.         keyscan();
  74.         if(flag)
  75.                 {
  76.                   jd=4;
  77.                
  78.                 }
  79.                 else
  80.                 jd=1;

  81. }
  82. }

復制代碼

所有資料51hei提供下載:
舵機學習.zip (42.78 KB, 下載次數: 100)


評分

參與人數 1黑幣 +5 收起 理由
ABCD丁 + 5 很給力!

查看全部評分

回復

使用道具 舉報

ID:307651 發表于 2018-6-29 10:44 | 顯示全部樓層
支持------
回復

使用道具 舉報

ID:336174 發表于 2018-7-4 16:27 | 顯示全部樓層
我想問一下那個角度標識是什么作用啊
回復

使用道具 舉報

無效樓層,該帖已經被刪除
5#
無效樓層,該帖已經被刪除
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表