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

📄 main1.c

📁 keil打开-51单片机LCD显示程序 LCD控制模块使用深圳剑拓的串口转VGA模块
💻 C
📖 第 1 页 / 共 3 页
字号:
	if(Sw[Page45Sel][0]&Mask[4])  //405
	{
		myput(6);
		if(Sw[Page45Sel][1]&Mask[4])  //422
		{
			myput(8);
		}
		else
		{
			setwfc(9);
			myput(9);
			setwfc(7);
		}
		if(Sw[Page45Sel][1]&Mask[5])  //429
		{
			k=1;
			myput(10);
		}
		else
		{
			setwfc(9);
			myput(11);
			setwfc(7);
		}
	}
	else
	{
	
		myput(7);
	
	}
	watchdog();
	if(Sw[Page45Sel][0]&Mask[3])  //404
	{
		myput(12);
		if(Sw[Page45Sel][5]&Mask[0])  //427
		{
			myput(14);
		}
		else
		{
			setwfc(9);
			myput(15);
			setwfc(7);
		}
		if(Sw[Page45Sel][1]&Mask[5])  //429
		{
			k=1;
			myput(16);
		}
		else
		{
			setwfc(9);
			myput(17);
			setwfc(7);
		}
	}
	else
	{
		
		myput(13);
	
	}
	watchdog();
	if(((Sw[Page45Sel][0]&Mask[2])>0)&&((Sw[Page45Sel][0]&Mask[4])==0))  //403  405
	{
		myput(18);
		if(Sw[Page45Sel][2]&Mask[0])  //434
		{
			myput(20);
		}
		else
		{
			setwfc(9);
			myput(21);
			setwfc(7);
		}
		if(Sw[Page45Sel][5]&Mask[0])  //427
		{
			myput(22);
		}
		else
		{
			setwfc(9);
			myput(23);
			setwfc(7);
		}
		if(Sw[Page45Sel][1]&Mask[5])  //429
		{
			k=1;
			myput(24);
		}
		else
		{
			setwfc(9);
			myput(25);
			setwfc(7);
		}
	}
	else
	{
	 	if(k==0)
		{
			setwfc(9);
			myput(19);
			setwfc(7);
		}
	}
	watchdog();
	if(k==1)
	{
		if(Sw[Page45Sel][1]&Mask[6])  //432
		{
			k=1;
			myput(26);
		}
		else
		{
			setwfc(9);
			myput(27);
			setwfc(7);
		}	
		if(Sw[Page45Sel][1]&Mask[7])  //433
		{
			k=1;
			myput(28);
		}
		else
		{
			setwfc(9);
			myput(29);
			setwfc(7);
		}		
	}
	mput(DiagnosisEnd);
}


/******************************************************/
check_process7()
{
	uchar i;
	if(Sw[Page45Sel][6]&Mask[4])  //568
	{
		myput(0);
	}
	else
	{
		setwfc(9);
		myput(1);
		setwfc(7);
	}
	if(Sw[Page45Sel][4]&Mask[6])  //577
	{
		myput(2);
	}
	else
	{
		setwfc(9);
		myput(3);
		setwfc(7);
	}
	if(Sw[Page45Sel][6]&Mask[7])  //578
	{
		myput(4);
	}
	else
	{
		if(Sw[Page45Sel][1]&Mask[2])  //417
		{
			setwfc(9);
			myput(5);
			setwfc(7);
		}
		else
		{
			setwfc(9);
			myput(6);
			setwfc(7);
		}		
	}
	watchdog();
	if(Sw[Page45Sel][7]&Mask[0])  //579
	{
		myput(7);
	}
	else
	{
		setwfc(9);
		myput(8);
		setwfc(7);
	}
	if(Sw[Page45Sel][7]&Mask[1])  //580
	{
		myput(9);
	}
	else
	{
		setwfc(9);
		myput(10);
		setwfc(7);
	}
	if(Sw[Page45Sel][7]&Mask[2])  //581
	{
		myput(11);
	}
	else
	{
		setwfc(9);
		myput(12);
		setwfc(7);
		mput("   等待 3 秒");
		TR0 = 1;
		for(i=2;i!=0xff;i--)
		{
			while(TimingFlag == 0) ;
			TimingFlag = 0;
			mput("\r\t"); mputchar(i+0x30);
			watchdog();
		}
		TR0 = 0;
		Count = 28;
		watchdog();
		if(Sw[Page45Sel][7]&Mask[2])  //581
		{
			myput(11);
		}
		else
		{
			setwfc(9);
			myput(13);
			setwfc(7);
		}
	}
	if(Sw[Page45Sel][8]&Mask[4])  //687
	{
		myput(14);
	}
	else
	{
		setwfc(9);
		myput(15);
		setwfc(7);
		mput("   等待 3 秒");
		TR0 = 1;
		for(i=2;i!=0xff;i--)
		{
			while(TimingFlag == 0) ;
			TimingFlag = 0;
			mput("\r\t"); mputchar(i+0x30);
			watchdog();
		}
		TR0 = 0;
		Count = 28;
		watchdog();
		if(Sw[Page45Sel][8]&Mask[4])  //687
		{
			myput(14);
		}
		else
		{
			setwfc(9);
			myput(16);
			setwfc(7);
		}
	}
	if(Sw[Page45Sel][7]&Mask[5])  //591
	{
		myput(17);
	}
	else
	{
		setwfc(9);
		myput(18);
		setwfc(7);
	}
	if(Sw[Page45Sel][7]&Mask[6])  //592
	{
		myput(19);
	}
	else
	{
		setwfc(9);
		myput(20);
		setwfc(7);
	}
	watchdog();
	mput(DiagnosisEnd);

}

check_process8()
{
	uchar i;
	if(Sw[Page45Sel][6]&Mask[4])//568
		myput(0);
	else
	{
		setwfc(9);
		myput(1);
		setwfc(7);
	}
	if(Sw[Page45Sel][4]&Mask[6])//577
		myput(2);
	else
	{
		setwfc(9);
		myput(3);
		setwfc(7);
	}
	if(Sw[Page45Sel][7]&Mask[4])//590
		myput(4);
	else
	{
		setwfc(9);
		myput(5);
		setwfc(7);
	}
	if(Sw[Page45Sel][7]&Mask[3])//589
		myput(6);
	else
	{
		setwfc(9);
		myput(7);
		setwfc(7);
	}
	if(Sw[Page45Sel][7]&Mask[7])//593
		myput(8);
	else
	{
		setwfc(9);
		myput(9);
		setwfc(7);
	}
	watchdog();
	if(Sw[Page45Sel][8]&Mask[0])//594
		myput(10);
	else
	{
		setwfc(9);
		myput(11);
		setwfc(7);
		mput("   等待 3 秒");
		TR0 = 1;
		for(i=2;i!=0xff;i--)
		{
			while(TimingFlag == 0) ;
			TimingFlag = 0;
			mput("\r\t"); mputchar(i+0x30);
			watchdog();
		}
		TR0 = 0;
		Count = 28;
		watchdog();
		if(Sw[Page45Sel][8]&Mask[0])
			myput(10);
		else
		{
			setwfc(9);
			myput(12);
			setwfc(7);
		}
	}
	if(Sw[Page45Sel][8]&Mask[1])//597
		myput(13);
	else
	{
		setwfc(9);
		myput(14);
		setwfc(7);
	}
	if(Sw[Page45Sel][8]&Mask[2])//599
		myput(15);
	else
	{
		setwfc(9);
		myput(16);
		setwfc(7);
	}
	mput(DiagnosisEnd);
}

check_process9()
{
	uchar i;
	if(Sw[Page45Sel][1]&Mask[7])//433
	{
		myput(0);
		if(Sw[Page45Sel][4]&Mask[7])//1780
		{
			myput(2);
            watchdog();
			if((AnalogFactor[0]*(float)Analog[Page45Sel][0]*20/0xfff) > 12)//1701
			{
				watchdog();
                myput(4);
				mput("   还有 10 秒");
				TR0 = 1;
				for(i=9;i!=0xff;i--)
				{
					while(TimingFlag == 0)
						if(Sw[Page45Sel][1]&Mask[1])//415
						{
							TR0 = 0;
							Count = 28;
							TimingFlag = 0;
							mput("\r\t"); mput("00");
							watchdog();
							myput(6);
							if(Sw[Page45Sel][3]&Mask[0])//501
							{
								myput(8);
								if((Sw[Page45Sel][5]&(Mask[3]|Mask[4]|Mask[5]|Mask[6]))==(Mask[3]|Mask[4]|Mask[5]|Mask[6]))//471#,472#,473#,474#
								{
									myput(10);
                                    watchdog();
									if(((AnalogFactor[5]*(float)Analog[Page45Sel][5]*20/0xfff)>15) &&
										((AnalogFactor[6]*(float)Analog[Page45Sel][6]*20/0xfff)>15) &&
										((AnalogFactor[7]*(float)Analog[Page45Sel][7]*20/0xfff)>15) &&
										((AnalogFactor[8]*(float)Analog[Page45Sel][8]*20/0xfff)>15))//1781#,1782#,1783#,1784
                                    {
                                        watchdog();
										myput(12);
                                    }
									else
									{
                                        watchdog();
										setwfc(9);
										myput(13);
										setwfc(7);
									}
								}
								else
								{
									setwfc(9);
									myput(11);
									setwfc(7);
								}
							}
							else
							{
								setwfc(9);
								myput(9);
								setwfc(7);
							}
							mput(DiagnosisEnd);
							return;
						}
					mput("\r\t"); mputchar(0x30); mputchar(i+0x30);
					watchdog();
					TimingFlag = 0;
				}
				TR0 = 0;
				Count = 28;
				setwfc(9);
				myput(7);
				setwfc(7);
			}
			else
			{
				watchdog();
                setwfc(9);
				myput(5);
				setwfc(7);
			}
		}
		else
		{
			setwfc(9);
			myput(3);
			setwfc(7);
		}
	}
	else
	{
		setwfc(9);
		myput(1);
		setwfc(7);
	}
	mput(DiagnosisEnd);
}

void check_item(uchar i)  // i = 0 -> 7
{
	uchar j;
    clear_screen();
	CurrentPage = Check1 + i;
	cursor(CheckTitleOffset[i], 1);
	mput(CheckItem[0+i]+4);
	watchdog();
	switch(i)
	{
	case 0:
		check_process1();
		break;
	case 1:
		check_process2();
		break;
	case 2:
		check_process3();
		break;
	case 3:
		check_process4();
		break;
	case 4:
		check_process5();
		break;
	case 5:
		check_process6();
		break;
	case 6:
		check_process7();
		break;
	case 7:
		check_process8();
		break;
	case 8:
		check_process9();
		break;
	default: ;
	}
	watchdog();
	TX_Service();
    for( j = 0; j < 4; j++ )
        TransmitMessage[6+j] = 0;
    watchdog();
}

//****************************************************************************
// Key Process
//****************************************************************************
void key_process()
{
	if(NewKey)
	{
		watchdog();
		switch(Key)
		{
		case 0x41:	// 确定
			switch(CurrentPage)
			{
			case MenuPage:
				switch(MenuItem)
				{
				case 0:
					init_page12(0);
					sort_sw();
					refresh_page12(0);
					break;
				case 1:
					init_page12(1);
					sort_sw();
					refresh_page12(1);
					break;
				case 2:
					init_page3();
					NewSelfCheck = 1;
					refresh_page3();
					break;
				case 3:
					Page45Sel = 0;
					init_page45();
					refresh_page45();
					break;
				case 4:
					Page45Sel = 1;
					init_page45();
					refresh_page45();
					break;
				default: ;
				}
				break;
			case Page4:
			case Page5:
				check_item(Page45Item[Page45Sel]);
				break;
			default: ;
			}
			break;
		case 0x42:	// 取消
			switch(CurrentPage)
			{
			case Check1:
			case Check2:
			case Check3:
			case Check4:
			case Check5:
			case Check6:
			case Check7:
			case Check8:
			case Check9:
				init_page45();
				refresh_page45();
				break;
			default: ;
			}
			break;
		case 0x43:	// 上翻
			switch(CurrentPage)
			{
			case MenuPage:
				OldMenuItem = MenuItem;
				if(--MenuItem == 0xff)
					MenuItem = 0x04;
				watchdog();
				refresh_menu();
				break;
			case Page4:
			case Page5:
				Page45OldItem[Page45Sel] = Page45Item[Page45Sel];
				if(--Page45Item[Page45Sel] == 0xff)
					Page45Item[Page45Sel] = 0x08;
				watchdog();
				refresh_page45();
				break;
			default: ;
			}
			break;
		case 0x44:	// 下翻
			switch(CurrentPage)
			{
			case MenuPage:
				OldMenuItem = MenuItem;
				if(++MenuItem == 0x05)
					MenuItem = 0x00;
				watchdog();
				refresh_menu();
				break;
			case Page4:
			case Page5:
				Page45OldItem[Page45Sel] = Page45Item[Page45Sel];
				if(++Page45Item[Page45Sel] == 0x09)
					Page45Item[Page45Sel] = 0x00;
				watchdog();
				refresh_page45();
				break;
			default: ;
			}
			break;
		case 0x40:
		case 0x45:	// 功能
			init_menu();
			refresh_menu();
			break;
		default: ; 
		}
		watchdog();
		NewKey = 0;
	}
}
//****************************************************************************
// Main
//****************************************************************************
void main()
{
	init_timer();
	init_serial();
	init_8279();
	init_can_controller();
	init_irq();
	delay500ms();
	watchdog();
//	AUXR1 |= 0x10;
	init_page12(0);
	sort_sw();
    watchdog();
	refresh_page12(0);
	watchdog();
	while(1)
	{
		switch(CurrentPage)
		{
		case Page1:
			if(NewSw)
			{
				sort_sw();
                watchdog();
				refresh_page12(0);
				NewSw = 0;
			}
			break;
		case Page2:
			if(NewSw)
			{
				sort_sw();
                watchdog();
				refresh_page12(1);
				NewSw = 0;
			}
			break;
		case Page3:
			if(NewAnalog)
			{
				refresh_page3();
                watchdog();
				NewAnalog = 0;
			}
			break;
		default: ;
		}
		watchdog();
		key_process();
        watchdog();
	}
}
/*************************************************************/
/*****************    定时器中断服务程序   *******************/
/*************************************************************/

void timer_isr() interrupt 1 using 0
{
	watchdog();
	TH0 = 0; TL0 = 0;
	if((--Count) == 0)
	{
		Count = 28;
		TimingFlag = 1;
	}
}

/*************************************************************/
/*****************     键盘中断服务程序    *******************/
/*************************************************************/
void key_isr() interrupt 2 using 2
{
	COM8279=0x40;
	Key=DAT8279;
	NewKey=1;
    watchdog();
}
/************************************************************************/
/********************	    	CAN接收中断子程序      ******************/
/************************************************************************/
void RX_Service() interrupt 13 using 3
{ 
	uchar idata i, length;
	uchar idata ReceiveMessage[13] = {0};
    watchdog();
	CANADR=RBF;
	ReceiveMessage[0] = CANDAT;
	length = ReceiveMessage[0]&0x0F;
	if(length > 0x08)
		length = 0x08;
	for(i=0;i<4+length;i++)
		ReceiveMessage[i+1] = CANDAT;
	watchdog();
	if((ReceiveMessage[2] == 0x04) || (ReceiveMessage[2] == 0x24))
	{
		for(i=0;i<4;i++)
        {
			if((ReceiveMessage[3] < 0x03) || ((ReceiveMessage[3] == 0x03) && (i < 2)))
				Analog[ReceiveMessage[2]>>5][(ReceiveMessage[3]-1)*4+i] =
					ReceiveMessage[5+2*i]+(((uint)ReceiveMessage[6+2*i])<<8);
            watchdog();
        }
		NewAnalog = 1;
	}
	else if((ReceiveMessage[2] == 0x05) || (ReceiveMessage[2] == 0x06) ||
		(ReceiveMessage[2] == 0x25) || (ReceiveMessage[2] == 0x26))
	{
		if(ReceiveMessage[3] == 0x10)
		{
			for(i=0;i<4+(ReceiveMessage[2]&0x01);i++)
				Sw[ReceiveMessage[2]>>5][(!(ReceiveMessage[2]&0x01))*5+i] = ReceiveMessage[5+i];
			NewSw = 1;
		}
		else if(ReceiveMessage[3] == 0x01 || ReceiveMessage[3] == 0x00)
		{
			switch(ReceiveMessage[2])
			{
			case 0x05:
				SelfCheck[0] = ReceiveMessage[3];
				break;
			case 0x06:
				SelfCheck[1] = ReceiveMessage[3];
				break;
			case 0x25:
				SelfCheck[2] = ReceiveMessage[3];
				break;
			case 0x26:
				SelfCheck[3] = ReceiveMessage[3];
				break;
			default: ;
			}
			NewSelfCheck = 1;
		}
	}
	else if(ReceiveMessage[2] == 0x01)
	{
		Sw[0][9] = ReceiveMessage[5];
		Sw[1][9] = ReceiveMessage[7];
	}
	watchdog();
	CANCON=0x04;
}

⌨️ 快捷键说明

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