<acronym id="xonnx"></acronym>
      <td id="xonnx"></td>
    1. <pre id="xonnx"></pre>

      1. 專注電子技術學習與研究
        當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

        PIC16F877A一路舵機參數化控制程序

        作者:huqin   來源:本站原創   點擊數:  更新時間:2014年03月25日   【字體:


        ;**    日期:  2010年.10月
        ;**    描述:  一路舵機參數化控制
        ;**    功能:  用Time1中斷,RD6口輸出
        ;**    晶振:       12M        
        ;**    適用機型:  PIC16F877A,TowerPro MG995
        *********************************************************************************/
        #include<pic.h>
        #define uchar unsigned char
        #define uint  unsigned int
        uint f;
        uchar servo_angle_H;
        uchar servo_angle_L;
        uchar compensate_L;
        uchar compensate_H;
        void delay(uint x)
        {
              uint a,b;
              for(a=x;a>0;a--)
                   for(b=110;b>0;b--);
        }
        void init()
        {
              TRISD=0x00;
              PORTD=0x00;
              INTCON=0xc0;
              PIE1=0x01;
              TMR1L=0; 
              TMR1H=0; 
              T1CON=0x21;
               f=0;
        }
        void servo(uint angle)
        {
              uint temp,value;
              value=(65536-368)-(75*angle)/9;
              temp=(65536-14617)+(75*angle)/9;
              servo_angle_H=value%256;
              servo_angle_L=value/256 ;
              compensate_L=temp%256;
              compensate_H=temp/256;
        }
        void main()
        {
              init();
              uint angle;
              servo(0);
              delay(200);
              while(1)
              {
                     for(angle=0;angle<181;angle++)
                    {
                         servo(angle);
                         delay(100);
                    }
                    for(angle=180;angle>0;angle--)
                    {
                         servo(angle);
                         delay(100);
                    }
              }
        }
         
        void interrupt time1()
        {
              TMR1IF=0;
               f=~f;
               if(f==0)
               {
                     TMR1L=servo_angle_H;
                     TMR1H=servo_angle_L;      
                      RD6=1;
               }
               else
               {
                      TMR1L=compensate_L;
                      TMR1H=compensate_H;
                       RD6=0;
                 }
        }
         

        關閉窗口

        相關文章

        欧美性色欧美精品视频,99热这里只有精品mp4,日韩高清亚洲日韩精品一区二区,2020国自产拍精品高潮