完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
求大神帮我看看程序,网上找的步进电机程序 为什么上电,除了p0口其他io口都是高电平 ,上电蜂鸣器直接响.我把at的程序写在了stc的51单片机上了,还有我的步进电机接了ULN2003A的驱动芯片,然后连接了P1口。帮我看看是我程序问题还是硬件接错还是我的电路有问题。万分感谢!! #include #include #define uchar unsigned char #define uint unsigned int uchar code CCW[8]={0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09}; //逆时钟旋转相序表 uchar code CW[8]={0x09,0x01,0x03,0x02,0x06,0x04,0x0c,0x08}; //正时钟旋转相序表 ***it K1=P3^2; //反转按键 ***it K2=P3^3; //正转按键 ***it K3=P3^4; //停止按键 ***it FMQ=P3^6; //蜂鸣器 void delaynms(uint aa) { uchar bb; while(aa--) { for(bb=0;bb<115;bb++) //1ms基准延时程序 { } } } void delay500us(void) { int j; for(j=0;j<57;j++) { } } void beep(void) { uchar t; for(t=0;t<100;t++) { delay500us(); FMQ=!FMQ; //产生脉冲 } FMQ=1; //关闭蜂鸣器 } void motor_ccw(void) { uchar i,j; for(j=0;j<8;j++) //电机旋转一周,不是外面所看到的一周,是里面的传动轮转了一周 { if(K3==0) { break; //如果K3按下,退出此循环 } for(i=0;i<8;i++) //旋转45度 { P1=CCW; delaynms(10); //调节转速 } } } void motor_cw(void) { uchar i,j; for(j=0;j<8;j++) { if(K3==0) { break; //如果K3按下,退出此循环 } for(i=0;i<8;i++) //旋转45度 { P1=CW; delaynms(2); //调节转速 } } } void main(void) { uchar r; uchar N=64; //因为步进电机是减速步进电机,减速比的1/64 , //所以N=64时,步进电机主轴转一圈 while(1) { if(K1==0) { beep();
|
|
相关推荐
2个回答
|
|
回帖奖励 +1 分积分 |
|
2017-4-13 19:37:45
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
157 浏览 0 评论
【每周推荐】采用11代Intel CPU,基于youyeetoo X1开发板搭建少儿AI智能STEAM积木平台
825 浏览 0 评论
2372 浏览 2 评论
【youyeetoo X1 windows 开发板体验】+ 影音处理和AI模型移植
2226 浏览 5 评论
I.MX6ULL-飞凌 ElfBoard ELF1板卡- 移植zbar的方法
1694 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
5713 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-4-23 18:56 , Processed in 0.492689 second(s), Total 70, Slave 52 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号