AVR128的程序——步进电机点动正反控制

发布者:JoyfulSunflower最新更新时间:2016-03-04 来源: eefocus关键字:AVR128  步进电机  正反控制 手机看文章 扫描二维码
随时随地手机看文章
#include
#include
#define uchar unsigned char
#define uint  unsigned int
 
uchar step_table[]={0xf1,0xf2,0xf4,0xf8};
uchar step_table1[]={0xf8,0xf4,0xf2,0xf1};
 
void Delayms(uint MS);
 
void mcu_init(void)
{
DDRA=0XFF;
PORTA=0XFF;
DDRC=0XFF;                   
PORTC=0XFF;
 
DDRF|=0X0E;
PORTF|=0X0E;
PORTF&=0xF8;             
 
DDRB |=0X1f;          
PORTB|=0X1f;  
 
DDRD = 0x00;
PORTD = 0XFF;                                     
}
 
void main(void)
{
uint i,a1=0,a2=0;
mcu_init();
while(1)
{
if((PIND&0x01)!=0X01)
{
Delayms(5);
if((PIND&0x01)!=0X01)
{
                a1=1;
while(a1)
{
   PORTA=0XFE;
for(i=0;i<4;i++)
{
PORTB = step_table[i];
Delayms(3);
}
if((PIND&0X01)!=0X00);
   {
PORTA=0XFF;
a1=0;
}
   }        
   }
}
   if((PIND&0x02)!=0X02)
{
Delayms(5);
if((PIND&0x02)!=0X02)
{
                a2=1;
while(a2)
{
PORTA=0XEF;
for(i=0;i<4;i++)
{
PORTB = step_table1[i];
Delayms(3);
}
if((PIND&0X02)!=0X00);
   {
PORTA=0XFF;
a2=0;
}
   }        
   }
   }
}
}
 
 
void Delayms(uint MS)  
{
     uint i,j;
     for( i=0;i
     for(j=0;j<1141;j++);
}
关键字:AVR128  步进电机  正反控制 引用地址:AVR128的程序——步进电机点动正反控制

上一篇:AVR128的程序——EEPROM记录复位次数
下一篇:AVR128的程序——定时器

推荐阅读最新更新时间:2024-03-16 14:46

基于stc89c52单片机控制步进电机
51单片机是许多单片机初学者的入门开发板,今天给大家做一个基于51内核的stc89c52板子来控制步进电机,可以实现步进电机的正反转、加减速。另外,使用板子自带的Ds18b20模块进行环境测温,并将测得的数据用lcd液晶屏进行显示。并在温度达到设定值时蜂鸣器报警。 第一步,硬件 1 stc89c52开发板,这个板子就不多讲了,网上有很多 2 步进电机,用的是网上非常便宜的4相5线步进电机 28BYJ-48,电压为5v 第二,程序 1 步进电机程序,定义步进电机的IO口以及方向以便调速和转向 2 LCD程序,主要是三个函数,一个初始化函数,一个写函数,一个显示函数 3 温度传感器Ds18b20,主要是这个读函
[单片机]
基于stc89c52单片机<font color='red'>控制</font><font color='red'>步进电机</font>
一文分清普通电机、减速电机、步进电机、舵机、伺服电机的区别
这里所说的普通电机、步进电机、伺服电机、舵机是指直流微电机,平时我们接触的也多是直流电机。电动机,别名“马达”,就是指根据电磁感应定律保持电磁能的变换或传送的这种电磁感应设备。电机也称(别名电机),在电源电路连用英文字母“M”(旧规范用“D”)表达。其主要功能是产生驱动扭矩,用作电器或各种机器的动力源。发电机由电路中的字母“G”表示。 普通电机 普通电机是我们平时见得比较多的电机,电动玩具,刮胡刀等里面都有,一般为直流有刷电机。这种电机有转速过快、扭力过小的特点,一般只有两个引脚,用电池的正负极接上两个引脚就会转起来,然后电池得正负极再相反的接在两引脚上电机将会反向转动。 减速电机 减速电机就是普通电机加上了减速箱,这样
[机器人]
ATMEGA8单片机对步进电机的驱动
#include #include #defineucharunsignedchar #defineuintunsignedint ucharnp; //步进电机运行数据表 constucharmotortb[]={0x11,0x99,0x88,0xCC,0x44,0x66,0x22,0x33}; voiddelay_nms(uintms)//每步延时de子程序 { uinti; for(i=0;i_delay_loop_2(8*250); } voida_step(uchard,uchart)//步进电机走一步d=0正转d=1反转t越大走得越慢 { if(d&0x01) { if(np==0) np=7; else np
[单片机]
ATMEGA8单片机对<font color='red'>步进电机</font>的驱动
STM32在定时器中控制步进电机
写WEB程序的时候,发现如果加上步进电机控制的话,就会出现问题。原因是如果把电机控制放在uip循环中处理的话,因为控制电机涉及到时间问题。所以必须解决,想到的方法就是多任务的思想。把步进电机的处理放在定时器中断里面。这样的话就能避免问题了。顺便学习了库函数操作定时器。这里用到的定时器功能简单,只需要产生更新中断。 下面是定时器初始化代码 //定时器3初始化 //arr:定时重装值 //psc:分频值 void TIM3_Init(uint16_t arr, uint16_t psc) { TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; NVIC_
[单片机]
如何用电阻法巧测正反控制电路
如何用电阻法巧测正反转控制电路 电动机正反转控制电路因造作较多,电路也较复杂,属于在新装或重修后,有可能因原线路零乱而误接,如果此时盲目试车就又肯呢个造成事故。 图为交流电动机正反转控制电路。现就以此例来说明测试方法。万用表拨在R×100Ω,在正常情况下,控制回路中各点间的电阻值如表所示。 如果线路接错,就会出现与表所例的电阻不相符合,这时是绝对不能通电试车的。表所例电阻值,是以CJ10-10型交流接触器为例,器线圈额定工作电压为300V,线圈电阻值为1300Ω。如果是其他型号的,需要用万用表实例一下线圈的电阻值,然后再按图电路测试。
[模拟电子]
如何用电阻法巧测<font color='red'>正反</font>转<font color='red'>控制</font>电路
专用芯片的步进电机步距角细分控制
简介:自动控制系统的综合性能在很大程度上取决于步进电机的精确度,细分技术可以显著改善步进电机的距角精度。利用细分算法控制AT89C51单片机输出具有一定时序的方波控制信号,经过TA8435芯片处理后输出相应的阶梯波来实现对步进电机的细分控制。本文重点就TA8435芯片的使用与控制进行详细介绍。 引言 步进电机是控制执行元件,是机电一体化的关键产品之一,广泛应用在各种自动化控制系统和精密机械等领域。步进电机将电脉冲信号转换成相应角位移或线性位移的驱动装置,其转动速度和脉冲频率能严格同步,具有较高的重复定位精度,且没有累积误差 。步进电机的驱动是由驱动电路实现的,驱动电路和步进电机构成一个有机整体 。 步进电动机具有结构简单、
[单片机]
专用芯片的<font color='red'>步进电机</font>步距角细分<font color='red'>控制</font>
关于步进电机和伺服电机如何选择
步进电机是一种离散运动的装置,它和现代数字控制技术有着本质的联系。在目前国内的数字控制系统中,步进电机的应用十分广泛。随着全数字式交流伺服系统的出现,交流伺服电机也越来越多地应用于数字控制系统中。为了适应数字控制的发展趋势,运动控制系统中大多采用步进电机或全数字式交流伺服电机作为执行电动机。虽然两者在控制方式上相似(脉冲串和方向信号),但在使用性能和应用场合上存在着较大的差异。现就二者的使用性能作一比较。 控制精度不同   两相混合式步进电机步距角一般为3.6度、 1.8度,五相混合式步进电机步距角一般为0.72 度、0.36度。也有一些高性能的步进电机步距角更小。如四通公司生产的一种用于慢走丝机床的步进电机,其步距角为0
[嵌入式]
基于串口控制器的步进电机细分驱动系统设计
步进电机精度高,惯性小,在不失步的情况下没有步距误差积累,特别适用于数字控制的定位系统。传统的细分驱动电路由细分环行分配器、放大器和合成器等部分组成。这种电路应用复杂,灵活性差。本文利用A3967SLB作为步进电机微控芯片,简化了步进电机的控制实现。由于单片机资源没有PC丰富,人机界面也没有PC友好,因此,本文采用了主从式结构,即PC用于管理,单片机用于执行。 由A3967SLB构成步进电机的驱动部分 A3967SLB是美国Allegro公司生产的PWM恒流控制微步距驱动二相步进电机专用驱动器。它的工作电压可达30V,驱动电流达750mA,一个A3967SLB即可驱动一台二相步进电机,可实现8细分驱动。芯片内部的P
[单片机]
基于串口<font color='red'>控制</font>器的<font color='red'>步进电机</font>细分驱动系统设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved