在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 8051直流電機(jī)的開(kāi)環(huán)控制程序

            8051直流電機(jī)的開(kāi)環(huán)控制程序

            作者: 時(shí)間:2016-11-30 來(lái)源:網(wǎng)絡(luò) 收藏
            //-----------------------函數(shù)聲明,變量定義--------------------------------------------------------
            #include
            #include
            #include
            //-----------------------定義管腳--------------------------------------------------------
            sbit PWM=P1^0; //PWM波形輸出
            sbit DR=P1^1; //方向控制
            #define timer_data (256-100) //定時(shí)器預(yù)置值,12M時(shí)鐘是,定時(shí)0.1ms
            #define PWM_T 100 //定義PWM的周期T為10ms
            unsigned char PWM_t; //PWM_t為脈沖寬度(0~100)時(shí)間為0~10ms
            unsigned char PWM_count; //輸出PWM周期計(jì)數(shù)
            unsigned char time_count; //定時(shí)計(jì)數(shù)
            bit direction; //方向標(biāo)志為
            //--------------------------------------------------------------------------------------------------
            // 函數(shù)名稱:timer_init
            // 函數(shù)功能:初始化設(shè)施定時(shí)器
            //--------------------------------------------------------------------------------------------------
            void timer_init()
            {
            TMOD=0x22; /*定時(shí)器1為工作模式2(8位自動(dòng)重裝),0為模式2(8位自動(dòng)重裝) */
            PCON=0x00;
            TF0=0;
            TH0=timer_data; //保證定時(shí)時(shí)長(zhǎng)為0.1ms
            TL0=TH0;
            ET0=1;
            TR0=1; //開(kāi)始計(jì)數(shù)
            EA=1; //中斷允許
            }
            //--------------------------------------------------------------------------------------------------
            // 函數(shù)名稱:setting_PWM
            // 函數(shù)功能:設(shè)置PWM的脈沖寬度和設(shè)定方向
            //--------------------------------------------------------------------------------------------------
            void setting_PWM()
            {
            if(PWM_count==0) //初始設(shè)置
            {
            PWM_t=20;
            direction=1;
            }
            }
            //--------------------------------------------------------------------------------------------------
            // 函數(shù)名稱:IntTimer0
            // 函數(shù)功能:定時(shí)器中斷處理程序
            //--------------------------------------------------------------------------------------------------
            void IntTimer0() interrupt 1
            {
            time_count++;
            DR=direction;
            if(time_count>=PWM_T)
            {
            time_count=0;
            PWM_count++;
            setting_PWM(); //每輸出一個(gè)PWM波調(diào)用一次
            }
            if(time_countPWM=1;
            else
            PWM=0;
            }
            //--------------------------------------------------------------------------------------------------
            // 函數(shù)名稱:main
            // 用戶主函數(shù)
            // 函數(shù)功能:主函數(shù)
            //--------------------------------------------------------------------------------------------------
            void main()
            {
            timer_init();
            setting_PWM();
            }
            admin2009-6-12 21:522#
            //-----------------------函數(shù)聲明,變量定義--------------------------------------------------------
            #include
            #include
            sbit SDA=P1^0; // 將p1.0口模擬數(shù)據(jù)口
            sbit SCL=P1^1; // 將p1.1口模擬時(shí)鐘口
            #define NUM 10 // 接收和發(fā)送緩存區(qū)的深度
            #define delayNOP(); {_nop_();_nop_();_nop_();_nop_();};
            unsigned char idata sendbuf[NUM]; // 數(shù)據(jù)發(fā)送緩沖區(qū)
            unsigned char idata receivebuf[NUM]; // 數(shù)據(jù)接收緩沖區(qū)
            bit bdata SystemError; // 從機(jī)錯(cuò)誤標(biāo)志位
            //--------------------------------------------------------------------------------------------------
            // 函數(shù)名稱: iic_start()
            //函數(shù)功能: 啟動(dòng)I2C總線子程序
            //--------------------------------------------------------------------------------------------------
            void iic_start(void)
            { EA=0; //時(shí)鐘保持高,數(shù)據(jù)線從高到低一次跳變,I2C通信開(kāi)始
            SDA = 1;
            SCL = 1;
            delayNOP(); // 延時(shí)5us
            SDA = 0;
            delayNOP();
            SCL = 0;
            }
            //--------------------------------------------------------------------------------------------------
            // 函數(shù)名稱: iic_stop()
            // 函數(shù)功能: 停止I2C總線數(shù)據(jù)傳送子程序
            //--------------------------------------------------------------------------------------------------
            void iic_stop(void)
            {
            SDA = 0; //時(shí)鐘保持高,數(shù)據(jù)線從低到高一次跳變,I2C通信停止
            SCL = 1;
            delayNOP();
            SDA = 1;
            delayNOP();
            SCL = 0;
            }
            //--------------------------------------------------------------------------------------------------
            // 函數(shù)名稱: slave_ACK
            //函數(shù)功能: 從機(jī)發(fā)送應(yīng)答位子程序
            //--------------------------------------------------------------------------------------------------
            void slave_ACK(void)
            {
            SDA = 0;
            SCL = 1;
            delayNOP();
            SDA = 1;
            SCL = 0;
            }
            //--------------------------------------------------------------------------------------------------
            // 函數(shù)名稱: slave_NOACK
            // 函數(shù)功能: 從機(jī)發(fā)送非應(yīng)答位子程序,迫使數(shù)據(jù)傳輸過(guò)程結(jié)束
            //--------------------------------------------------------------------------------------------------
            void slave_NOACK(void)
            {
            SDA = 1;
            SCL = 1;
            delayNOP();
            SDA = 0;
            SCL = 0;
            }
            //--------------------------------------------------------------------------------------------------
            // 函數(shù)名稱: check_ACK
            //函數(shù)功能: 主機(jī)應(yīng)答位檢查子程序,迫使數(shù)據(jù)傳輸過(guò)程結(jié)束
            //--------------------------------------------------------------------------------------------------


            評(píng)論


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

            關(guān)閉