除直流电机外,还有步进电机,舵机,无刷电机,空心杯电机。
续流二极管保护电路。
频率 = 1 / TS 占空比 = TON / TS 精度 = 占空比变化步距
频率过低可能导致抖动(Ts过大)
LED呼吸灯
#include <REGX52.H>
sbit LED=P2^0;
void Delay(unsigned int i)
{
while(i--);
}
void main()
{
unsigned char Time,time;
while(1)
{
//逐渐亮起
for(Time=0;Time<100;Time++)
{
for(time=0;time<20;time++)
{
LED=0;
Delay(Time);
LED=1;
Delay(100-Time);
}
}
//逐渐熄灭
for(Time=100;Time>0;Time--)
{
for(time=0;time<20;time++)
{
LED=0;
Delay(Time);
LED=1;
Delay(100-Time);
}
}
}
}
直流电机调速
#include <REGX52.H>
#include "Delay.h"
#include "Key.h"
#include "Nixie.h"
#include "Timer.h"
sbit Motor=P1^0;
unsigned char Counter,Compare;
unsigned char KeyNum,Speed;
void main()
{
Timer0_Init();
//Compare=5;//暗
while(1)
{
KeyNum=Key();
if(KeyNum==1)
{
Speed++;
Speed%=4;
if(Speed==0)Compare=0;
if(Speed==1)Compare=50;
if(Speed==2)Compare=75;
if(Speed==3)Compare=100;
}
Nixie(1,Speed);
}
}
void Timer0_Routine() interrupt 1
{
TL0 = 0x9C; //设置定时初值
TH0 = 0xFF; //设置定时初值
Counter++;
Counter%=100;
if(Counter>Compare)
{
Motor=0;
}
else
{
Motor=1;
}
}