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

📄 cesu.c

📁 很有用的CYGNAL C语言程序,
💻 C
字号:
#include<c8051f020.h>
//#include <intrins.h>
void time0();
void senddata(unsigned char,unsigned char);
void delay(long int);
void yan03s(unsigned char);
//void Delay1us(unsigned int us);
void setoff();

sbit t1=P2^0;
sbit t2=P2^1;
sbit k1=P1^1;
sbit k2=P1^2;
sbit k3=P1^3;
sbit k4=P1^4;
unsigned char s=1,s1,s2,s3,i1=1,i2=0;
int k=55;
unsigned long int z=10;
void int0(void) interrupt 0
{
	
	IE0=0;
	s=0;
}
/*void int1(void)	interrupt 2
{  
	IE1=0;
	k=40;
	while(k4)
	{
		
		while(!k1)
		{	
			s1++;
			if(s1>9)
				s1=0;
			senddata(1,s1);
		}
	 	while(!k2)
		{
			s2++;
			if(s2>9)
				s2=0;
			senddata(2,s2);
		}
		while(!k3)
		{	
			s3++;
			if(s3>9)
				s3=0;
			senddata(3,s3);
		}
		delay(100000);
		senddata(1,i1);
		senddata(2,i1);
		senddata(3,i1);
	}
	k=s1+s2*10+s3*100;
	i1++;	
}*/	
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;	
	PX0=1;	

	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(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;	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -