起重机超载限制器设计_软硬兼修的空间_百度空间


再怎么设计也全是模拟的,哎,原理图

下面是源代码:

#include <reg52.h>
unsigned char wei[5]={0x01,0x02,0x04,0x08,0x10};
unsigned char table0[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
unsigned char table1[10]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};

sbit sound=P3^0;
sbit start=P3^1;
sbit button=P3^2;
sbit stop=P3^4;
sbit led=P3^5;

unsigned char tmp=0x00,a[5];
unsigned char cishu=0;
float s,cnow;
int flag=0;
int chaoflag=0;

void init()
{
EX0=1;
EA=1;

}

void delay()
{
int i;
for(i=0;i<500;i++);


}

void longdelay()
{
int i,j;
for(i=0;i<2;i++)
{
   for(j=0;j<500;j++);
}

}


void display1()
{
int i;
for(i=0;i<5;i++)
{

   P2=wei[i];
   if(i==3)
   {
    P0=table1[a[i]];
   }
   else
   {
    P0=table0[a[i]];
   }

   longdelay();

}

}

void display2()
{
int i;
if(cishu<10)
{
   for(i=0;i<1;i++)
   {
    P2=wei[i];
    P0=table0[cishu];
    longdelay();
   }
}

}
void shan()
{
int i,j;
for(j=0;i<2;j++)
{
   led=0;
   for(i=0;i<450;i++);
   led=1;
   for(i=0;i<450;i++);  
}
}

void ning()
{
int i,j,k;
for(i=0;i<10;i++)
{
   for(j=0;j<10;j++)
   {
    sound=0;
    for(k=0;k<90;k++);
    sound=1;
    for(k=0;k<90;k++);
   }
   for(j=0;j<100;j++)
   {
    sound=0;
    for(k=0;k<45;k++);
    sound=1;
    for(k=0;k<45;k++);
   }

}

}

void duan()
{
stop=0;
}

void tong()
{
stop=1;
}

void process()
{
s=5.0/256.0;
cnow=s*tmp;
cnow=cnow*600;
a[0]=(unsigned char)(cnow/1000);
a[1]=(unsigned char)(cnow/100-a[0]*10);
a[2]=(unsigned char)(cnow/10-a[0]*100-a[1]*10);
a[3]=(unsigned char)(cnow-a[0]*1000-a[1]*100-a[2]*10);
a[4]=(unsigned char)(cnow*10-a[0]*10000-a[1]*1000-a[2]*100-a[3]*10);
if(cnow>=2250&&cnow<2700)
{
   shan();
   ning();
   tong();
}
else if(cnow>=2700)
{
   shan();
   ning();
   duan();
   chaoflag=1;
}
else
{
   tong();
}

}

void read()
{
delay();
start=1;
delay();
start=0;
tmp=P1;

}

/*int detect()
{
int fflag;
fflag=flag;
if(button==0&&fflag==0)
{
   delay();
   if(button==0&&fflag==0)
   {
    fflag=1;
   }
}
if(button==0&&fflag==1)
{
   delay();
   if(button==0&&fflag==1)
   {
    fflag=0;
   }
}
return fflag;
}
*/
main()
{
init();
while(1)
{
  
   read();
//   flag=detect();
   if(flag==0)
   {
    display1();
   }
   else
   {
    display2();
   }

   process();
   if(chaoflag==1)
   {
    cishu++;
   }
   chaoflag=0;
}
}

void int0() interrupt 0 using 1
{
int fflag;
if(button==0)
{
   delay();
   fflag=flag;
   if(button==0&&fflag==0)
   {    
    fflag++;
    flag=fflag;
    return ;
   }
   if(button==0&&fflag>=1)
   {   
    fflag=0;
    flag=fflag;
    return ;

   }

}
}

还有20多天了,希望能做20多个东西吧。



郑重声明:资讯 【起重机超载限制器设计_软硬兼修的空间_百度空间】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——