智能车 PWM控制直流电机
看了很多文章,才想出来的这个,希望大家指点下,新手上路,渴望指点/*
* author: 肆意年华-1
* function: PWM 控制电机速度
* date;2013-7-22 11:05:55
* 版本: vertion 1.0
*/
# include<reg52.h>
sbit IN1 = P1^0; //驱动电机信号的输出端口
sbit IN2 = P1^1;
sbit ENA = P1^2; //PWM 输出端
void int1_init(); //定时器1初始化 声明
/*
*函数名称:主函数
*
*/
void main()
{
IN1 = 1; //电机逆时针转
IN2 = 0;
int1_init(); //定时器1初始化
while(1); //死循环
}
/*
*函数名称:中断函数
*
*/
void int1_interrupt() interrupt 3
{
static unsigned char M_count; // 定义半个周期 M_count
ENA = 0;
M_count++;
if(M_count == 2)// 半个周期 ---占空比 %50
{
ENA = ~ENA;
M_count = 0; //重新计时
}
TH1 = (65536-2000)/256; //高电平持续的时间
TL1 = (65536-2000)%256;
}
void int1_init()
{
TMOD = 0X10; // Timer1同时配置模式1,16位计数模式
TH1 = (65536-2000)/256; //定时时间 2ms
TL1 = (65536-2000)%256;
TR1 = 1; //打开定时器1
ET1 = 1; //允许定时器1溢出中断
EA = 1; //打开中断
}
定时器产生的?有些单片机自带PWM,比如AVR longfeix86 发表于 2013-7-22 21:16 static/image/common/back.gif
定时器产生的?有些单片机自带PWM,比如AVR
是哈,用51做的, 这靠谱? 我试过了,肯定靠谱 mark{:smile:}
页:
[1]