新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > PIC16F877A一路舵機(jī)參數(shù)化控制程序

        PIC16F877A一路舵機(jī)參數(shù)化控制程序

        作者: 時(shí)間:2016-12-02 來源:網(wǎng)絡(luò) 收藏
        ;** 日期: 2010年.10月
        ;** 描述: 一路舵機(jī)參數(shù)化控制
        ;** 功能: 用Time1中斷,RD6口輸出
        ;**595417f4d0a35e02&ssp2=1&stid=0&t=tpclicked3_hc&tu=u1831118&u=http%3A%2F%2Fwww%2E51hei%2Ecom%2Fmcu%2F3062%2Ehtml&urlid=0" id="1_nwl" mpid="1" target="_blank">晶振: 12M
        ;** 適用機(jī)型: PIC16F877A,TowerPro MG995
        *********************************************************************************/
        #include
        #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;
        }
        }


        評論


        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 南陵县| 汉沽区| 怀安县| 锡林郭勒盟| 遂昌县| 黎平县| 尚义县| 泰兴市| 巴南区| 南投县| 格尔木市| 新巴尔虎左旗| 邵阳市| 南城县| 清河县| 遵义县| 全南县| 白城市| 墨玉县| 仙游县| 图们市| 台湾省| 沾化县| 黔西| 固始县| 轮台县| 汝城县| 陇南市| 绥化市| 东明县| 鄯善县| 壶关县| 定南县| 娄底市| 蓬安县| 三台县| 田阳县| 南阳市| 邵阳市| 樟树市| 肇东市|