完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
#include "reg52.h"
void delay(); //Motor ***it F1 = P1^0; ***it F2 = P1^1; ***it F3 = P1^2; ***it F4 = P1^3; unsigned char code FFW[8]={0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf9}; //反转 unsigned char code FFZ[8]={0xf9,0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0xf1}; //正转 unsigned int K, rate; /********************************************************** * * * 步进电机驱动 * ***********************************************************/ void motor_ffw() { unsigned char i; for (i=0; i<8; i++) //一个周期转30度 { P1 = FFW&0x1f; //取数据 delay(); //调节转速 } } /******************************************** 延时程序 *********************************************/ void delay() { unsigned int k,t; t=rate; while(t--) { for(k=0; k<100; k++) { } } } /******************************************************** * *步进电机运行 * *********************************************************/ void motor_turn() { unsigned char x; rate=0x2a; x=0x40; do { motor_ffw(); //加速 rate--; }while(rate!=0x08); do { motor_ffw(); //匀速 x--; }while(x!=0x01); do { motor_ffw(); //减速 rate++; }while(rate!=0x2a); } main() { while(1) { motor_turn(); } } 谁能告诉我为什么rate能控制加减速。和rate与速度的关系 |
|
相关推荐
1个回答
|
|
rate控制的是延时函数延时时间的长短,延时函数当中rate的值赋给了时间函数t,当然rate的大小就是延时的时间了。另外步进电机的速度大小本身就是你两个脉冲之间间隔时间的大小啊。间隔时间越长速度越慢,间隔越短,速度越快。不过,给你点建议,这些问题,你买的51开发相关的视频和书籍都会有详细的讲解的,刚开始要好好看书,我当初学的时候把书一字不差的看了一遍,然后才去编程。
|
|
|
|
只有小组成员才能发言,加入小组>>
3130 浏览 9 评论
2827 浏览 16 评论
3337 浏览 1 评论
8708 浏览 16 评论
3930 浏览 18 评论
9549浏览 3评论
886浏览 3评论
457浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
457浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2176浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-19 20:23 , Processed in 1.086202 second(s), Total 81, Slave 61 queries .
Powered by 电子发烧友网
© 2015 www.ws-dc.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号