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

📄 boradme.c

📁 自动检测电容值
💻 C
字号:
#include <reg52.h>
#include <setjmp.h>
#define CYCLE (-10000)

//InterrupT
#define INT0INT 0
#define TIMER0INT 1
#define INT1INT 2
#define TIMER1INT 3
#define COMINT 4
#define TIMER2INT 5

sbit SW952D=P0^0;
sbit SW951D=P0^1;
sbit LED951D=P0^2;
sbit LED952D=P0^3;
sbit LED953D=P0^4;
sbit LED954D=P0^5;
sbit LED955D=P0^6;
sbit LED956D=P0^7;

sbit SW952T=P1^0;  	//hi
sbit SW951T=P1^1;	//hi
sbit LED951T=P1^2;	//lo
sbit LED952T=P1^3;	//lo
sbit LED953T=P1^4;	//lo
sbit LED954T=P1^5;	//lo
sbit LED955T=P1^6;	//lo
sbit LED956T=P1^7;	//lo

sbit OkLed=P2^4;
sbit NgLed=P2^5;
sbit Bell=P3^7;

bit Start=0,Next=0,Stop=0;
char CurrentX=0,CurrentY=0;
char INPORT;
int td;
code char TestBit[]={0,2,1,4,8,16,32,64,128};
//code char Name[8][]={"S1";"S2";"L1";"L2";"L3";"L4";"L5";"L6"};
unsigned char code Name[][6]={"     ","SW951","SW952","LD951","LD952","LD953","LD954","LD955","LD956"};
jmp_buf env;

void Initial(void);
void delay10ms(int);
void LcdPrint(char *);
void LcdClear(void);
#include <serial.c>
void main(void)
{
	char ErrNo=0;
	char Pin[9];
	auto unsigned char i,j,d,dm,db;
	bit ok;
	bit Round;
	EA=0;
//	P0=0;
	OkLed=0;
	NgLed=0;
	Bell=0;
	SP=0x5f;
	init_lcd ();
	/*------------------主程序--------------------*/
	while (1)
	{
		lat_disp (0x00,0x00);
		chn_disp (tab1);
		con_disp (0xff,0xff,0x8c,0x80,2,16);
		delay1 (8000);
		clrram();
		lat_disp (0xcc,0xcc);
		delay1 (8000);
		lat_disp (0x00,0x00);
		chn_disp1 (tab31);
		img_disp1 (tab32);
		delay1 (8000);
		clrram();
		lat_disp (0xff,0x00);
		delay1 (8000);
		img_disp (tab5);
		delay1 (8000);
	}
//	Initial();
	P0=0;
	while(1)
	{
		P0=0xfc;delay10ms(20);

		Round=((P1^0xfc)&0xfc)?1:0;
		if(Round)
		{
			P0=0;delay10ms(20);
			Round=((P1^0xfc)&0xfc)?0:1;
		}
		if(Round) i++; else i=0;
		if(i>=200) Start=1;
		if(setjmp(env)) Start=1;
		if(Start)
		{
			Start=0;
			ok=1;
			LcdClear();
			LcdPrint("\n");
			LcdPrint("    Testing");
			for(i=0;i<=8;i++)
			{
				d=TestBit[i];
				P0=d;
				delay10ms(160);
				if((Pin[i]=P1^0xfc)!=d) ok=0;
				delay10ms(40);
				P0=0;
			}
			LcdClear();
			//Error analyse
			if(ok)
		 	{
				OkLed=0;
				NgLed=1;
				LcdPrint("\n");
				LcdPrint("     **OK**");
			}
			else
			{
				OkLed=1;
				NgLed=0;
				CurrentX=0;
				for(i=1;i<8;i++)
				{
					db=TestBit[i];
					if(Pin[0]&db) LcdPrint(Name[i]);LcdPrint("与电源短路\n");
					if((dm=Pin[i])!=db)
					{
						if(dm)
						{
							for(j=j+1;j<=8;j++)
							{
								d=TestBit[j];
								if(dm&d)
								{
									
									LcdPrint(Name[i]);
									LcdPrint("/");
									LcdPrint(Name[i]);
									LcdPrint("短路\n");
								}
							}
						}
						else
						{
							LcdPrint(Name[i]);LcdPrint("开路\n");
						}
					}
				}
			}
		}
	}
	return;
}
/*
void Initial(void)
{
	P0=0;
	P1=P2=P3=0xff;
	INPORT=0XFF;
	TMOD=0X11;
	TR0=1;
	EX0=0;
	ET0=1;
	EA=1;
	TL0=CYCLE % 256;
	TH0=CYCLE/256;
}
void PowerOff (void) interrupt INT0INT
{
	return;
}
void Timems (void) interrupt TIMER0INT
{
//	#define FLASHTIME 60
//	static unsigned char ft=FLASHTIME;
	static char InP1=0,InP2=0;
	char InP,InP3;
	TL0=CYCLE % 256;
	TH0=CYCLE/256;

	InP=INPORT^P2;
	InP3=InP&InP2;			//count 3
	InP2=InP&InP1&(~InP3);
	InP1=InP&(~InP3);
	InP^=INPORT;			//InP=PP1
	InP&=InP3;
	INPORT&=~InP3;
	INPORT|=InP;

	if(!(INPORT&0x40)) {Next=1;Stop=1;}
	if(!(INPORT&0x80)) Start=1;	
	if(td) td--;	
	return;
}*/
void LcdClear(void)
{
	init_lcd();
}
void LcdPrint(char * DisBuf)
{
	code unsigned char Line[]={0x80,0x90,0x88,0x98}; 
	wr_lcd(comm,0x30);
	if(*DisBuf&&CurrentY<4)
	{
		if(*DisBuf=='\n'||CurrentX>=16)
		{
			CurrentX=0;
			CurrentY++;
			if(CurrentY<4)
			{
				wr_lcd(comm,Line[CurrentY]);
			}
			else
			{
				do
				{
					if(Start) {Start=0;LcdClear();CurrentY=0;longjmp(env,1);}
				}while(!Next);
				Next=0;Stop=0;
				LcdClear();
				CurrentY=0;
			}
		}
		else
		{
			wr_lcd(dat,*DisBuf);
			CurrentX++;
		}
	}
	return;
}
void delay10ms(int a)
{
	td=a/10;
	while(td);
}


⌨️ 快捷键说明

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