微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 求助单片机控制舵机问题

求助单片机控制舵机问题

时间:10-02 整理:3721RD 点击:
通过两个独立按键实现0,45,90,135,180这5个角度的控制

  1. #include <reg52.h>
  2. #define uint unsigned int
  3. #define uchar unsigned char
  4. uchar count;
  5. sbit pwm=P3^0;
  6. sbit inc=P3^7;
  7. sbit dec=P3^6;
  8. uchar angle;
  9. sbit dula=P2^6;
  10. sbit wela=P2^7;
  11. uchar code table[]={
  12. 0x3f,0x06,0x5b,0x4f,
  13. 0x66,0x6d,0x7d,0x07,
  14. 0x7f,0x6f,0x77,0x7c,
  15. 0x39,0x5e,0x79,0x71};
  16. void delayms(uint xms)
  17. {
  18.         uint i,j;
  19.         for(i=xms;i>0;i--)
  20.                 for(j=110;j>0;j--);
  21. }
  22. void init()
  23. {
  24.         TMOD=0x01;
  25.         IE=0x82;
  26.         TH0=0xfe;
  27.         TL0=0x33;
  28.         TR0=1;
  29. }
  30. void timer0() interrupt 1
  31. {
  32.         TH0=0xfe;
  33.         TL0=0x33;
  34.         if(count<angle)
  35.                 pwm=1;
  36.         else
  37.                         pwm=0;
  38.         count++;
  39.         count=count%40;
  40. }
  41. void keyscan()
  42. {
  43.         if(inc==0)
  44.         {
  45.                 delayms(10);
  46.                 if(inc==0)
  47.                 {
  48.                         angle++;
  49.                         count=0;
  50.                         if(angle==6)
  51.                                 angle=5;
  52.                         while(!inc);
  53.                 }
  54.         }
  55.         if(dec==0)
  56.         {
  57.                 delayms(10);
  58.                 if(dec==0)
  59.                 {
  60.                         angle--;
  61.                         count=0;
  62.                         if(angle==0)
  63.                                 angle=1;
  64.                         while(!dec);
  65.                 }
  66.         }
  67. }
  68. void main()
  69. {
  70.         angle=1;
  71.         count=0;
  72.         init();
  73.         while(1)
  74.         {
  75.                 keyscan();
  76.         }
  77. }

复制代码

烧录到单片机以后,按下控制inc的按键舵机微微震动但并没有转到相应的角度,按下控制dec的按键舵机完全没有反应,求大神帮忙解答!


上一篇:+收到开发板开箱。
下一篇:开箱评测

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top