#include<reg51.h>
#define uint unsigned int
sbit k1=P3^4;
sbit k2=P3^5;
sbit s2=P3^2;
sbit s3=P3^3;
void isr_int0(void);
void isr_int1(void);
void zd_t0ist(void);
uint speed,count,r1,i,t,k;
void main()
{
k=0;
t=0;r1=0x11;
speed=0;
count=1;
TMOD=0x01;
ET0=1;
EA=1;
Ex0=1;
EX1=1;
TH0=0xcf;
TL0=0x2c;
for(;;)
{
if(k1==0)
{
P0=0xff;
P2=0xff;
speed=0;
TR0=0;
}
else
{
if(k2==0)
P0=0xbf;
else P0=0xf9;
if(speed==0)
{
P2=0xc0;
TR0=0;
}
else TR0=1;
}
}
}
void isr_int0(void) interrupt0
{
if(speed<7)
speed=speed+1;
while(s3==0)
{
for(i=0;i<10;i++);
}
}
void zd_t0ist(void) interrupt 1
{
TH0=0xd8;
TL0=0xf0;
switch(speed)
{
case 0:P2=0xc0;count=0;break;
case 1:P2=0xf9;count=60;break;
case 2:P2=0xa4;count=40;break;
case 3:P2=0xb0;count=35;break;
case 4:P2=0x99;count=30;break;
case 5:P2=0x92;count=28;break;
case 6:P2=0x82;count=25;break;
case 7:P2=0xf8;count=21;break;
default:break;
}
if(t==0)
t=count;
if(t>0)
t=t-1;
if(k2==0)
{
if(t==0)
{
switch(k)
{
case 0:P1=0x01;break;
case 1:P1=0x02;break;
case 2:P1=0x04;break;
case 3:P1=0x08;break;
default:break;
}
k=k+1;
if(k==4)
k=0;
}
}
else
{
if(t==0)
{
switch(k)
{
case 0:P1=0x08;break;
case 1:P1=0x04;break;
case 2:P1=0x02;break;
case 3:P1=0x01;break;
default:break;
}
k=k+1;
if(k==4)
k=0;
}
}
}
diandongji.zip_diandongji_电动_电动机转速
版权申诉
71 浏览量
2022-09-14
22:27:10
上传
评论
收藏 740B ZIP 举报
Kinonoyomeo
- 粉丝: 76
- 资源: 1万+
评论0