完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
本帖最后由 eehome 于 2013-1-5 09:58 编辑
偶然看到一个,发上来给有需要的自己看看! /******************************************************* 程序功能:步进电机驱动 开发环境:Keil3 硬件环境:CEPARK51 V4.0,STC12C5A60S2,12M晶振 实验现象:单双八拍工作方式:A-AB-B-BC-C-CD-D-DA (即一个脉冲,转 3.75 度) 步进电机先加速再匀速后减速转动。 *******************************************************/
|
|
|
相关推荐
|
|
|
#include "STC12C5A60S2.h" void delay(); //Motor ***it F1 = P0^0; ***it F2 = P0^1; ***it F3 = P0^2; ***it F4 = P0^3; unsigned char code FFW[8]={0xfe,0xfc,0xfd,0xf9,0xfb,0xf3,0xf7,0xf6}; //反转 unsigned char code FFZ[8]={0xf6,0xf7,0xf3,0xfb,0xf9,0xfd,0xfc,0xfe}; //正转 unsigned int K, rate; /********************************************************** * * * 步进电机驱动 * ***********************************************************/ void motor_ffw(void) { unsigned char i; for (i=0; i<8; i++) //一个周期转30度 { P0 = FFW[i]&0x1f; //取数据 delay(); //调节转速 } } /******************************************** 延时程序 *********************************************/ void delay(void) { unsigned int k,t; t=rate; while(t--) { for(k=0; k<150; k++) { } } } /******************************************************** * *步进电机运行 * *********************************************************/ void motor_turn(void) { unsigned char x; rate=0x0a; x=0x40; do { motor_ffw(); //加速 rate--; }while(rate!=0x01); do { motor_ffw(); //匀速 x--; }while(x!=0x01); do { motor_ffw(); //减速 rate++; }while(rate!=0x0a); } main() { while(1) { motor_turn(); } }
|
|
|
|
|
|
|
|
|
谢谢!!!!!!!!!!!!!!!!!!!!!!!!
|
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
4507 浏览 0 评论
9671 浏览 0 评论
6359 浏览 0 评论
4775 浏览 1 评论
5758 浏览 0 评论
请问一下qspi mtsr引脚传输一次32bit后引脚不拉低怎么解决?
749浏览 2评论
1029浏览 2评论
12629浏览 2评论
最近UJA1023开发遇到问题了,各位大神有谁知道可以替代这颗芯片的
934浏览 1评论
1293浏览 1评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 11:03 , Processed in 1.176112 second(s), Total 77, Slave 68 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖