首页 > 应用 > 单片机应用
[导读]时代变了,软驱没有用了,但是里面的电机是比较好玩的,拿出来研究研究。CODE:
/*用mega32三个口线驱动软驱电机.
PA2接LB1833 ENA1\2 脚;
PA1接LB1833 IN1 脚;
PA0接LB1833 IN2 脚.
**************************

时代变了,软驱没有用了,但是里面的电机是比较好玩的,拿出来研究研究。

CODE:
/*用mega32三个口线驱动软驱电机.
PA2接LB1833 ENA12 脚;
PA1接LB1833 IN1 脚;
PA0接LB1833 IN2 脚.
*************************************************** /
//ICC-AVRapplication builder : 2005-5-20 10:40:30
// Target : M32
// Crystal: 3.6864Mhz

#include
#include

unsigned char np;

//步进电机运行数据表
const unsigned char motortb[]={0x05,0x07,0x06,0x04,0x05,0x07,0x06,0x04};

void delay ( unsigned char t );// 每步延时的子程序
void a_step( unsigned char d, unsigned char t );//步进电机走一步d=0 正转d=1 反转

void port_init( void )
{
PORTA = 0x00;
DDRA = 0xFF;
PORTB = 0xFF;
DDRB = 0x00;
PORTC = 0xFF;
DDRC = 0x00;
PORTD = 0xFF;
DDRD = 0x00;
}

//call this routine to initialise all peripherals
void init_devices( void )
{
//stop errant interrupts until set up
CLI(); //disable all interrupts
port_init();

MCUCR = 0x00;
GICR = 0x00;
TIMSK = 0x00; //timer interrupt sources
SEI(); //re-enable interrupts
//all peripherals are now initialised
}

void delay ( unsigned char t )// 每步延时的子程序
{
unsigned char i;
unsigned int j;
for (i = 0 ; i < t ; i++ )
{
for ( j = 0 ;j < 800 ; j++ )
;
}
}
void a_step ( unsigned char d, unsigned char t) //步进电机走一步d=0 正转d=1 反转 t // 越大走得越慢
{
if ( d & 0x01 )
{
if ( np == 0 )
{
np = 7;
}
else
{
np--;
}
}
else
{
if ( np == 7 )
{
np = 0;
}
else
{
np++;
}
}
PORTA = motortb[np];
delay(t);
}
void a_turn (unsigned char d, unsigned char t)// 步进电机走一圈
{
unsigned char i;
for ( i = 0 ; i < 96 ; i++ )
{
a_step ( d, t );
}
}


void main ( void )
{
np = 4;
while (1)
{
a_turn ( 1, 1 );
}

}

换一批

延伸阅读

[单片机应用] pic单片机也可以很简单,搞定pic单片机IO口操作

pic单片机也可以很简单,搞定pic单片机IO口操作

对于pic单片机的学习,很多朋友总是能充满激情,不断利用闲余时间研究pic单片机的各类技术。而谈及pic单片机,必须牵扯至51、AVR单片机。因此本文中,将探讨pic单片机以及51、AVR单片机对于IO口的操作。对于本文,希望大家认真研读,......

关键字:pic单片机 51单片机 AVR单片机

[单片机应用] AVR 单片机实现 LED 灯?#20102;?

AVR 单片机实现 LED 灯?#20102;?

ATmega16 有 4 个 8 位的双向 I/O 端口 PA, PB, PC, PD, 他们对外对应 32 个 I/O 引脚, 每一位都可以独立的用于逻辑信号的输入和输出. 在 5V 工作电压下, 输出高电平时, 每个引脚可输出达 20m......

关键字:AVR 单片机 LED 灯?#20102;?

[单片机应用] AVR单片机(学习ing)—(十)、ATMEGA16的同步串行接口SPI—02

AVR单片机(学习ing)—(十)、ATMEGA16的同步串行接口SPI—02

1)那就是在之前的介绍中说过,在说一遍~~主机和从机的两个移位寄存器可以被认为是一个公开的16位环?#25105;?#20301;寄存器,当数据从主机移向从机时,同时从机饿数据也向相反的放向移向主机。这就意味着在一个以为周期内,主机......

关键字:AVR单片机 ATMEGA16 同步串行接口 SPI

我 要 评 论

网友评论

技术子站

更多

项目外包

更多

推荐博客

新时时彩