国产精品久久久久影院,成人午夜福利视频,国产精品久久久久高潮,国产精品 欧美 亚洲 制服,国产精品白浆无码流出

歷史上的今天

今天是:2024年11月09日(星期六)

正在發(fā)生

2019年11月09日 | AVR stdio寫(xiě)的ATMEGA16控制步進(jìn)電機(jī)正反轉(zhuǎn)和速度

發(fā)布者:innovator8 來(lái)源: 51hei關(guān)鍵字:AVR  stdio  ATMEGA16  控制步進(jìn)電機(jī)  正反轉(zhuǎn)  速度 手機(jī)看文章 掃描二維碼
隨時(shí)隨地手機(jī)看文章

AVR stdio寫(xiě)的ATMEGA16控制步進(jìn)電機(jī)正反轉(zhuǎn)和速度,供大家免費(fèi)參閱和批評(píng)

適合初學(xué)者,總共七個(gè)按鍵  三個(gè)按鍵控制三個(gè)速度正轉(zhuǎn),三個(gè)按鍵控制三個(gè)速度反轉(zhuǎn),一個(gè)按鍵控制停止。

程序控制步進(jìn)電機(jī)是和步進(jìn)電機(jī)驅(qū)動(dòng)器相連接的,所以脈沖只有一路,如果想直接連步進(jìn)電機(jī)只需要稍加改動(dòng)即可。

 

主程序預(yù)覽:

#define F_CPU 800000UL

#include

#include

#define INT8U unsigned int

#define INT16U unsigned int


const INT8U FFW[]={0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00};//一拍p0口輸出8個(gè)脈沖


//按鍵定義

#define K1_DOWN()((PIND &_BV(PD0)) == 0x00)//K1:正轉(zhuǎn)速度1

#define K2_DOWN()((PIND &_BV(PD1)) == 0x00)//K2:正轉(zhuǎn)速度2

#define K3_DOWN()((PIND &_BV(PD2)) == 0x00)//K3:正轉(zhuǎn)速度3

#define K4_DOWN()((PIND &_BV(PD3)) == 0x00)//K4:停止

#define K5_DOWN()((PIND &_BV(PD4)) == 0x00)//K5:反轉(zhuǎn)速度1

#define K6_DOWN()((PIND &_BV(PD5)) == 0x00)//K6:反轉(zhuǎn)速度2

#define K7_DOWN()((PIND &_BV(PD6)) == 0x00)//K7:反轉(zhuǎn)速度3


void STEP_MOTOR_FWRUN_1(INT8U n)

{

   INT8U i,j;

   

   for(i=0;i   {

     for(j=0;j<16;j++)//循環(huán)輸出16*8拍

     { 

        //if (K1_DOWN())break;

                 if (K2_DOWN())break;

                 if (K3_DOWN())break;

       if (K4_DOWN())return;//中途按下K4時(shí)電機(jī)停止轉(zhuǎn)動(dòng)

          

             if (K5_DOWN())break;

                 if (K6_DOWN())break;

                 if (K7_DOWN())break;

          PORTB=FFW[j];

          _delay_us(50);


}

PORTB=0x01;//最后一圈之后輸出0x01這一拍電機(jī)回到起點(diǎn)

}

}


void STEP_MOTOR_FWRUN_2(INT8U n)

{

   INT8U i,j;

   

   for(i=0;i   {

     for(j=0;j<16;j++)

     { 

       if (K1_DOWN())break;

                // if (K2_DOWN())break;

                 if (K3_DOWN())break;

       if (K4_DOWN())return;//中途按下K4時(shí)電機(jī)停止轉(zhuǎn)動(dòng)


             if (K5_DOWN())break;

                 if (K6_DOWN())break;

                 if (K7_DOWN())break;

          PORTB=FFW[j];

          _delay_us(150);


}

PORTB=0x01;//最后一圈之后輸出0x01這一拍電機(jī)回到起點(diǎn)

}

}


void STEP_MOTOR_FWRUN_3(INT8U n)

{

   INT8U i,j;

   

   for(i=0;i   {

     for(j=0;j<16;j++)

     { 

       if (K1_DOWN())break;

                 if (K2_DOWN())break;

                // if (K3_DOWN())break;

       if (K4_DOWN())return;//中途按下K4時(shí)電機(jī)停止轉(zhuǎn)動(dòng)

           

             if (K5_DOWN())break;

                 if (K6_DOWN())break;

                 if (K7_DOWN())break;

          PORTB=FFW[j];

          _delay_us(300);


}

PORTB=0x01;//最后一圈之后輸出0x01這一拍電機(jī)回到起點(diǎn)

}

}



void STEP_MOTOR_CWRUN_5(INT8U n)

{

   INT8U i,j;

   

   for(i=0;i   {

     for(j=0;j<16;j++)

     { 

      if (K1_DOWN())break;

                 if (K2_DOWN())break;

                 if (K3_DOWN())break;

       if (K4_DOWN())return;//中途按下K4時(shí)電機(jī)停止轉(zhuǎn)動(dòng)

           

            // if (K5_DOWN())break;

                 if (K6_DOWN())break;

                 if (K7_DOWN())break;

           

           PORTB=FFW[j];

          _delay_us(300);


}

PORTB=0x01;//最后一圈之后輸出0x01這一拍電機(jī)回到起點(diǎn)

}

}


void STEP_MOTOR_CWRUN_6(INT8U n)

{

   INT8U i,j;

   

   for(i=0;i   {

     for(j=0;j<16;j++)

     { 

        if (K1_DOWN())break;

                 if (K2_DOWN())break;

                 if (K3_DOWN())break;

       if (K4_DOWN())return;//中途按下K4時(shí)電機(jī)停止轉(zhuǎn)動(dòng)

         

             if (K5_DOWN())break;

                 //if (K6_DOWN())break;

                 if (K7_DOWN())break;

           

           PORTB=FFW[j];//方向?yàn)?時(shí)正轉(zhuǎn)

          _delay_us(150);


}

PORTB=0x01;//最后一圈之后輸出0x01這一拍電機(jī)回到起點(diǎn)

}

}


void STEP_MOTOR_CWRUN_7(INT8U n)

{

   INT8U i,j;

   

   for(i=0;i   {

     for(j=0;j<16;j++)

     {   if (K1_DOWN())break;

                 if (K2_DOWN())break;

                 if (K3_DOWN())break;

       if (K4_DOWN())return;//中途按下K4時(shí)電機(jī)停止轉(zhuǎn)動(dòng)

        

             if (K5_DOWN())break;

                 if (K6_DOWN())break;

                // if (K7_DOWN())break;

           PORTB=FFW[j];

          _delay_us(50);


}

PORTB=0x01;//最后一圈之后輸出0x01這一拍電機(jī)回到起點(diǎn)

}

}

void beep()

{

        PORTC=0x40;

        _delay_ms(120);

        PORTC=0X00;

}


void initonbeep()

{

PORTC=0x40;

_delay_ms(120);

PORTC=0X00;

_delay_ms(120);

PORTC=0x40;

_delay_ms(120);

PORTC=0X00;

_delay_ms(120);

PORTC=0x40;

_delay_ms(120);

PORTC=0X00;

_delay_ms(120);

PORTC=0x40;

_delay_ms(120);

PORTC=0X00;

}



int main()

{

   INT8U r=65535;

   DDRB=0xFF;PORTB=FFW[0];   //控 制輸出

   DDRD=0X00;PORTD=0xFF;     //按鍵輸入

   DDRA=0X00;PORTA=0xFF; //方向信號(hào)

   DDRC=0XFF;PORTC=0x00; //蜂鳴器

   initonbeep ();

  

   while(1)

   {

    


     if(K1_DOWN())

     {

                  _delay_us(200);

                  if(K1_DOWN())

     {

                 beep();

         //while(K1_DOWN());   //等待 K1 釋放

                 PORTA=0x00;        //方向信號(hào)為0

         STEP_MOTOR_FWRUN_1(r);//點(diǎn)擊正轉(zhuǎn)r圈

                 

      }

         }          

          if(K2_DOWN())

     {

                   _delay_us(200);

                  if(K2_DOWN())

     {

                 beep();

         //while(K1_DOWN());   //等待 K1 釋放

                 PORTA=0x00;        //方向信號(hào)為0

         STEP_MOTOR_FWRUN_2(r);//點(diǎn)擊正轉(zhuǎn)r圈

      }

         }          

          if(K3_DOWN())

     {

                   _delay_us(200);

                  if(K3_DOWN())

     {

                 beep();

         //while(K1_DOWN());   //等待 K1 釋放

                 PORTA=0x00;        //方向信號(hào)為0

         STEP_MOTOR_FWRUN_3(r);//點(diǎn)擊正轉(zhuǎn)r圈

      }

         }          

      if(K5_DOWN())

      {

                    _delay_us(200);

                  if(K5_DOWN())

     {

                 beep();

         //while(K2_DOWN());    //等待K2釋放

         PORTA=0x01;         //方向信號(hào)為1

         STEP_MOTOR_CWRUN_5(r); //電機(jī)反轉(zhuǎn)r圈

       }

          }           

         if(K6_DOWN())

      {

                    _delay_us(200);

                  if(K6_DOWN())

     {

                 beep();

         //while(K2_DOWN());    //等待K2釋放

         PORTA=0x01;         //方向信號(hào)為1

         STEP_MOTOR_CWRUN_6(r); //電機(jī)反轉(zhuǎn)r圈

       }

          }           

[1] [2]
關(guān)鍵字:AVR  stdio  ATMEGA16  控制步進(jìn)電機(jī)  正反轉(zhuǎn)  速度 引用地址:AVR stdio寫(xiě)的ATMEGA16控制步進(jìn)電機(jī)正反轉(zhuǎn)和速度

上一篇:mega128波形發(fā)生器仿真及源程序 LCD顯示
下一篇:基于ATmega128單片機(jī)的紅外控制電機(jī)系統(tǒng)源碼

推薦閱讀

早在上個(gè)世紀(jì)90年代,日本車(chē)企就開(kāi)始探索混合動(dòng)力技術(shù),而最早獲得成功的品牌便是豐田。在初代普銳斯發(fā)布兩年后,本田也隨即發(fā)布了搭載IMA技術(shù)的初代Insight。由于當(dāng)時(shí)的市場(chǎng)對(duì)混動(dòng)車(chē)不太友好,本田很快放棄了IMA技術(shù)的研發(fā),但他們同時(shí)也發(fā)現(xiàn)了雙電機(jī)的混動(dòng)結(jié)構(gòu)相比單電機(jī)結(jié)構(gòu)有很大的優(yōu)勢(shì),十年磨一劍的本田也在2012年發(fā)布了i-MMD混動(dòng)技術(shù)。而它的出現(xiàn),...
2019年,由于全球經(jīng)濟(jì)局勢(shì)持續(xù)不穩(wěn)定,機(jī)器人市場(chǎng)的發(fā)展受到了一定的制約和影響。對(duì)不少企業(yè)來(lái)說(shuō),可謂是進(jìn)入了一場(chǎng)“寒冬”。但另一方面,依然有不少優(yōu)秀頭部企業(yè)在堅(jiān)持前行,為行業(yè)的前景帶來(lái)了曙光。比如依然堅(jiān)挺的國(guó)外機(jī)器人“四大家族”。 接下來(lái),將對(duì)“四大家族”在2019年前10個(gè)月里發(fā)生的大事件進(jìn)行回顧。 庫(kù)卡機(jī)器人(KUKA) 今年初,庫(kù)卡...
11月2日獲悉,騰訊云對(duì)象存儲(chǔ)COS近日正式通過(guò)Commvault備份軟件標(biāo)準(zhǔn)化測(cè)試,并獲得官方認(rèn)證。 同時(shí),Commvault對(duì)COS的支持已經(jīng)從底層打通。這意味著用戶(hù)只要購(gòu)買(mǎi)了騰訊云COS的云存儲(chǔ)空間,就可以通過(guò)Commvault進(jìn)行遠(yuǎn)程數(shù)據(jù)備份,把數(shù)據(jù)寫(xiě)入COS的存儲(chǔ)桶中,也可以在Commvault上直接訪問(wèn)或刪除COS的數(shù)據(jù),極大的簡(jiǎn)化了數(shù)據(jù)備份和使用過(guò)程,方便快捷實(shí)現(xiàn)數(shù)據(jù)...
據(jù)Apple Insider報(bào)道,YouTube上發(fā)布的一個(gè)新視頻,讓大家見(jiàn)到了一臺(tái)罕見(jiàn)的“死星”(Death Star)iPhone 4原型機(jī),相比生產(chǎn)模型擁有一些差異。YouTuber DongleBookPro 周五在一個(gè)片段中展示了這臺(tái)iPhone 的原型機(jī)。據(jù)說(shuō),該設(shè)備有一個(gè)“死星”Logo 標(biāo)志,因?yàn)樘O(píng)果公司在內(nèi)部信息和硬件的泄漏方面存在特別的處理方式。據(jù)悉,這個(gè) Logo 標(biāo)志可能會(huì)...

史海拾趣

問(wèn)答坊 | AI 解惑

Protel資料總結(jié)

protel學(xué)習(xí)資料,希望對(duì)大家有幫助……

查看全部問(wèn)答∨

溫度采集系統(tǒng)源碼大分享(上下位機(jī)軟件+電路+exe文件)

單片機(jī)溫度采集+VB溫度顯示       本溫度采集系統(tǒng)是利用DS18B20把溫度讀出,然后通過(guò)單片機(jī)解碼發(fā)送給6位數(shù)碼管,數(shù)碼管顯示出當(dāng)前的溫度值。DS18B20返回的溫度值是兩字節(jié)的十六進(jìn)制數(shù)據(jù)。負(fù)數(shù)用反碼表示。單片機(jī)直接通過(guò)串口 ...…

查看全部問(wèn)答∨

求高手幫忙看下程序哪里有問(wèn)題?基于arm3000

此為俄羅斯方塊,運(yùn)行無(wú)錯(cuò)誤 但是文本輸出沒(méi)有顯示,方塊在落下后,立即消失,無(wú)法呈現(xiàn)俄羅斯方塊應(yīng)有的游戲效果 …

查看全部問(wèn)答∨

串口接收不定長(zhǎng)字符處理問(wèn)題

單片機(jī)接收不定的長(zhǎng)度.我想PC機(jī)到一次就當(dāng)一次轉(zhuǎn)行.不管長(zhǎng)度多少.或者我發(fā)送一次協(xié)議. 也當(dāng)一次命令.…

查看全部問(wèn)答∨

問(wèn)ioctl各個(gè)參數(shù)怎么對(duì)應(yīng)的?

模塊的ioctl段的定義函數(shù)是: int camif_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg) {         camif_cfg_t *cfg = file->private_data;         struct y ...…

查看全部問(wèn)答∨

wince PB安裝問(wèn)題

wincepb50-051231-product-update-rollup-armv4i wincepb50-061231-product-update-rollup-armv4i wincepb50-071231-product-update-rollup-armv4i 這3個(gè)補(bǔ)丁依次包含嗎? 是不是打07的以后就不用打上面2個(gè)了…

查看全部問(wèn)答∨

用EVC5.0做繪制實(shí)時(shí)數(shù)據(jù)曲線(每秒采集一次數(shù)據(jù)),為何不能自動(dòng)刷新?

用EVC5.0做繪制實(shí)時(shí)數(shù)據(jù)曲線(每秒采集一次數(shù)據(jù)),運(yùn)行時(shí)為何不能自動(dòng)刷新? 而在VC下編譯、運(yùn)行卻沒(méi)有任何問(wèn)題?!?

查看全部問(wèn)答∨

[EDA]VHDL實(shí)現(xiàn)"電子密碼鎖"

小弟是一個(gè)學(xué)生,學(xué)計(jì)算機(jī)的,學(xué)校從來(lái)沒(méi)教過(guò)硬件語(yǔ)言就讓做這個(gè),而且是一星期之內(nèi),我們還要上課...我也看了相關(guān)方面的資料,有點(diǎn)頭緒,但是做不出來(lái),希望有人能幫幫忙,感激不盡! 題目這樣的: 設(shè)計(jì)一個(gè)電子密碼鎖,在鎖開(kāi)的狀態(tài)下輸入密碼,密碼共4位 ...…

查看全部問(wèn)答∨

PCB地線干擾及抑制

在PCB設(shè)計(jì)中,尤其是在高頻電路中,經(jīng)常會(huì)遇到由于地線干擾而引起的一些不規(guī)律、不正常的現(xiàn)象。本文對(duì)地線產(chǎn)生干擾的原因進(jìn)行分析,詳細(xì)介紹了地線產(chǎn)生干擾的三種類(lèi)型,并根據(jù)實(shí)際應(yīng)用中的經(jīng)驗(yàn)提出了解決措施。這些抗干擾方法在實(shí)際應(yīng)用中取得了良 ...…

查看全部問(wèn)答∨

第9章 進(jìn)程關(guān)系

9.1   引言 1809.2   終端登錄 1809.2.1   4.3+BSD終端登錄 1809.2.2   SVR4終端登錄 1829.3   網(wǎng)絡(luò)登錄 1829.3.1   4.3+BSD網(wǎng)絡(luò)登錄 1829.3.2 & ...…

查看全部問(wèn)答∨
小廣播
設(shè)計(jì)資源 培訓(xùn) 開(kāi)發(fā)板 精華推薦

最新單片機(jī)文章

 
EEWorld訂閱號(hào)

 
EEWorld服務(wù)號(hào)

 
汽車(chē)開(kāi)發(fā)圈

 
機(jī)器人開(kāi)發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號(hào) 京ICP備10001474號(hào)-1 電信業(yè)務(wù)審批[2006]字第258號(hào)函 京公網(wǎng)安備 11010802033920號(hào) Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved