新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 51單片機IO模擬PWM控制舵機轉(zhuǎn)向

        51單片機IO模擬PWM控制舵機轉(zhuǎn)向

        作者: 時間:2016-11-22 來源:網(wǎng)絡(luò) 收藏
        本例程晶振為32M


        #include
        #define uint unsigned int

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

        void drive();
        void delay(uint);

        sbit pwm=P2^0;


        uint set; //set為舵機轉(zhuǎn)角標志位
        unsigned char angle;//angle為舵機PWM變化打角


        void Time0_Init() //中斷初始化
        {
        TMOD=0X01;
        IE=0X82;
        TH0=(65536-58)/256;
        TL0=(65536-58)%6;
        TR0=1;
        }

        void main()//主函數(shù)
        {
        set=0;
        angle=23; // 改變angle的值可以改變舵機的占空比

        Time0_Init();

        for(;;)
        {
        drive();
        }
        }


        void drive() //電機驅(qū)動例程,改變占空比
        {

        angle=12;
        delay(800);

        angle=52;
        delay(800);

        angle=135;
        delay(800);
        }

        void delay(uint x)
        {
        uint i,j;
        for(i=x;i>0;i--)
        for(j=110;j>0;j--);
        }

        void T0_time()interrupt 1 //100HZ,10MS
        {

        TH0=(65536-58)/256;
        TL0=(65536-58)%6;

        if(set pwm=1;
        else
        pwm=0;
        set++;
        if(set>385) set=0; //舵機占空比

        }



        評論


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

        關(guān)閉
        主站蜘蛛池模板: 湾仔区| 金沙县| 黔西县| 同德县| 湖北省| 家居| 碌曲县| 房产| 河北省| 子洲县| 宜兰县| 嘉峪关市| 宽甸| 马公市| 广汉市| 江津市| 江口县| 柘荣县| 临泉县| 乾安县| 连城县| 靖边县| 大关县| 胶南市| 高平市| 金昌市| 崇明县| 靖边县| 建瓯市| 麟游县| 白城市| 台南市| 泗水县| 昭平县| 八宿县| 和田市| 德令哈市| 正宁县| 包头市| 敦化市| 清流县|