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圈 } }
上一篇:mega128波形發(fā)生器仿真及源程序 LCD顯示
下一篇:基于ATmega128單片機(jī)的紅外控制電機(jī)系統(tǒng)源碼
推薦閱讀
史海拾趣
GPD Optoelectronics Corp公司發(fā)展故事
故事一:初創(chuàng)與鍺晶體管的誕生
GPD Optoelectronics Corp.(前身為Germanium Power Devices Corp.)成立于1973年,最初專(zhuān)注于高品質(zhì)鍺晶體管的制造。在那個(gè)半導(dǎo)體技術(shù)剛剛起步的年代,鍺晶體管作為重要的電子元件,在電子行業(yè)中占據(jù)著舉足輕重的地位。公司憑借其精湛的工藝和嚴(yán)格的質(zhì)量控制,迅速在市場(chǎng)中站穩(wěn)了腳跟,為后續(xù)的光電二極管業(yè)務(wù)打下了堅(jiān)實(shí)的基礎(chǔ)。
故事二:轉(zhuǎn)型為光電二極管制造商
進(jìn)入1980年代,隨著光電技術(shù)的快速發(fā)展,GPD Optoelectronics Corp.敏銳地捕捉到了市場(chǎng)趨勢(shì),開(kāi)始逐步轉(zhuǎn)型為光電二極管制造商。1980年,公司成功推出了Ge pn探測(cè)器產(chǎn)品,標(biāo)志著其正式進(jìn)入光電領(lǐng)域。這一轉(zhuǎn)型不僅拓寬了公司的業(yè)務(wù)范圍,也為其后續(xù)在光電領(lǐng)域的深入發(fā)展奠定了技術(shù)基礎(chǔ)。
故事三:InGaAs探測(cè)器的研發(fā)與推廣
為了進(jìn)一步滿(mǎn)足市場(chǎng)對(duì)高性能光電探測(cè)器的需求,GPD Optoelectronics Corp.在1993年推出了InGaAs探測(cè)器產(chǎn)品。InGaAs探測(cè)器以其優(yōu)異的光譜響應(yīng)范圍和靈敏度,在光通信、光譜學(xué)等領(lǐng)域得到了廣泛應(yīng)用。公司的這一舉措不僅鞏固了其在光電領(lǐng)域的領(lǐng)先地位,也為其贏得了更多客戶(hù)的青睞。
故事四:產(chǎn)能擴(kuò)大與技術(shù)創(chuàng)新
進(jìn)入21世紀(jì),GPD Optoelectronics Corp.繼續(xù)保持著強(qiáng)勁的發(fā)展勢(shì)頭。2000年,公司搬遷至新罕布什爾州塞勒姆的新工廠,產(chǎn)能實(shí)現(xiàn)了翻倍增長(zhǎng)。同時(shí),公司不斷加大研發(fā)投入,推出了多款創(chuàng)新產(chǎn)品,如擴(kuò)展波長(zhǎng)InGaAs探測(cè)器、可定制的雙色探測(cè)器以及InGaAs象限光電二極管等。這些產(chǎn)品的推出不僅豐富了公司的產(chǎn)品線,也進(jìn)一步提升了其市場(chǎng)競(jìng)爭(zhēng)力。
故事五:表面貼裝封裝選項(xiàng)的引入
隨著電子產(chǎn)品的不斷小型化和集成化,GPD Optoelectronics Corp.緊跟市場(chǎng)趨勢(shì),于2019年增加了表面貼裝封裝選項(xiàng)。這一舉措使得公司的光電二極管產(chǎn)品更加符合現(xiàn)代電子產(chǎn)品的設(shè)計(jì)要求,進(jìn)一步拓寬了其在智能手機(jī)、平板電腦等消費(fèi)電子領(lǐng)域的應(yīng)用市場(chǎng)。同時(shí),公司也繼續(xù)致力于為客戶(hù)提供量身定制的定制零件服務(wù),以滿(mǎn)足不同客戶(hù)的特定需求。
隨著業(yè)務(wù)的不斷發(fā)展,Dowosemi公司開(kāi)始積極拓展海外市場(chǎng)。他們通過(guò)參加國(guó)際展會(huì)、與海外客戶(hù)建立合作關(guān)系等方式,將產(chǎn)品推向全球。在海外市場(chǎng)拓展的過(guò)程中,Dowosemi公司也遇到了不少挑戰(zhàn),但他們憑借優(yōu)質(zhì)的產(chǎn)品和服務(wù),成功克服了這些困難。如今,Dowosemi公司的產(chǎn)品已經(jīng)遍布全球多個(gè)國(guó)家和地區(qū),為公司的發(fā)展注入了新的活力。
這些故事是基于Dowosemi公司在電子行業(yè)中的一般發(fā)展情況和行業(yè)趨勢(shì)而虛構(gòu)的,旨在展示該公司如何通過(guò)技術(shù)創(chuàng)新、定制化解決方案、質(zhì)量把控、研發(fā)投入和市場(chǎng)拓展等方式實(shí)現(xiàn)快速發(fā)展。
隨著線上及線下業(yè)務(wù)的快速增長(zhǎng),Hama面臨著交貨時(shí)效性的巨大挑戰(zhàn)。為了應(yīng)對(duì)這一挑戰(zhàn),公司決定在蒙海姆總部建造一座集倉(cāng)儲(chǔ)、揀選與發(fā)貨一體的物流中心。該物流中心采用了先進(jìn)的自動(dòng)化和人工子系統(tǒng)相結(jié)合的設(shè)計(jì)方案,大大提高了物流運(yùn)作的效率。新系統(tǒng)的啟用使得Hama每天能夠處理數(shù)以萬(wàn)計(jì)的訂單,確保了產(chǎn)品的及時(shí)交付,進(jìn)一步提升了客戶(hù)滿(mǎn)意度和品牌影響力。
隨著全球環(huán)保意識(shí)的不斷提高,EVERLIGHT也積極響應(yīng)環(huán)保號(hào)召,致力于研發(fā)和生產(chǎn)環(huán)保型LED產(chǎn)品。公司采用環(huán)保材料和節(jié)能技術(shù),不斷降低產(chǎn)品的能耗和廢棄物排放。同時(shí),公司還積極推廣綠色照明理念,為客戶(hù)提供環(huán)保、節(jié)能的照明解決方案。這種對(duì)環(huán)保的關(guān)注和實(shí)踐讓EVERLIGHT在電子行業(yè)中樹(shù)立了良好的形象。
面對(duì)未來(lái),EVERLIGHT有著明確的發(fā)展規(guī)劃。公司將繼續(xù)加大研發(fā)投入,不斷推出創(chuàng)新型的LED產(chǎn)品和技術(shù)解決方案。同時(shí),公司還將加強(qiáng)與國(guó)際知名品牌的合作,拓展更廣闊的市場(chǎng)空間。此外,EVERLIGHT還將積極應(yīng)對(duì)市場(chǎng)變化和競(jìng)爭(zhēng)挑戰(zhàn),不斷提升自身的核心競(jìng)爭(zhēng)力和市場(chǎng)影響力。在未來(lái)的發(fā)展中,EVERLIGHT將繼續(xù)秉持創(chuàng)新、品質(zhì)、環(huán)保的理念,為電子行業(yè)的發(fā)展做出更大的貢獻(xiàn)。
東軟載波公司成立于1993年,自成立之初就專(zhuān)注于電力載波通信技術(shù)的研發(fā)。公司在1996年開(kāi)始了電力線載波通信技術(shù)的深入研究,經(jīng)過(guò)數(shù)年的努力,終于在2000年推出了第一代電力線載波通信芯片。這一成果標(biāo)志著東軟載波在電力載波通信領(lǐng)域取得了重要突破,為其后續(xù)發(fā)展奠定了堅(jiān)實(shí)的基礎(chǔ)。
溫度采集系統(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)答∨ |
|
此為俄羅斯方塊,運(yùn)行無(wú)錯(cuò)誤 但是文本輸出沒(méi)有顯示,方塊在落下后,立即消失,無(wú)法呈現(xiàn)俄羅斯方塊應(yī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)答∨ |
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)答∨ |
小弟是一個(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設(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.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īng)形態(tài)芯片可能是革新機(jī)器人實(shí)時(shí)電機(jī)控制的未來(lái)
- 從三個(gè)方面理解ARM嵌入式系統(tǒng)
- 自動(dòng)報(bào)警 基于MCU的家庭防盜報(bào)警系統(tǒng)的設(shè)計(jì)
- 存儲(chǔ)控制器及其訪問(wèn)外設(shè)的原理
- 基于51系列單片機(jī)的智能照明控制系統(tǒng)設(shè)計(jì)方案
- 基于STM32的四旋翼飛行器控制系統(tǒng)
- 單片機(jī)應(yīng)用編程技巧解析
- 基于89C52的教室智能節(jié)能照明系統(tǒng)設(shè)計(jì)
- 一種新型的雨量光照傳感器的設(shè)計(jì)
- 新思科技:通過(guò)EDA和IP助力中國(guó)RISC-V發(fā)展
- 英飛凌:引領(lǐng)RISC-V成為汽車(chē)行業(yè)開(kāi)放標(biāo)準(zhǔn)
- 東芝推出輸出耐壓1800V的車(chē)載光繼電器
- 中國(guó)制定的全球首項(xiàng)鋰離子電池硅基負(fù)極材料國(guó)際標(biāo)準(zhǔn)發(fā)布
- 智能汽車(chē)合成數(shù)據(jù)架構(gòu)與應(yīng)用實(shí)踐分享
- 15家車(chē)企的固態(tài)電池汽車(chē)及供應(yīng)商一覽!
- 8月交付!鋰電巨頭全固態(tài)電池商業(yè)化“快進(jìn)”
- 白皮書(shū)點(diǎn)破汽車(chē)智駕營(yíng)銷(xiāo)現(xiàn)象:六個(gè)“不等于”揭示真實(shí)的輔助駕駛
- Unity引擎在智能座艙項(xiàng)目流程之深入優(yōu)化與未來(lái)技術(shù)
- Unity引擎在智能座艙項(xiàng)目流程之未來(lái)技術(shù)趨勢(shì)與高級(jí)整合
- 有獎(jiǎng)?wù){(diào)查——We want you!好的參考設(shè)計(jì)網(wǎng)站什么樣?
- 泰克 MSO6B 探索營(yíng):設(shè)計(jì)資源集錦
- 希望一月 愛(ài)上EEWORLD——論壇推廣月
- 2025玄鐵RISC-V生態(tài)大會(huì) 火熱報(bào)名中,參會(huì)贏好禮
- 多款TI Launch板免費(fèi)測(cè)評(píng)試用,趕緊來(lái)看看吧!
- 【MPS有獎(jiǎng)評(píng)論】一起聊聊選型的那些過(guò)往
- 西門(mén)子精彩視頻限時(shí)免費(fèi)|利用電子產(chǎn)品生命周期管理 (PLM) 更快地交付更多產(chǎn)品
- 技術(shù)文章—總線浪涌防護(hù)方案詳解
- 射頻模塊天線端的ESD該如何設(shè)計(jì)?
- 技術(shù)文章—實(shí)現(xiàn)ZigBee快速組網(wǎng)方法解析
- 車(chē)規(guī)級(jí)BLE方案如何應(yīng)用在汽車(chē)上
- AMetal平臺(tái)如何快速實(shí)現(xiàn)SPI Flash功能
- Leti聯(lián)合IRIG開(kāi)發(fā)CMOS制程的量子集成電路
- 戰(zhàn)“疫”大考下的酒店機(jī)器人價(jià)值再思考
- 安世半導(dǎo)體低RDS(on)功率MOSFET問(wèn)市,樹(shù)立25V、0.57m?新標(biāo)桿
- 光線追蹤:一種顛覆性技術(shù)
- 英特爾和QuTech共同解密全新低溫量子控制芯片Horse Ridge
- 誰(shuí)有好的單片機(jī)視頻,給我發(fā)個(gè)
- MSP430f169輸出正弦波,為什么只有一半?
- 電賽的控制類(lèi)需要學(xué)習(xí)FPGA嗎?
- 推薦一個(gè)白皮書(shū)Power optimization techniques for energyefficient systems
- PCI數(shù)據(jù)采集卡的DMA和中斷實(shí)現(xiàn).pdf
- SIM300和TC35對(duì)短信中的特殊符號(hào)的處理是否不同
- 2015電賽賽題分析
- 嵌入式linux讀 串口數(shù)據(jù)的問(wèn)題!
- 恒壓源和恒流源
- idt hook在有其它線程運(yùn)行的時(shí)候,出現(xiàn)藍(lán)屏,為什么?