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

📄 display.c

📁 Avr Atmeg128汽车行驶记录仪 带有USB驱动 c语言
💻 C
📖 第 1 页 / 共 5 页
字号:
								if(sum >=1 )
									b = 1;
								else b =0;
						HH +=88;
						for(a=0;a<b;a++)
						{
							FmTo_Gngn(HH,10);
							BcdTo_Asc(GngnBuf,10);
							PP = DisplayBuf;
							English_Dis(PP,a+a,0,17);
							PP = DisplayBuf1;
							English_Dis(PP,2*a+1,0,17);
							HH = HH+14;
						}
					
						break;							
					}
		case 40 :   {
						uchar a,b,sum;
							FM_CS;
						HH = com1subbuf;					/*	疲劳驾驶记录 */
						sum = *HH;
						sum -=10;
						if(sum >= 2)
							b = 2;
							else
								if(sum >=1 )
									b = 1;
								else b =0;
						HH +=108;
						for(a=0;a<b;a++)
						{
							FmTo_Gngn(HH,10);
							BcdTo_Asc(GngnBuf,10);
							PP = DisplayBuf;
							English_Dis(PP,a+a,0,17);
							PP = DisplayBuf1;
							English_Dis(PP,2*a+1,0,17);
							HH = HH+14;
						}
					
						break;							
					}
		case 41 :   {
						uchar a,b,sum;
							FM_CS;
						HH = com1subbuf;					/*	疲劳驾驶记录 */
						sum = *HH;
						sum -=12;
						if(sum >= 2)
							b = 2;
							else
								if(sum >=1 )
									b = 1;
								else b =0;
						HH +=128;
						for(a=0;a<b;a++)
						{
							FmTo_Gngn(HH,10);
							BcdTo_Asc(GngnBuf,10);
							PP = DisplayBuf;
							English_Dis(PP,a+a,0,17);
							PP = DisplayBuf1;
							English_Dis(PP,2*a+1,0,17);
							HH = HH+14;
						}
					
						break;							
					}
		case 42 :   {
						uchar a,b,sum;
							FM_CS;
						HH = com1subbuf;					/*	疲劳驾驶记录 */
						sum = *HH;
						sum -=14;
						if(sum >= 2)
							b = 2;
							else
								if(sum >=1 )
									b = 1;
								else b =0;
						HH +=148;
						for(a=0;a<b;a++)
						{
							FmTo_Gngn(HH,10);
							BcdTo_Asc(GngnBuf,10);
							PP = DisplayBuf;
							English_Dis(PP,a+a,0,17);
							PP = DisplayBuf1;
							English_Dis(PP,2*a+1,0,17);
							HH = HH+14;
						}
					
						break;							
					}
		case 43:	{												//	打印
						XX = PAGE17;
						a = 2;b = 0;
						goto ZhongW;						
					}
		case 44:   {
						XX = PAGE_VIN;								
						a = 6;b = 0;
						China_Dis(XX,a,b);
						HH = Qiche_Buf;
						FmTo_Gngn(HH,17);
						PP = GngnBuf;
						English_Dis(PP,2,7,17);						
						break;
					}
		case 45 :   {
							XX = PAGECP;					/*	车牌号码	*/
						a=4;b=0;
						China_Dis(XX,a,b);
						HH = Qiche_Buf+17;
						FmTo_Gngn(HH,9);
						CarLx(GngnBuf,1);
						PP = GngnBuf+2;
						English_Dis(PP,3,21,7);
						break;
					}
		case 46 :   {
					 
						XX = PAGECL; 					/*	车辆类型	*/
						a = 4;b=0;
						China_Dis(XX,a,b);
						HH = Qiche_Buf+29;
						FmTo_Gngn(HH,18);
						//
						CarLx(GngnBuf,5);						
						break;
					}
		case 47:	{								//车辆特征系数
						XX = PAGE5;						
						a = 6;b = 0;
						China_Dis(XX,a,b);
						HH = Tzx_Buf;
						FmTo_Gngn(HH,3);
						gs = ThreeBy_ToAsc(GngnBuf);
						PP = DisplayBuf;
						English_Dis(PP,3,7,gs);
						break;
					}
		case 48 :   {
						XX = PAGE6;								/*	驾驶证号	*/
						a = 4;b = 0;
						China_Dis(XX,a,b);
						HH = Driver_now__Buf+4;
						FmTo_Gngn(HH,18);
						PP = GngnBuf;
						English_Dis(PP,2,7,18);
						
						goto ZhongW;	
					}
		case 49:	{
						XX = PAGE15;						/*	驾驶员代码	*/
						a = 5;b = 0;
						China_Dis(XX,a,b);
						HH = Driver_now__Buf+1;
						FmTo_Gngn(HH,3);
						gs = ThreeBy_ToAsc(GngnBuf);
						PP = DisplayBuf;
						English_Dis(PP,3,7,gs);
						break;
					}
		case 50:	{
					XX = PAGE22;						/*	360小时里程		*/
						a = 3;b = 2;
						China_Dis(XX,a,b);
					//	HH = Driver_Buf+4;
					//	FmTo_Gngn(HH,18);
					//	PP = GngnBuf;
					//	English_Dis(PP,2,7,18);
					    HH = Driver_now__Buf+1;
						FmTo_Gngn(HH,3);
						gs = ThreeBy_ToAsc(GngnBuf);
						PP = DisplayBuf;
						English_Dis(PP,2,49,gs);
						//
						HH = Driver_now__Buf+4;
						FmTo_Gngn(HH,3);
						gs = ThreeBy_ToAsc(GngnBuf);
						PP = DisplayBuf;
						English_Dis(PP,3,49,gs);
						break;
					
					}
		case 51:	{												//	正在抄送
						XX = PAGE12;
						a = 4;b = 0;
						goto ZhongW;						
					}
		case 52:	{									//请插入U盘								//	正在抄送
						XX = PAGE11;
						a = 5;b = 0;
						goto ZhongW;						
					}
		case 53 :  {									//抄送结束
						XX = PAGEUSB;	
						a =4;b=0;
						goto ZhongW;
				   }

		ZhongW :	China_Dis(XX,a,b);
						break;	
		XiWeng :    English_Dis(PP,a,b,gs);
						break;
	}
}
//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
void XiTo_Asc(void)
{
	uchar a,a1;
	if(speed == 0)
	{
		DisplayZs[0]='0';
		DisplayZs[1]='0';
		DisplayZs[2]='0';
		DisplayZs[4]='0';
		DisplayZs[5]='0';
	}
	else
	{
		a = speed / 100;
		if(a == 0)
			DisplayZs[0]=' ';
		else 
			DisplayZs[0]=a+48;
		a1 = (speed-(a*100))/10;
		DisplayZs[1]= a1+48;
		DisplayZs[2]= (speed-a*100-a1*10)+48;
		a = speed_dot/10;
		DisplayZs[4]=a+48;
		DisplayZs[5]=(speed_dot-a*10)+48;
	}	
}

void XiTo_Asc1(uchar speed)
{
	uchar a,a1,sum;
	sum = speed;
	if(sum == 0)
	{
		DisplayZs[0]='0';
		DisplayZs[1]='0';
		DisplayZs[2]='0';
		DisplayZs[4]='0';
		DisplayZs[5]='0';
	}
	else
	{
		a = sum / 100;
		if(a == 0)
			DisplayZs[0]=' ';
		else 
			DisplayZs[0]=a+48;
		a1 = (sum-(a*100))/10;
		DisplayZs[1]= a1+48;
		DisplayZs[2]= (sum-a*100-a1*10)+48;
		a = speed_dot/10;
		DisplayZs[4]=a+48;
		DisplayZs[5]=(speed_dot-a*10)+48;
	}	
}

void BcdTo_Asc(uchar *p,uchar a)
{
	uchar i,j,k,w;
		w =0;
		DisplayBuf[0] = 'S';
		DisplayBuf[1] = ':';
		DisplayBuf[2] = ' ';
		DisplayBuf1[0]	= 'E';
		DisplayBuf1[1] = ':';	
		DisplayBuf1[2] = ' ';
	for(i=0;i<a;i++)
	{
		if(i<5)
		{
			j= *(p+i);
			k=j & 0xf0;
			k=(k>>4)+48;
			DisplayBuf[i * 3 +2+1]=k;//[i*2+2]=k;
			j=(j & 0x0f)+48;
			DisplayBuf[i * 3 +3+1]=j;//[i*2+1+2]=j;
			DisplayBuf[i*3+4+1]= '/';
		}
		else
		{
			j= *(p+i);
			k=j & 0xf0;
			k=(k>>4)+48;
			DisplayBuf1[w * 3 +2+1]=k;//[i*2+2]=k;
			j=(j & 0x0f)+48;
			DisplayBuf1[w * 3 +3+1]=j;//[i*2+1+2]=j;
			DisplayBuf1[w*3+4+1]= '/';
			w++;
		}
	}
	DisplayBuf[11] = ' ';
	DisplayBuf1[11] = ' ';
	DisplayBuf[14] = ':';
	DisplayBuf1[14] = ':';
}

//
void FmTo_Gngn(uchar *p,uchar gs)
{
	uchar i;
	FM_CS;
	for(i=0;i<gs;i++)
	{
		GngnBuf[i]= *p;
		p++;
	}
}
//
void China_Dis2(PGM_P BB,uchar i,uchar j)
{
		uchar a,b;
		a = i;
		for(b =0;b<a;b++)
		{
		   O_Y=0x00;		   
		   O_X=b*0x10;
		   code_1=0x00;
           CCW_PR(BB+b*32);      /* 调中文写入函数 */
		   
		 } 
		a = j;
		for(b =0;b<a;b++)
		{
		   O_Y=0x02;
		   O_X=b*0x10;
		   code_1=0x00;
           CCW_PR(BB+(b+i)*32);      /* 调中文写入函数 */
		   
		 }  
          
}
//
void BcdTime_Asc(uchar *p,uchar a)
{
	uchar i,j,k;
	for(i=0;i<a;i++)
	{
		j= *(p+i+3);
		k=j & 0xf0;
		k=(k>>4)+48;
		DisplayBuf[i+2*i]=k;
		j=(j & 0x0f)+48;
		DisplayBuf[i+2*i+1]=j;
		DisplayBuf[i+2*i+2]=':';
	}
}
//
void CarLx(uchar *p,uchar x)
{
	uchar a,a1,i,j,k;
	uchar *HP;
	uchar flag=0;
	uint TBADD;
	for(i=0;i<2*x;i=i+2)
	{
		a = *(p+i);
		a1=*(p+i+1);
		TBADD = 0;
		for(j=0;j<15;j++)
			{
				if(( a == pgm_read_byte(&TABE_CAR[j][0]) )&&(a1 == pgm_read_byte(&TABE_CAR[j][1])))
					{
					
								TBADD = pgm_read_byte(&TABE_CAR[j][2])*32 ;
						

⌨️ 快捷键说明

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