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

📄 main.c

📁 uCOS-II在C51下的一个完整的LCD项目源码.rar
💻 C
📖 第 1 页 / 共 2 页
字号:
					newkey = 0;
				}
			}
			else
			{
				COM8279=0xC2;
			}
		}
		else
		{
			newkey = 1;
		}
	}
}
//秒定时中断
void mysecondtask(void *lcndata) reentrant
{
	lcndata=lcndata;
	while(1)
	{
		bSecond=1;
		getconut();
		OSTimeDly(OS_TICKS_PER_SEC);	
	}
}

void showmain1() reentrant
{
	clssed(SAD1);
	clssed(SAD2);
	rectangle(SAD2,0,222,319,239,1);
	readtimer(disstr,1);
	myprintf(SAD1,TA_LEFT,186,223,disstr);
	myprintf(SAD1,TA_LEFT,2,223,"选功能.修改输出值");

	liney(SAD1,0,0,220);
	liney(SAD1,319,0,220);

	linex(SAD1,0,0,319);
	linex(SAD1,220,0,319);
	myprintf(SAD1,TA_LEFT,8,2,  "AD0:%4u:%6.3fV",adtemp[0],result[0]);	
	myprintf(SAD1,TA_LEFT,8,22, "AD1:%4u:%6.3fV",adtemp[1],result[1]);	
	myprintf(SAD1,TA_LEFT,8,42, "AD2:%4u:%6.3fV",adtemp[2],result[2]);	
	myprintf(SAD1,TA_LEFT,8,62, "AD3:%4u:%6.3fV",adtemp[3],result[3]);	
	myprintf(SAD1,TA_LEFT,8,82, "AD4:%4u:%6.3fV",adtemp[4],result[4]);	
	myprintf(SAD1,TA_LEFT,8,102,"AD5:%4u:%6.3fV",adtemp[5],result[5]);	
	myprintf(SAD1,TA_LEFT,8,122,"AD6:%4u:%6.3fV",adtemp[6],result[6]);	
	myprintf(SAD1,TA_LEFT,8,142,"AD7:%4u:%6.3fV",adtemp[7],result[7]);
	getstr8255();
	myprintf(SAD1,TA_LEFT,168,162,"OUT8255A:%s",do8255a);
	myprintf(SAD1,TA_LEFT,168,182,"OUT8255B:%s",do8255b);
	myprintf(SAD1,TA_LEFT,168,202,"OUT8255C:%s",do8255c);
	myprintf(SAD1,TA_LEFT,8,162,"IN8255A:%s",do8255a);
	myprintf(SAD1,TA_LEFT,8,182,"IN8255B:%s",do8255b);
	myprintf(SAD1,TA_LEFT,8,202,"IN8255C:%s",do8255c);
	myprintf(SAD1,TA_LEFT,168,2,  "82530:%5u",count8253[0][0]);	
	myprintf(SAD1,TA_LEFT,168,22, "82531:%5u",count8253[1][0]);	
	myprintf(SAD1,TA_LEFT,168,42, "82532:%5u",count8253[2][0]);	
	myprintf(SAD1,TA_LEFT,168,62, "T0   :%5u",count8253[3][0]);	
	if(ok24c02 == 0)
		myprintf(SAD1,TA_LEFT,168,82, "24C02:读写错误");
	else
		myprintf(SAD1,TA_LEFT,168,82, "24C02:读写正常");
	myprintf(SAD1,TA_LEFT,168,102,"485IN:%02XH:%c",(unsigned int)rs485in,rs485in);
	myprintf(SAD1,TA_LEFT,168,122,"485OU:");
	vda667 = da667;
	vda667 /=409.5;
	myprintf(SAD1,TA_LEFT,168,142, "DA667:%4u:%6.3fV",da667,vda667);	
	liney(SAD1,160,120,220);
	linex(SAD1,120,160,319);
}

void getstr8255() reentrant
{
	if(a1)
		do8255a[0] = '1';
	else
		do8255a[0] = '0';

	if(a2)
		do8255a[1] = '1';
	else
		do8255a[1] = '0';

	if(a3)
		do8255a[2] = '1';
	else
		do8255a[2] = '0';

	if(a4)
		do8255a[3] = '1';
	else
		do8255a[3] = '0';

	if(a5)
		do8255a[4] = '1';
	else
		do8255a[4] = '0';

	if(a6)
		do8255a[5] = '1';
	else
		do8255a[5] = '0';

	if(a7)
		do8255a[6] = '1';
	else
		do8255a[6] = '0';

	if(a8)
		do8255a[7] = '1';
	else
		do8255a[7] = '0';

	if(b1)
		do8255b[0] = '1';
	else
		do8255b[0] = '0';

	if(b2)
		do8255b[1] = '1';
	else
		do8255b[1] = '0';

	if(b3)
		do8255b[2] = '1';
	else
		do8255b[2] = '0';

	if(b4)
		do8255b[3] = '1';
	else
		do8255b[3] = '0';

	if(b5)
		do8255b[4] = '1';
	else
		do8255b[4] = '0';

	if(b6)
		do8255b[5] = '1';
	else
		do8255b[5] = '0';

	if(b7)
		do8255b[6] = '1';
	else
		do8255b[6] = '0';

	if(b8)
		do8255b[7] = '1';
	else
		do8255b[7] = '0';

	if(c1)
		do8255c[0] = '1';
	else
		do8255c[0] = '0';

	if(c2)
		do8255c[1] = '1';
	else
		do8255c[1] = '0';

	if(c3)
		do8255c[2] = '1';
	else
		do8255c[2] = '0';

	if(c4)
		do8255c[3] = '1';
	else
		do8255c[3] = '0';

	if(c5)
		do8255c[4] = '1';
	else
		do8255c[4] = '0';

	if(c6)
		do8255c[5] = '1';
	else
		do8255c[5] = '0';

	if(c7)
		do8255c[6] = '1';
	else
		do8255c[6] = '0';

	if(c8)
		do8255c[7] = '1';
	else
		do8255c[7] = '0';
	do8255a[8] = 0;
	do8255b[8] = 0;
	do8255c[8] = 0;
}


void showvaultall() reentrant
{
	switch(buttonselect)
	{
	case 0:
		myprintf(SAD1,TA_LEFT,40,2,  "%4u:%6.3fV",adtemp[0],result[0]);	
		break;
	case 1:
		myprintf(SAD1,TA_LEFT,40,22, "%4u:%6.3fV",adtemp[1],result[1]);	
		break;
	case 2:
		myprintf(SAD1,TA_LEFT,40,42, "%4u:%6.3fV",adtemp[2],result[2]);	
		break;
	case 3:
		myprintf(SAD1,TA_LEFT,40,62, "%4u:%6.3fV",adtemp[3],result[3]);	
		break;
	case 4:
		myprintf(SAD1,TA_LEFT,40,82, "%4u:%6.3fV",adtemp[4],result[4]);	
		break;
	case 5:
		myprintf(SAD1,TA_LEFT,40,102,"%4u:%6.3fV",adtemp[5],result[5]);	
		break;
	case 6:
		myprintf(SAD1,TA_LEFT,40,122,"%4u:%6.3fV",adtemp[6],result[6]);	
		break;
	case 7:
		myprintf(SAD1,TA_LEFT,40,142,"%4u:%6.3fV",adtemp[7],result[7]);
		break;
	case 16:
		myprintf(SAD1,TA_LEFT,216,102,"%02XH:%c",(unsigned int)rs485in,rs485in);
		break;
	case 18:
		myprintf(SAD1,TA_LEFT,216,142, "%4u:%6.3fV",da667,vda667);	
		break;
	case 19:
		getstr8255();
		myprintf(SAD1,TA_LEFT,240,162,"%8s",do8255a);
		break;
	case 20:
		getstr8255();
		myprintf(SAD1,TA_LEFT,240,182,"%8s",do8255b);
		break;
	case 21:
		getstr8255();
		myprintf(SAD1,TA_LEFT,240,202,"%8s",do8255c);
		break;
	case 8:
	case 9:
	case 10:
		EA = 0;
		COM8255=0x9B;
		tem8255a = A8255;
		tem8255b = B8255;
		tem8255c = C8255;		
		EA = 1;
		getstr8255();
		myprintf(SAD1,TA_LEFT,72,162,"%s",do8255a);
		myprintf(SAD1,TA_LEFT,72,182,"%s",do8255b);
		myprintf(SAD1,TA_LEFT,72,202,"%s",do8255c);
		break;
	default:
		break;
	}
}
void showselect(unsigned char select,unsigned char fill)
{
	if(fill == 0)
		rectangle(SAD2,6+(select/11)*160,2+(select%11)*20,150+(select/11)*160,19+(select%11)*20,0);
	else
		rectangle(SAD2,6+(select/11)*160,2+(select%11)*20,150+(select/11)*160,19+(select%11)*20,1);
}

void doinput() reentrant
{
	unsigned char h,l;
	switch(buttonselect)
	{
	case 17://RS485out
		if(getstr(216,122,8))
		{
			h = 0;
			while(disstr[h] != 0)
			{
				rs485out = disstr[h];
				bout485 = 1;
				RS485 = 0;			
				TI = 1;
				OSTimeDly(2);
				h++;
			}			
		}
		break;
	case 18://AD667
		if(getstrnumber(216,142,4))
		{
			da667 = (unsigned int)atoi(disstr);		
			if(da667>4095)
				da667 = 4095;
			l=da667%16;
			l=l*16;
			h=(unsigned char)(da667/16);
			LDA667=l;
			HDA667=h;
			vda667 = da667;
			vda667 /=409.5;
		}
		break;
	case 19:
		if(getstr(240,162,8))
		{
			tem8255a = 0;
			for(h=0;h<8;h++)
			{
				tem8255a *= 2;	
				if(disstr[7-h] == '1')
					tem8255a |= 0x01;							
			}
			EA = 0;
			COM8255=0x80;
			A8255 = tem8255a;
			B8255 = tem8255b;
			C8255 = tem8255c;		
			EA = 1;
		}
		break;
	case 20:
		if(getstr(240,182,8))
		{
			tem8255b = 0;
			for(h=0;h<8;h++)
			{
				tem8255b *= 2;
				if(disstr[7-h] == '1')
					tem8255b |= 0x01;
			}
			EA = 0;
			COM8255=0x80;
			A8255 = tem8255a;
			B8255 = tem8255b;
			C8255 = tem8255c;		
			EA = 1;
		}
		break;
	case 21:
		if(getstr(240,202,8))
		{
			tem8255c = 0;
			for(h=0;h<8;h++)
			{
				tem8255c *= 2;	
				if(disstr[7-h] == '1')
					tem8255c |= 0x01;							
			}
			EA = 0;
			COM8255=0x80;
			A8255 = tem8255a;
			B8255 = tem8255b;
			C8255 = tem8255c;		
			EA = 1;
		}
		break;
	default:
		setsysini();
		showmain1();
		break;
	}
}

//电磁接触器检测
void main1test(void *lcnpdata) reentrant
{
	unsigned char curstaut = 0;
	
	buttonselect=0;
	lcnpdata = lcnpdata;
	showmain1();
	showselect(buttonselect,1);
	while(1)
	{
		OSSemPend(KeySem,10,&lcnerr);
		if(lcnerr==OS_NO_ERR)
		{
			switch(key)
			{			
			case INPUT://系统参数	
				doinput();
				showselect(buttonselect,1);
				break;	
			case DOWN:
				showselect(buttonselect,0);
				if(buttonselect < 21)
				{
					buttonselect++;
				}
				else
				{
					buttonselect=0;
				}
				showselect(buttonselect,1);
				break;
			case UP:
				showselect(buttonselect,0);
				if(buttonselect > 0)
					buttonselect--;
				else
					buttonselect=21;
				showselect(buttonselect,1);
				break;
			case LEFT:
			case RIGHT:
				showselect(buttonselect,0);
				if(buttonselect > 10)
					buttonselect-=11;
				else
					buttonselect+=11;
				showselect(buttonselect,1);
				break;
			default:
				break;
			}
		}
		getcurvault();	
		showvaultall();
		if(bSecond)
		{
			bSecond=0;	
			myprintf(SAD1,TA_LEFT,216,2,  "%5u",count8253[0][0]);	
			myprintf(SAD1,TA_LEFT,216,22, "%5u",count8253[1][0]);	
			myprintf(SAD1,TA_LEFT,216,42, "%5u",count8253[2][0]);	
			myprintf(SAD1,TA_LEFT,216,62, "%5u",count8253[3][0]);	
#if OS_TASK_STAT_EN	
			myprintf(SAD1,TA_LEFT,295,2,"%3u",(unsigned int)OSCPUUsage);	
#endif
			readtimer(disstr,0);
			myprintf(SAD1,TA_LEFT,254,223,disstr);
		}
	}
}

void getcurvault() reentrant
{
	if(buttonselect>7)
		return;
	getad();
	adtemp[adtemp1] = advaut;
	switch(buttonselect)
	{
	case 1:
		ADNUMBER1=0;
		ADNUMBER2=1;
		ADNUMBER3=1;
		adtemp1=1;				
		break;
	case 2:
		ADNUMBER1=1;
		ADNUMBER2=0;
		ADNUMBER3=1;
		adtemp1=2;
		break;
	case 3:
		ADNUMBER1=0;
		ADNUMBER2=0;
		ADNUMBER3=1;
		adtemp1=3;
		break;
	case 4:
		ADNUMBER1=1;
		ADNUMBER2=1;
		ADNUMBER3=0;
		adtemp1=4;
		break;
	case 5:
		ADNUMBER1=0;
		ADNUMBER2=1;
		ADNUMBER3=0;
		adtemp1=5;
		break;
	case 6:
		ADNUMBER1=1;
		ADNUMBER2=0;
		ADNUMBER3=0;
		adtemp1=6;
		break;
	case 7:
		ADNUMBER1=0;
		ADNUMBER2=0;
		ADNUMBER3=0;
		adtemp1=7;
		break;
	case 0:
		ADNUMBER1=1;
		ADNUMBER2=1;
		ADNUMBER3=1;
		adtemp1=0;
		break;
	default:
		break;
	}
	result[adtemp1] = adtemp[adtemp1];
	result[adtemp1] /= 409.5;	//10V
}

void main (void) 
{
	OSInit();    
    InitTimer2();
    OSTaskCreate(sys_init, (void *)0, &sys_init_Stk[0],1);
    OSStart();
}

⌨️ 快捷键说明

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