久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

步進電機驅動程序

作者:佚名   來源:本站原創   點擊數:  更新時間:2013年11月04日   【字體:
 #include <REG52.H>

#define uchar unsigned char

#define uint unsigned int  

#define ulong unsigned long

#define CLK_WISE 0//順時針方向轉動

#define INVERSE 1//逆時針方向轉動

bit direction=CLK_WISE;/***方向標志,取值為CLK_WISE INVERSE*/

static uchar speedcount=0;//加速標志,越大轉速越快,最大到7,然后回歸到0,循環。

//程序中可以依據它來改變占空比

uchar step[8]={0x01,0x09,0x08,0x0c,0x04,0x06,0x02,0x03};//8個步

uchar th_0[8]={0x5D,0x85,0x9E,0xAE,0xBA,0xC2,0xC9,0xCF};//8個定時器值,高8

uchar tl_0[8]={0x3D,0xEE,0x58,0x9E,0x3E,0xF7,0xBF,0x2C};//8個定時器值,低8

int step_i=0;//當前處于哪一步

/***定時器t0***/

void time0(void) interrupt 1 using 1

{

P2=step[step_i];//輸出電機控制信號

if(direction==CLK_WISE) //順時針轉

step_i++;

else

step_i--;//逆時針轉

if (step_i>7)//順時針到最后一步,需要調整到第一步

step_i=0;

if (step_i<0)//順時針到第一步,需要調整到最后一步

step_i=7;

TH0=th_0[speedcount];//根據當前速度設定定時器初值

TL0=tl_0[speedcount];

}

 

/****改變轉向標志*****/

void int1_srv (void) interrupt 2 using 2

{

if(INT1==0)

{

while(!INT1);

 direction=!direction;

}

}

 

/*******加速********/

void change(void) interrupt 0 using 0

{

if(INT0==0)

{

while(!INT0);

  speedcount++;//記錄加速次數

if(speedcount>7)

speedcount=0;//最大為7,然后從0開始循環。

}

}

void main()

{

EA=1;

TMOD=0x01;

ET0=1;//定時器0初始化

TR0=1;

 

EX0=1;

IT0=1;//外部中斷0

 

EX1=1;

IT1=1;//外部中斷1

 

TH0=th_0[0];

TL0=th_0[0];//定時器0初始值

 

while(1)

{

;

}

}

 

關閉窗口

相關文章

主站蜘蛛池模板: 免费一区二区 | 亚洲国产视频一区二区 | 久久成人免费 | 日韩 欧美 二区 | 91麻豆精品国产91久久久资源速度 | 久久精品亚洲精品 | 欧美a∨ | 久久亚洲欧美日韩精品专区 | 久久精品亚洲国产 | 黄色大片免费网站 | 国产高清视频一区 | 99在线免费观看视频 | 久久久99国产精品免费 | 国产男女猛烈无遮掩视频免费网站 | 午夜在线视频 | 欧美一区免费 | 午夜精品一区 | 国产精品av久久久久久久久久 | 一级毛片视频免费观看 | 国产在线观看一区二区 | 欧美日韩中文在线 | 一区二区福利视频 | 国产精品福利在线观看 | 中文字幕日韩在线观看 | 欧美日韩久久久 | 羞羞免费网站 | 亚洲狠狠丁香婷婷综合久久久 | 久久久久久免费免费 | 毛片黄| 美女拍拍拍网站 | 国产 欧美 日韩 一区 | 成人在线精品视频 | 精品乱子伦一区二区三区 | 中文字幕精品一区二区三区精品 | 国产高潮好爽受不了了夜夜做 | 欧美一级大片免费看 | 中文字幕一区二区三区四区 | 免费视频一区二区 | 久久久久国产精品一区二区 | 欧美第一页 | 欧美一级电影免费观看 |