您当前的位置:五五电子网电子知识单片机-工控设备AVR单片机软件产生PWM控制直流电机C程序 正文
软件产生PWM控制直流电机C程序

软件产生PWM控制直流电机C程序

点击数:7404 次   录入时间:03-04 11:47:04   整理:http://www.55dianzi.com   AVR单片机

//软件产生PWM控制直流电机C程序

//软件版本: ICCAVR ver 7.05
// Target : M48
// Crystal: 8.0000MHz
#include <iom48v.h>
#include <macros.h>
unsigned int Pwmw;
unsigned int adc_v;

//ADC 转换函数
unsigned int adc_get(void)
{

ADCSRA |= (1<<ADSC); //启动ADC转换
while( ADCSRA & (1<<ADSC)); //判断ADC转换是否结束
return ADC; //取ADC的转换结果
}


//电机驱动、调速子程序
void PWMsub(unsigned int Pwmh)
{

unsigned int i;
unsigned int Pwml;
Pwml = Pwmw - Pwmh;
PORTD |= 0x10; //高电平
for (i = 0;i < Pwmh;i++)
;
PORTD = 0x00; //低电平
for (i = 0;i < Pwml;i++)
;
}
//主函数
void main()
{
PORTD = 0x00; //PD端口置0
DDRD = 0xF0; //PD7,、PD6、PD5、PD4输出
ADCSRA = 0x00; //设置前,先关闭ADC
ADMUX = (1<<REFS0) ; //选择内部AVCC为基准
ACSR = (1<<ACD); //关闭模拟比较器
//使能ADC,启动ADC单次转换,选64分频
ADCSRA = (1<<ADEN)|(1<<ADSC)|(1<<ADPS2)|(1<<ADPS1);
Pwmw = 0x03ff;
while(1)
{
adc_v = adc_get(); //ADC转换
PWMsub(adc_v);
}
}




本文关键字:直流电机  程序  软件  AVR单片机单片机-工控设备 - AVR单片机

《软件产生PWM控制直流电机C程序》相关文章>>>