pwm电机调速的编程以及protues的仿真图,下面有附件,大家可以下载观看
单片机源程序如下:
#include <reg51.h>
sbit PWM=P2^7;
sbit CS3=P2^3;
sbit CS2=P2^2;
sbit CS1=P2^1;
sbit CS0=P2^0;
sbit key1=P1^0;
sbit key2=P1^1;
sbit key3=P1^2;
sbit key4=P1^3;
unsigned char timer1;
unsigned char tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
void Time1Config();
void main(void)
{
Time1Config();
while(1)
{
if(timer1>100)
{
timer1=0;
}
if(~key1)
{
if(timer1<30)
{
PWM=1;
}
else
{
PWM=0;
}
CS0=0;CS1=0;CS2=1;CS3=0;
P0=tab[3];
P0=0xff;
CS0=0;CS1=0;CS2=0;CS3=1;
P0=tab[0];
P0=0xff;
}
else if(~key2)
{if(timer1 <50)
{
PWM=1;
}
else
{
PWM=0;
}
CS0=0;CS1=0;CS2=1;CS3=0;
P0=tab[5];
P0=0xff;
CS0=0;CS1=0;CS2=0;CS3=1;
P0=tab[0];
P0=0xff;
}
else if(~key3)
{if(timer1 <80)
{
PWM=1;
}
else
{
PWM=0;
}
CS0=0;CS1=0;CS2=1;CS3=0;
P0=tab[8];
P0=0xff;
CS0=0;CS1=0;CS2=0;CS3=1;
P0=tab[0];
P0=0xff;
}
else if(~key4)
{if(timer1 <100)
{
PWM=1;
}
else
{
PWM=0;
}
CS0=0;CS1=1;CS2=0;CS3=0;
P0=tab[1];
P0=0xff;
CS0=0;CS1=0;CS2=1;CS3=0;
P0=tab[0];
P0=0xff;
CS0=0;CS1=0;CS2=0;CS3=1;
P0=tab[0];
P0=0xff;
}
}
}
void Time1Config()
{
TMOD|= 0x10;
TH1 = 0xFE;
TL1 = 0x0C;
ET1 = 1;
EA = 1;
TR1 = 1;
}
void Time1(void) interrupt 3
{
。。。。。。
剩余的在文件里面,大家去下载吧。
全部资料51hei下载地址:
pwm调速.rar
(19.82 KB, 下载次数: 171)
|