研发埠
标题:
如何用51单片机实现直流电机调速?
[打印本页]
作者:
布丁奶茶
时间:
2013-3-13 14:15
标题:
如何用51单片机实现直流电机调速?
作者:
狗狗
时间:
2013-3-13 14:16
直流电机调速主要采用PWM调速方式实现。51单片机实现直流电机调速可以采用中断方式实现PWM脉宽的控制,实现调速功能。 下例是51单片机结合中断实现直流电机调速的程序。#include<reg52.h> sbit KEY1 = P3^1; //定义调速按键sbit PWM = P1^5; //定义调速端口unsigned char CYCLE; //定义周期T=x*0.1msunsigned char PWM_ON ; //定义高电平时间 void delay(unsigned int cnt){ while(--cnt);} main(){ unsigned char PWM_Num; TMOD |=0x01; TH0=(65536-1000)/256; TL0=(65536-1000)%256; IE= 0x82; TR0=1; CYCLE = 10; while(1) { if(!KEY1) { delay(10000); if(!KEY1) { PWM_Num++; if(PWM_Num==4) PWM_Num=0; switch(PWM_Num) { case 0
0=0x06
WM_ON=0;break; case 1
0=0x5B
WM_ON=4;break; case 2
0=0x4F
WM_ON=6;break; case 3
0=0x66
WM_ON=8;break; default:break; } } } }}void tim(void) interrupt 1 using 1{ static unsigned char count; TH0=(65536-1000)/256; TL0=(65536-1000)%256; if (count==PWM_ON) { PWM = 1; } count++; if(count == CYCLE) { count=0; if(PWM_ON!=0) PWM = 0; }}
欢迎光临 研发埠 (http://bbs.yanfabu.com/)
Powered by Discuz! X3.2