日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀] MSP430單片機(jī)步進(jìn)電機(jī)程序#include"msp430x22x4.h"#defineucharunsignedchar#defineuintunsignedintuchari=0;//掃描式4x4鍵盤#definekeyin(P2IN&0x0F)//數(shù)碼管值0~funsignedcharkey[4][4]={{1,2,3,4},{

MSP430單片機(jī)步進(jìn)電機(jī)程序


#include"msp430x22x4.h"
#defineucharunsignedchar
#defineuintunsignedint


uchari=0;

//掃描式4x4鍵盤

#definekeyin(P2IN&0x0F)

//數(shù)碼管值0~f
unsignedcharkey[4][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}};

unsignedcharhang[]={0xef,0xdf,0xbf,0x7f};//選中行碼
unsignedcharlie[]={0x0e,0x0d,0x0b,0x07};//相應(yīng)列值
unsignedcharsave,a,b;

voidDELAY(uintaj)
{

while(aj--);
}

voidinit_port(void)
{

P1SEL|=BIT2+BIT3;//TA1,TA2輸出功能
P1DIR|=BIT2+BIT3;

P2DIR=0XF0;
P2SEL=0;
P2OUT=0;
P2IE=0X0F;
P2IES=0XF0;
P2IFG=0;

P3DIR=0XFF;//p3.0--AP3.1---BP3.2---CP3.3---D
P3SEL=0X00;
P3OUT=0XF0;

_EINT();

return;
}

voidmain(void)
{
WDTCTL=WDTPW+WDTHOLD;//關(guān)看門狗
BCSCTL1=CALBC1_1MHz;//設(shè)定DCO為1MHZ
DCOCTL=CALBC1_1MHZ;

init_port();

while(1)
{
while(i==1)//單四拍
{
P3OUT=0XF1;//11110100
DELAY(390);

P3OUT=0XF2;//11110010
DELAY(390);

P3OUT=0XF4;//11110001
DELAY(390);

P3OUT=0XF8;//11111000
DELAY(390);
}

while(i==2)//單四拍反轉(zhuǎn)
{
P3OUT=0X08;//D
DELAY(390);
P3OUT=0X04;//C
DELAY(390);
P3OUT=0X02;//B
DELAY(390);
P3OUT=0X01;//A
DELAY(390);
}

while(i==3)//雙四拍
{
P3OUT=0X03;//AB
DELAY(390);
P3OUT=0X06;//BC
DELAY(390);
P3OUT=0X0c;//CD
DELAY(390);
P3OUT=0X09;//DA
DELAY(390);
}

while(i==4)//雙四拍反轉(zhuǎn)
{
P3OUT=0X09;//DA
DELAY(390);
P3OUT=0X0c;//CD
DELAY(390);
P3OUT=0X06;//BC
DELAY(390);
P3OUT=0X03;//AB
DELAY(390);
}

while(i==5)//單八拍
{
P3OUT=0X01;//A
DELAY(390);
P3OUT=0X03;//AB
DELAY(390);
P3OUT=0X02;//B
DELAY(390);
P3OUT=0X06;//BC
DELAY(390);
P3OUT=0X04;//C
DELAY(390);
P3OUT=0X0c;//CD
DELAY(390);
P3OUT=0X08;//D
DELAY(390);
P3OUT=0X09;//DA
DELAY(390);
}

while(i==6)//單八拍反轉(zhuǎn)
{
P3OUT=0X09;//DA
DELAY(390);
P3OUT=0X08;//D
DELAY(390);
P3OUT=0X0c;//CD
DELAY(390);
P3OUT=0X04;//C
DELAY(390);
P3OUT=0X06;//BC
DELAY(390);
P3OUT=0X02;//B
DELAY(390);
P3OUT=0X03;//AB
DELAY(390);
P3OUT=0X01;//A
DELAY(390);
}

while(i==7)//雙八拍
{
P3OUT=0X03;//AB
DELAY(390);
P3OUT=0X07;//ABC
DELAY(390);
P3OUT=0X06;//BC
DELAY(390);
P3OUT=0X0E;//BCD
DELAY(390);
P3OUT=0X0c;//CD
DELAY(390);
P3OUT=0X0D;//CDA
DELAY(390);
P3OUT=0X09;//DA
DELAY(390);
P3OUT=0X0B;//DAB
DELAY(390);
}

while(i==8)//雙八拍反轉(zhuǎn)
{

P3OUT=0X0B;//DAB
DELAY(390);
P3OUT=0X09;//DA
DELAY(390);
P3OUT=0X0D;//CDA
DELAY(390);
P3OUT=0X0c;//CD
DELAY(390);
P3OUT=0X0E;//BCD
DELAY(390);
P3OUT=0X06;//BC
DELAY(390);
P3OUT=0X07;//ABC
DELAY(390);
P3OUT=0X03;//AB
DELAY(390);
}
}
}



voidkeyprocess(void)
{
for(a=0;a<4;a++)
{
P2OUT=hang[a];//逐行掃描
if(keyin!=0x0f)break;//檢測(cè)該行有鍵按下則退出循環(huán)
}

for(b=0;b<4;b++)//逐列掃描
{
if(keyin==lie[b])
{
save=key[a][b];break;//檢測(cè)該列有鍵按下則退出循環(huán)
}
}


switch(save)
{
case1:i=1;break;
case2:i=2;break;
case3:i=3;break;
case4:i=4;break;
case5:i=5;break;
case6:i=6;break;
case7:i=7;break;
case8:i=8;break;
case9:
case10:
case11:
case12:
case13:
case14:
case15:
case16:break;
}
return;
}

#pragmavector=PORT2_VECTOR
__interruptvoidPORT_ISR(void)

{
keyprocess();
P2IFG=0;
P2OUT=0;
return;
}

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉