第一范文网 - 专业文章范例文档资料分享平台

基于LPC2131的步进电机细分的课程设计实验报告概要

来源:用户分享 时间:2025/9/30 15:24:54 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

第8页

PINSEL1=0X00000000;

PINSEL2&=~(0x00000006); //设置所有I/O口为普通GPIO口 IO0DIR =MOTOCON; // 配置LED控制I/O方向 LCD12864_init();

//液晶端口初始化

while((IO0PIN&key1)&&(IO0PIN&key2)&&(IO0PIN&key3)&&(IO0PIN&key4)&&(IO0PIN&key5)!=0) {

initinal();

lcd_mesg(IC_DAT6); //显示界面 }

while(1) {

if ((IO0PIN&key1)==0) MOTO_Mode1(10);

else if((IO0PIN&key4)==0) MOTO_Mode10(10);

// A-B-C-D else if ((IO0PIN&key2)==0) MOTO_Mode2(10);

else if((IO0PIN&key4)==0) MOTO_Mode20(10);

// AB-BC-CD-DA-AB else if ((IO0PIN&key3)==0) MOTO_Mode3(10);

else if((IO0PIN&key4)==0)

MOTO_Mode30(10); // A-AB-B-BC-C-CD-D-DA-A

else if((IO0PIN&key5)==0) // 停止 initinal();

lcd_mesg(IC_DAT5); IO0CLR=MOTOCON; }

return(0); }

/**************************************************************************** * 名 称:DelayNS()

第9页

* 功 能:长软件延时 * 入口参数:dly 延时参数,值越大,延时越久 * 出口参数:无

****************************************************************************/ void DelayNS(uint32 dly) { uint32 i;

for(; dly>0; dly--) {

for(i=0; i<5000; i++); } }

/**************************************************************************** * 名 称:MOTO_Mode1() * 功 能:单四拍程序 * 入口参数:uint8 i 延时参数,值越大,延时越久 * 出口参数:无

****************************************************************************/ void MOTO_Mode1(uint8 i) // A-B-C-D {

while((IO0PIN&key2)&&(IO0PIN&key3)&&(IO0PIN&key4)&&(IO0PIN&key5)!=0) {

initinal();

lcd_mesg(IC_DAT1); //显示汉字界面1 /* A */

GPIOSET(MOTOA); DelayNS(i);

GPIOCLR(MOTOA); /* B */

GPIOSET(MOTOB); DelayNS(i);

GPIOCLR(MOTOB); /* C */

GPIOSET(MOTOC); DelayNS(i);

GPIOCLR(MOTOC);

/* D */

GPIOSET(MOTOD); DelayNS(i);

GPIOCLR(MOTOD); }

第10页

}

void MOTO_Mode10(uint8 i) // D - C -B- A {

while((IO0PIN&key1)&&(IO0PIN&key2)&&(IO0PIN&key3)&&(IO0PIN&key5)!=0) {

initinal();

lcd_mesg(IC_DAT4); /* D */

GPIOSET(MOTOD); DelayNS(i);

GPIOCLR(MOTOD); /* C */

GPIOSET(MOTOC); DelayNS(i);

GPIOCLR(MOTOC); /* B */

GPIOSET(MOTOB); DelayNS(i);

GPIOCLR(MOTOB);

/* A */

GPIOSET(MOTOA); DelayNS(i);

GPIOCLR(MOTOA); } }

/**************************************************************************** * 名 称:MOTO_Mode2() * 功 能:双四拍程序 * 入口参数:uint8 i 延时参数,值越大,延时越久 * 出口参数:无

****************************************************************************/ void MOTO_Mode2(uint8 i) // AB-BC-CD-DA-AB {

while((IO0PIN&key1)&&(IO0PIN&key3)&&(IO0PIN&key4)&&(IO0PIN&key5)!=0) {

initinal();

lcd_mesg(IC_DAT2); //显示汉字界面2 GPIOSET(MOTOA); GPIOSET(MOTOB); DelayNS(i);

第11页

GPIOCLR(MOTOA); GPIOCLR(MOTOB); /* BC */

GPIOSET(MOTOB); GPIOSET(MOTOC); DelayNS(i);

GPIOCLR(MOTOB); GPIOCLR(MOTOC);

/* CD */

GPIOSET(MOTOC); GPIOSET(MOTOD); DelayNS(i);

GPIOCLR(MOTOC); GPIOCLR(MOTOD); /* DA */

GPIOSET(MOTOD); GPIOSET(MOTOA); DelayNS(i);

GPIOCLR(MOTOD); GPIOCLR(MOTOA); } }

void MOTO_Mode20(uint8 i) // AD-DC- CB-BA- AD {

while((IO0PIN&key1)&&(IO0PIN&key2)&&(IO0PIN&key3)&&(IO0PIN&key5)!=0) {

initinal();

lcd_mesg(IC_DAT4); GPIOSET(MOTOA); GPIOSET(MOTOD); DelayNS(i);

GPIOCLR(MOTOA); GPIOCLR(MOTOD); /* DC */

GPIOSET(MOTOD); GPIOSET(MOTOC); DelayNS(i);

GPIOCLR(MOTOD); GPIOCLR(MOTOC);

/* CB */

基于LPC2131的步进电机细分的课程设计实验报告概要.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c5aemm0u5j33jk4h7sglc72h8v7sa9700vja_3.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top