新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機控制18路舵機的C程序

        單片機控制18路舵機的C程序

        作者: 時間:2016-12-01 來源:網絡 收藏

        //***************************定時器中斷**************************
        void timer0() interrupt 1 using 1
        {
        if(pwm_scan==1) //第1路pwm。
        {
        pwm0=1;
        TH0=pwm_val[0];
        TL0=pwm_val[1];
        }
        else if(pwm_scan==2) //第2路pwm。
        {
        pwm0=0;
        pwm1=1;
        TH0=pwm_val[2];
        TL0=pwm_val[3];
        }
        else if(pwm_scan==3) //第3路pwm。
        {
        pwm1=0;
        pwm2=1;
        TH0=pwm_val[4];
        TL0=pwm_val[5];
        }
        else if(pwm_scan==4) //第4路pwm。
        {
        pwm2=0;
        pwm3=1;
        TH0=pwm_val[6];
        TL0=pwm_val[7];
        }
        else if(pwm_scan==5) //第5路pwm。
        {
        pwm3=0;
        pwm4=1;
        TH0=pwm_val[8];
        TL0=pwm_val[9];
        }
        else if(pwm_scan==6) //第6路pwm。
        {
        pwm4=0;
        pwm5=1;
        TH0=pwm_val[10];
        TL0=pwm_val[11];
        }
        else if(pwm_scan==7) //第7路pwm。
        {
        pwm5=0;
        pwm6=1;
        TH0=pwm_val[12];
        TL0=pwm_val[13];
        }
        else if(pwm_scan==8) //第8路pwm。
        {
        pwm6=0;
        pwm7=1;
        TH0=pwm_val[14];
        TL0=pwm_val[15];
        }
        else if(pwm_scan==9) //第9路pwm。
        {
        pwm7=0;
        pwm8=1;
        TH0=pwm_val[16];
        TL0=pwm_val[17];
        }
        else if(pwm_scan==10) //低電平。
        {
        pwm8=0;
        TH0=pwm_val[36];
        TL0=pwm_val[37];
        pwm_scan=0;
        }
        pwm_scan++;
        }
        void timer1() interrupt 3 using 2
        {
        if(pwm_scan1==1) //第10路pwm。
        {
        pwm9=1;
        TH1=pwm_val[18];
        TL1=pwm_val[19];
        }
        else if(pwm_scan1==2) //第11路pwm。
        {
        pwm9=0;
        pwm10=1;
        TH1=pwm_val[20];
        TL1=pwm_val[21];
        }
        else if(pwm_scan1==3) //第12路pwm。
        {
        pwm10=0;
        pwm11=1;
        TH1=pwm_val[22];
        TL1=pwm_val[23];
        }
        else if(pwm_scan1==4) //第13路pwm。
        {
        pwm11=0;
        pwm12=1;
        TH1=pwm_val[24];
        TL1=pwm_val[25];
        }
        else if(pwm_scan1==5) //第14路pwm。
        {
        pwm12=0;
        pwm13=1;
        TH1=pwm_val[26];
        TL1=pwm_val[27];
        }
        else if(pwm_scan1==6) //第15路pwm。
        {
        pwm13=0;
        pwm14=1;
        TH1=pwm_val[28];
        TL1=pwm_val[29];
        }
        else if(pwm_scan1==7) //第16路pwm。
        {
        pwm14=0;
        pwm15=1;
        TH1=pwm_val[30];
        TL1=pwm_val[31];
        }
        else if(pwm_scan1==8) //第17路pwm。
        {
        pwm15=0;
        pwm16=1;
        TH1=pwm_val[32];
        TL1=pwm_val[33];
        }
        else if(pwm_scan1==9) //第18路pwm。
        {
        pwm16=0;
        pwm17=1;
        TH1=pwm_val[34];
        TL1=pwm_val[35];
        }
        else if(pwm_scan1==10) //低電平。
        {
        pwm17=0;
        TH1=pwm_val[38];
        TL1=pwm_val[39];
        pwm_scan1=0;
        }
        pwm_scan1++;
        }
        //********************************函數************************
        void timer_INT(void) //timer0、timer1初始化
        {
        uchar a,b,c;
        TMOD|=0X11;
        IE|=0X8A; //EA=1;ET0=1;ET1=1;
        TH0=256;
        TL0=255;
        TH1=256;
        TL1=255;
        TR0=1;
        for(c=1;c>0;c--)
        {
        for(b=38;b>0;b--)
        {
        for(a=130;a>0;a--);
        }
        }
        TR1=1;
        }

        本文引用地址:http://www.104case.com/article/201612/324215.htm

        void SCI_INT(void) //timer2
        {
        SCON=0X50;
        T2CON=0X30;
        TL2=RCAP2L=0XB2; //9600 0XFFB2, 19200 0XFFD9
        TH2=RCAP2H=0XFF;
        PCON=0X00;
        TR2=1;
        }


        上一頁 1 2 下一頁

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 宝坻区| 舟山市| 特克斯县| 甘谷县| 柞水县| 乳源| 仪征市| 澜沧| 普陀区| 牟定县| 云龙县| 孟村| 体育| 手机| 乐亭县| 抚松县| 庄河市| 浮山县| 张掖市| 隆子县| 铜川市| 荔浦县| 普宁市| 德化县| 确山县| 长治市| 改则县| 南雄市| 上栗县| 玛多县| 江门市| 通道| 诏安县| 什邡市| 海伦市| 西安市| 苏尼特右旗| 湖州市| 焦作市| 德格县| 贵阳市|