51單片機(jī)實(shí)現(xiàn)直流電機(jī)的調(diào)速控制
電路圖如下
本文引用地址:http://cafeforensic.com/article/201611/321819.htm
占空比18%-82%連續(xù)可調(diào),通過(guò)調(diào)節(jié)電路中的電位器實(shí)現(xiàn)。
做了單定時(shí)器控制和雙定時(shí)器控制兩個(gè)程序,電路圖一樣。
單定時(shí)器控制程序
#include
#include
int count0=1000;
bit A=0;
sbit IN1=P3^4;
sbit IN2=P3^5;
sbit INTR=P3^2;
sbit wr=P3^6;
sbit rd=P3^7;
sbit PB1=P3^0;
int T0_H,T0_L;
char TAB[11]={0xc0,0xf9,0xa4,0xb0,0x99,
void delay(int);
void display(void);
main()
{int i,DATA;
}
void t0(void)interrupt 1
{if(A==0)
else
}
void display(void)
{int i,j,per,scan;
}
void delay(int x)
{int i,j;
for(i=0;i
}
雙定時(shí)器控制的程序
#include
#include
#define LED P2
int count1=0;
int count0=10000;
#define T0_H (65535-count0)/256
#define T0_L (65535-count0)%6
#define T1_H (65535-count1)/256
#define T1_L (65535-count1)%6
sbit IN1=P3^4;
sbit IN2=P3^5;
sbit INTR=P3^2;
sbit wr=P3^6;
sbit rd=P3^7;
char TAB[11]={0xc0,0xf9,0xa4,0xb0,0x99,
void delay(int);//1ms
void display(void);
void T(int);
main()
{int i;
}
void t1(void)interrupt 3
{TH1=T1_H;TL1=T1_L;
}
void t0(void)interrupt 1
{count0=10000-count1;
}
void T(int Tw)
{ Tw=Tw<<5;
}
void display(void)
{int i,j,per,scan;
}
void delay(int x)
{int i,j;
for(i=0;i
}
不足之處:這兩種方法實(shí)現(xiàn)都有一個(gè)問(wèn)題,輸出PWM波的周期時(shí)長(zhǎng)與期望有一定相差,期望一周期10ms,仿真后得到波形周期為12.5ms左右,具體的解決辦法不是很清楚,希望有高人路過(guò),不吝賜教!
評(píng)論