ATMEGA32单片机控制步进电机程序

发布者:画意人生最新更新时间:2013-12-12 来源: eefocus关键字:ATMEGA32  TA8435H  步进电机 手机看文章 扫描二维码
随时随地手机看文章

/**************************************************************
          程序是调试通过的,可以直接使用,若单片机不一样,

          只需要修改IO接口部分就可以正常工作:开发软件 ICC AVR ************************************************************/



#include
#include


#define uchar unsigned char
#define uint   unsigned int

//#define M2           PD6     //M1、M2: 00 表示步进电机工作在整步方式, 10 为半步方式,
//#define M1           PD5     //        01 为1/ 4 细分方式,            11 为1/ 8 细分方式;
#define CK1          PA2
#define CW_CWW       PA1
#define ENABLE_L     PA0


/***********************************************************
                             串口输出显示
************************************************************/
void usart_putchar(uchar data)
{
    if(data==' ')
{
      usart_putchar(' ');
}
    while(!(UCSRA & (1<    UDR=data;
}
/************************************************************
                             通过串口发送控制命令:安字母K启动
************************************************************/
uchar usart_getchar(void)
{
    while(!(UCSRA & (1<    return UDR;
}
/**************************************************************

                             延时函数
/**************************************************************
void delay(uint i)//延时函数
{
uint j,k;
for(j=0;jfor(k=0;k<100;k++);
}
/**************************************************************
                             串口初始化
*********************************************************/

void uart_init(void)          //UART初始化
{ //DDRD = 0x02;
     DDRD = 0xaf;
     PORTD = 0xff;

UCSRA = 0x02; /*无倍速*/
     UCSRB = 0x18; /*允许接收和发送*/
     UCSRC = 0x06; /*8位数据,1位停止位,无校验*/
     UBRRH = 0x00;
     UBRRL = 12; /*9600*/

}



int main(void)
{
    uchar m;
uint n;

    DDRA = 0x7;
PORTA |= ( 1<
/************************************************************
                             若硬件控制,可以屏蔽下面2行
************************************************************/
//PORTD &= ~( 1<//PORTD |= ( 1<
   //PORTA &= ~( 1<    PORTA |= ( 1<uart_init( );
  

while(1)
{
     //m = usart_getchar();
    // if( m == 'k' )
   //{  
      PORTA &= ~( 1<      for(n=0;n<200;n++)
    {
             PORTA |= (1<          delay(1);
          PORTA &= ~(1<          delay(1);
    }
    PORTA |= ( 1<  
    //m=0;
    //usart_putchar('o');
    //usart_putchar('k');
   //}
}
}

关键字:ATMEGA32  TA8435H  步进电机 引用地址:ATMEGA32单片机控制步进电机程序

上一篇:基于AVR单片机atmega32的PID和PWM液体流量控制系统研究
下一篇:基于ATMEGA32单片机的三相网络电力仪表的研制

推荐阅读最新更新时间:2024-03-16 13:32

新颖的串行控制步进电机驱动器
摘要:美国Allegro公司推出的A3972型串口控制器是步进电机微步距驱动专用电路。一个A3972外加一个简易CPU即可实现二相步进电机的32微步距驱动。文中介绍该电路的特点、引脚功能和工作原理,并给出A3972的典型应用电路,该电路已成功地应用在某步进电机伺服系统中。 关键词:步进电机 串口控制器 细分驱动 1 前言 A3972是美国Allegro公司生产的PWM恒流控制微步距驱动二相步进电机专用驱动器。它的工作电压可达50V,驱动电流达1.5A,一个A3972即可驱动一台二相步进电机。芯片内部的PWM电流控制电路可通过串行接口被设置为电流慢、快、混合衰减模式。 通过电机的电流是由电路内部的6位数/模转换器(DAC)输
[工业控制]
如何在树莓派Pico上编程使用步进电机
步进电机是一种将电脉冲信号转换成相应角位移或线位移的电动机,每输入一个脉冲信号,转子就转动一个角度或前进一步,其输出的角位移或线位移与输入的脉冲数成正比,转速与脉冲频率成正比,因此,步进电动机又称脉冲电动机。 步进电机通常需要搭配一个步进电机驱动模块(也叫步进电机驱动器)来工作。步进电机驱动器是一种将电脉冲转化为角位移的执行机构。当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(称为“步距角”),它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速和定位的目的。 四相步进电机按照通电
[嵌入式]
双绕组双极步进电机芯片UDN2916LB的性能特点与应用电路分析
引言 随着国家“金税”工程进一步推进, 2005年近百家企业取得税控收款机生产许可证,容量达3000万台的税控市场即将井喷。据估计大约三分之一税控收款机市场将安装双步进微型打印机来打印发票。控制该类型步进电机驱动芯片UDN2916LB市场应用将极为广泛。 原理介绍:UDN2916LB是一款能够驱动双绕组双极步进电机的IC。适用的电机电源电压范围为10V-45V,逻辑电源电压不能超过7V;通过内部脉宽调制控制器(PWM)实现750mA的输出电流;同时还具有例如:内置1/3和2/3分割器,通过逻辑输入实现1-phase/2-phase/W1-2phase激励模式,内置过热和交叉电流保护功能,集成钳制二极管,内置防止低压误操作保护功
[嵌入式]
双绕组双极<font color='red'>步进电机</font>芯片UDN2916LB的性能特点与应用电路分析
单片机控制的遥控步进电机程序
;遥控电机程序, 按遥控器0-9步进电机正转0-9步,按遥控器11-19步进电器分别反转 ;0-9步,同时数码管分别显示当前的数字! ;*************************************************************************** org 00h JMP MAIN ORG 30H MAIN: MOV P1,#0FFH MOV P2,#0FFH MOV P3,#0FFH START: JB P3.7,$ ;等待遥控信号出现 SB: MOV R4,#8 ;8毫秒为高 电平 错误 SBA: MOV R5,#250 SBB: JB P3.7,SXB1 DJNZ R5,SBB DJNZ
[单片机]
步进电机知识科普(工作原理/构造/控制方法/用途/类型)
本文将为您介绍步进电机的基础知识,包括其工作原理、构造、控制方法、用途、类型及其优缺点。 步进电机基础知识 步进电机是一种通过步进(即以固定的角度移动)方式使轴旋转的电机。其内部构造使它无需传感器,通过简单的步数计算即可获知轴的确切角位置。这种特性使它适用于多种应用。 步进电机工作原理 与所有电机一样,步进电机也包括固定部分(定子)和活动部分(转子)。定子上有缠绕了线圈的齿轮状突起,而转子为 永磁体或可变磁阻铁芯。稍后我们将更深入地介绍不同的转子结构。图1显示的电机截面图,其转子为可变磁阻铁芯。 图1: 步进电机截面图 步进电机的基本工作原理为:给一个或多个定子相位通电,线圈中通过的电流会产生磁场,而转子会与该磁场对齐
[嵌入式]
<font color='red'>步进电机</font>知识科普(工作原理/构造/控制方法/用途/类型)
混合式步进电机技术对微型步进电机的影响
步进电机是当今最具挑战性电机之一,它们具有高精度的步进,高分辨率和平滑的运动,步进电机一般需要定制,在特定应用中才能实现最佳性能。通常自定义的设计属性有定子的缠绕模式、轴配置、自定义外壳和专用轴承,这使得步进电机的设计和制造极具挑战性。电机可以设计适合应用,而不是强迫应用适合电机,灵活的电机设计可以占用最小的空间。微型步进电机很难设计和制造,常常无法与大型电机竞争,微型步进电机提供一种独特的设计方法,随着混合式步进电机技术的出现,微型电机开始应用于医疗设备和实验室自动化领域,特别是需要高精度的应用,如微型泵、流体计量和控制、夹管阀和光学传感器控制。微型步进电机甚至可以融入电动手动工具,如电子移液管,其中混合步进电机以前是不可能集成
[嵌入式]
单片机驱动步进电机例程
#include reg51.h #define uint unsigned int #define uchar unsigned char void delay(uint z) { uchar i; while(z--) for(i=120;i 0;i--); } void main() { while(1) { P2=0X08; delay(100); P2=0X04; delay(100); P2=0X02; delay(100); P2=0X01; delay(100); } }
[单片机]
单片机驱动<font color='red'>步进电机</font>例程
精密控制系统中步进电机的电细分技术研究
摘要:采用具有电细分的步时电机驱动技术可实现精密控制系统中高精度的位移。基于单片机的直流电压控制的电细分驱动技术,避免了绕组互感带来的误差,提高了细分精度。实验表明,当采用精密丝杆机构、螺距为1mm、步进电机步距离为1.8%26;#176;、实现128细分时,可调整组件每步位置移动为0.04μm,最大误差为15%,均方误差为3.9%。 关键词:步进电机 直流电压控制 细分 在许多精密控制系统中需要有较高的位移精度。为实现高精度的位移与调整,常采用具有电细分的步进电机驱动技术。步进电机具有控制简单、无积累误差等优点。通常步进电机的电细分驱动有斩波恒流驱动与脉冲宽度调制驱动等方法。而采用单片机直流电压控制的电细分驱动方式,则具有线
[应用]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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