📄 final.c
字号:
/*********************************************************************************
**
** 名 称:FINAL.C
** 功 能:液滴检测及监控
** I / O :INT0:P0.2-----光电传感器接口
** INT1:P0.3-----键盘设置接开关
**********************************************************************************/
#include<c8051f020.h>
void time0();
void senddata(unsigned char,unsigned char);
void delay(long int);
void yan03s(unsigned char);
//void Delay1us(unsigned int us);
void setoff();
//void setv(bit,unsigned char,unsigned char);
sbit t1=P2^0;
sbit t2=P2^1;
sbit k1=P1^4;
sbit k2=P1^5;
sbit k3=P1^6;
sbit k4=P1^7;
unsigned char s=1,s1=0,s2=0,s3=0,i2=0,f=1,g=0;
int k=0;
unsigned long int z=10;
void int0(void) interrupt 0
{
s=0;
IE0=0;
}
void int1(void) interrupt 2
{
senddata(1,0x0a);
senddata(2,0x0a);
senddata(3,0x0a);
while(k4)
{
while(!k1)
{
s1++;
if(s1>9)
s1=0;
senddata(1,s1);
yan03s(5);
}
while(!k2)
{
s2++;
if(s2>9)
s2=0;
senddata(2,s2);
yan03s(5);
}
while(!k3)
{
s3++;
if(s3>9)
s3=0;
senddata(3,s3);
yan03s(5);
}
}
senddata(1,s1);
senddata(2,s2);
senddata(3,s3);
yan03s(4);
senddata(1,0x0f);
senddata(2,0x0f);
senddata(3,0x0f);
yan03s(4);
senddata(1,s1);
senddata(2,s2);
senddata(3,s3);
k=s1+s2*10+s3*100;
s1=0;s2=0;s3=0;
g=1;
IE1=0;
}
/*
void t2int(void) interrupt 5
{
TF2=0;
f=0;
}*/
main()
{
unsigned char e,i=0,j=0,o=2;
int m,a[3],n=0;
unsigned char l=0,x=0,v=0,c=1;
EX0=1;
IT0=1;
EX1=1;
IT1=1;
// ET2=1;
// PT2=1;
PX0=1;
PX1=0;
WDTCN=0xde; //CLOSE WDOG
WDTCN=0xad;
OSCXCN=0x67; //ENABLE EXTERNAL CLK
delay(10000);
delay(10000);
e=!OSCXCN&0x80;
while(e);
OSCICN|=0x08;
XBR2=0x40; //CROSS OB
XBR1=0x14;
XBR0=0x04;
P0MDOUT=0xff;
P1MDOUT=0xff;
P2MDOUT=0xff;
TMOD=0x11; //T0 ENABLE
setoff();
senddata(1,(k%100)%10);
senddata(2,(k%100)/10);
senddata(3,k/100);
senddata(4,10);
senddata(5,0);
senddata(6,0);
senddata(7,0);
EA=1;
while(1)
{
do
{
time0();
z++;
}
while(s);
TR0=0;
a[l]=60*200/z;
if((a[l]>300)||(a[l]<20))
a[l]=n;
else
n=a[l];
l++;
senddata(8,i2);
yan03s(1);
i2++;
if(i2>9)
i2=0;
switch(l)
{
case 3:
{
m=(a[0]+a[1]+a[2])/3;
senddata(5,(m%100)%10);
senddata(6,(m%100)/10);
senddata(7,m/100);
l=0;
if(((k<m-3)&&(k>=m-10))||((k<m+10)&&(k>m+3)))
c=1;
}break;
}
if(g)
{
if(k<m-10)
{ t1=1;t2=0;}
if((k<m-3)&&(k>=m-10)&&c)
{t1=1;t2=0;yan03s(5);t1=0;t2=0;c=0;}
if((k<=m+3)&&(k>=m-3))
{t1=0;t2=0;}
if((k<m+10)&&(k>m+3)&&c)
{t1=0;t2=1;yan03s(5);t1=0;t2=0;c=0;}
if(k>m+10)
{t1=0;t2=1;}
}
z=10;
s=1;
}
}
void time0()
{
TH0=0xec;
TL0=0x78;
TR0=1;
while(!TF0);
TF0=0;
TR0=0;
}
/*
void setv(bit v1,unsigned char v2,unsigned char v3)
{
TH2=0x00;
TL2=0x00;
TR2=1;
while(!TF2||v1);
TR2=0;
TF2=0;
if(f)
{
v3++;
if(v3>9)
v3=0;
senddata(v2,v3);
}
else
f=1;
}*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -