⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 final.c

📁 很有用的CYGNAL C语言程序,
💻 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 + -