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

📄 19264cv0_1.c.bak

📁 V型机LCD程序2005-11-5,V型机LCD程序2005-11-5
💻 BAK
📖 第 1 页 / 共 5 页
字号:
			P13=0;
			P14=0;
			//mcsbak=0x01;
			break;
		case 2:
			P12=0;
			P13=1;
			P14=0;
			//mcsbak=0x02;
			break;
		case 3:
			
			P12=1;
			P13=1;
			P14=0;
			//mcsbak=0x03;
			break;
	       case 4:
			
			P12=0;
			P13=0;
			P14=1;
			//mcsbak=0x04;
			break;
	       case 5:
			
			P12=1;
			P13=0;
			P14=1;
			//mcsbak=0x05;
			break;
	       case 6:
			
			P12=0;
			P13=1;
			P14=1;
			//mcsbak=0x06;
			break;
	      case 7:
			
			P12=1;
			P13=1;
			P14=1;
			//mcsbak=0x07;
			break;
	} 

}
void  antennaroue1(void)
{	//  获取GSM信号强度值。并将相应点阵码送如x12dote[0][12]-2[]

uchar	data i,j,k,temp,temp1;
//extern uchar code signel1[2][12];
uchar * discodeprt=signel1;
	OldAntennaVal=antenna;//
//	temp = (antenna/3);	// antenna 1--31
	if(antenna==0) temp=0;
	if((antenna<11)&&(antenna>0))  temp=2;	// 1格信号
	if((antenna<16)&&(antenna>10)) temp=4;	// 2格信号
	if((antenna<20)&&(antenna>15)) temp=6;	// 3格信号
	if((antenna<26)&&(antenna>19)) temp=8;	// 4格信号
	if((antenna<32)&&(antenna>25)) temp=10;	// 5格信号
	LCDRWIO=1;
	LCDDIIO=1;
	p1tune(mcs138=RAMCS);
	for(i=0;i<2;i++)
	{
		for(k=0,j=12;j<24;j++,k++)
		{	temp1=*(discodeprt++);
			temp1 = bytetune(temp1);
			if(temp>k)
		 		x12dote[i][j]=temp1;
			else
				x12dote[i][j]=0x00;
		}
	}// 以上是信号强度 temp是等级2 4 6 8 10 等级
}

void dis12dote(uchar x,uchar y,uchar * poniter,bit tempsign)
{	//是汉字时 tempsign=0//  应该是:如果要反显	tempsign=1;
//x指示x12dote[i][j]中i值,y指示其中j值。用于天线及GSM信号强度2004.06.11 mers
uchar data i,j,temp;
uchar * discodeprt=poniter;
	LCDRWIO=1;
	LCDDIIO=1;
	p1tune(mcs138=RAMCS);
	for(i=x;i<x+2;i++)
	{
		for(j=6*y;j<(6*y+6);j++)
		{	temp=*(discodeprt++);
			temp = bytetune(temp);
			if(tempsign)
				temp=~temp;
			x12dote[i][j]=temp;//////////////////////////////////////////////
		}
	}
}
void dis12dote1(uchar x,uchar y,uchar * poniter,bit tempsign)
{	
uchar data i,j,temp;
uchar * discodeprt=poniter;
	LCDRWIO=1;
	LCDDIIO=1;
	p1tune(mcs138=RAMCS);
	for(i=x;i<x+2;i++)
	{
		for(j=6*y;j<(6*y+12);j++)
		{	temp=*(discodeprt++);
			temp = bytetune(temp);
			if(tempsign)
				temp=~temp;
			x12dote[i][j]=temp;
		}
	}
}
//--------------------------------------------
void dotetimedate(void)
{extern uchar code dote12_l[];
extern uchar code dote12_0[];extern uchar code dote_yue[];
extern uchar code dote_rei[];extern uchar code dote12_m[];
extern uchar code dote12_k[];extern uchar code dote12_h[];
extern uchar code dote_nai[];extern uchar code dote_dian[];
extern uchar code dote_xing[];extern uchar code dote_mao[];
extern uchar code dote_nop[];
uchar data i,j,temp;
uchar *discodeprt;
	LCDRWIO=1;
	LCDDIIO=1;
	p1tune(mcs138=RAMCS);
	xytime[4] =13;xytime[16] =13;	// 经度与纬度中的小数点
	for(i=1,j=0;i<7;i++)	//日期
	{
		temp=(yymmtt[i+1-j])&0x0f;
		if((temp==0x00)&&(i==1))
			{dis12dote(2,i,dote_nop,0);continue;}
		if(i==3)
			{dis12dote1(2,i,dote_yue,0);i++;j++;j++;continue;}
		discodeprt = &dote12_0[0]+temp*12;
		dis12dote(2,i,discodeprt,0);
	}
	dis12dote1(2,7,dote_rei,0);

	for(i=0,j=0;i<8;i++)	//时间
	{	temp=(yymmtt[i-j+6])&0x0f;
		if((i==2)|(i==5))
			{temp=10;j++;}
		discodeprt = &dote12_0[0]+temp*12;
		dis12dote(2,i+10,discodeprt,0);
	}
/*	for(i=0,j=0;i<8;i++)	//日期
	{	temp=(yymmtt[i-j])&0x0f;
		if((i==2)|(i==5))
			{temp=14;j++;}
		discodeprt = &dote12_0[0]+temp*12;
		dis12dote(2,i+8,discodeprt);
	}
	for(i=0,j=0;i<8;i++)	//时间
	{	temp=(yymmtt[i-j+6])&0x0f;
		if((i==2)|(i==5))
			{temp=10;j++;}
		discodeprt = &dote12_0[0]+temp*12;
		dis12dote(4,i+6,discodeprt);
	}
*/	for(i=0,j=0;i<5;i++)	//显示速度
	{	temp=(speedfang1[i])&0x0f;
		discodeprt = &dote12_0[0]+temp*12;
		dis12dote(4,i+6,discodeprt,0);
		if(temp==13)
			break;
	}

	temp=(speedfang1[i+1])&0x0f;i=i+7;
	discodeprt = &dote12_0[0]+temp*12;
	dis12dote(4,i++,discodeprt,0);	// 小数点值
	dis12dote(4,i++,dote_nop,0);
	dis12dote(4,i++,dote12_k,0);	//k
	dis12dote(4,i++,dote12_m,0);	//m
	dis12dote(4,i++,dote12_l,0);	//'/'
	dis12dote(4,i++,dote12_h,0);	//h
	for(;i<19;i++)
		dis12dote(4,i,dote_nop,0);
	for(i=0,j=0;i<11;i++)	//经度
	{	temp=(xytime[i-j])&0x0f;
		//if((i==2)|(i==5)|(i==10)|(i==6))
		if(i==2)	{temp=11;j++;}
		if(i==10)	{temp=12;j++;}
		discodeprt = &dote12_0[0]+temp*12;
		dis12dote(6,i+6,discodeprt,0);
	}
	for(i=0,j=0;i<12;i++)	//纬度
	{	temp=(xytime[i-j+11])&0x0f;
		//if((i==3)|(i==6)|(i==7)|(i==11))
		if(i==3)	{temp=11;j++;}
		if(i==11)	{temp=12;j++;}
		discodeprt = &dote12_0[0]+temp*12;
		dis12dote(8,i+6,discodeprt,0);
	}
}

void d12jianmian(void)
{
extern uchar code dote_ri[];extern uchar code dote_qi[];
extern uchar code dote_shi[];extern uchar code dote_jian[];
extern uchar code dote_jin[];extern uchar code dote_wei[];
extern uchar code dote_du[];extern uchar code dote_mao[];
extern uchar code dote_dong[];extern uchar code dote_bei[];
extern uchar code dote_shu[];extern uchar code dote_du[];
//uchar data i,j,temp;
//uchar * discodeprt;
	LCDRWIO=1;
	LCDDIIO=1;
	p1tune(mcs138=RAMCS);
//	dis12dote1(2,0,dote_rou);
//	dis12dote1(2,2,dote_qi);
//	dis12dote1(2,4,dote_mao);
	dis12dote1(4,0,dote_shu,0);
	dis12dote1(4,2,dote_du,0);
	dis12dote1(4,4,dote_mao,0);
	dis12dote1(8,0,dote_dong,0);
	dis12dote1(8,2,dote_jin,0);
	dis12dote1(8,4,dote_mao,0);
	dis12dote1(6,0,dote_bei,0);
	dis12dote1(6,2,dote_wei,0);
	dis12dote1(6,4,dote_mao,0);
}
void byte12(void)
{		// 5*16dote ==4*16
uchar data i,j,temp;
	LCDRWIO=1;
	LCDDIIO=1;
	p1tune(mcs138=RAMCS);
	for(i=0;i<128;i++)
		x16dote[0][i] = x12dote[0][i];
	for(i=0;i<128;i++)
	{	j = (x12dote[1][i])&0x0f;
		temp = x12dote[2][i];
		j= j|((temp<<5)&0xe0);
		x16dote[1][i] = j;
	}
	for(i=0;i<128;i++)
	{	j = x12dote[2][i];
		temp = x12dote[3][i];
		j= (j>>3)|(temp<<5);
		x16dote[2][i] = j;
	}
	for(i=0;i<128;i++)
	{	j = x12dote[3][i];
		temp = x12dote[4][i];
		j= ((j>>3)&0x01)|(temp<<2);
		x16dote[3][i] = j;
	}
	for(i=0;i<128;i++)
	{	j = x12dote[4][i];
		temp = x12dote[5][i];
		j = (j>>6)|(temp<<2);
		temp = x12dote[6][i];
		j = j|(temp<<7);
		x16dote[4][i] = j;
	}
	for(i=0;i<128;i++)
	{	j = x12dote[6][i];
		temp = x12dote[7][i];
		j= (j>>1)|(temp<<7);
		x16dote[5][i] = j;
	}
	for(i=0;i<128;i++)
	{	j = x12dote[7][i];
		temp = x12dote[8][i];
		j= ((j>>1)&0x07)|(temp<<4);
		x16dote[6][i] = j;
	}
	for(i=0;i<128;i++)
	{	j = x12dote[8][i];
		temp = x12dote[9][i];
		j= (j>>4)|(temp<<4);
		x16dote[7][i] = j;
	}
}
//--------------------------
void beginmap(uchar number)
{
uchar data i,j,k,temp;
uint16 data hzaddr;
//uchar * discodeprt;
extern uchar code startbamp[];
	A17 = 1;
	A16 = 1;
	hzaddr = 0x8700;
/*	if(number==3)
		discodeprt = startbamp;
	if(number==2)
		discodeprt = x16dote;
*/	for(i=0xb8;i<0xc0;i++)
	{	
		for(j=0;j<number;j++)	
		{	
			Feedingdog();
			if(j==0)
			{	p1tune(mcs138=LCDCS1);
				lcdwcommd(i);lcdwcommd(0x40);
			}
			if(j==1)
			{	p1tune(mcs138=LCDCS2);
				lcdwcommd(i);lcdwcommd(0x40);
			}
			if(j==2)
			{	p1tune(mcs138=LCDCS3);
				lcdwcommd(i);lcdwcommd(0x40);
			}
			LCDRWIO=1;
			LCDDIIO=1;
			p1tune(ROMCS);
			for(k=0;k<32;k++)
			{	temp=XBYTE[hzaddr++];
				disdata[k]=temp;
			}
			p1tune(mcs138);
			for(k=0;k<32;k++)
			{	temp = disdata[k];
				//temp = *(discodeprt++);
				temp = bytetune(temp);
				lcdwdata(temp);
			}
			LCDRWIO=1;
			LCDDIIO=1;
			p1tune(ROMCS);
			for(k=0;k<32;k++)
			{	temp=XBYTE[hzaddr++];
				disdata[k]=temp;
			}
			p1tune(mcs138);
			for(k=0;k<32;k++)
			{	temp = disdata[k];
				//temp = *(discodeprt++);
				temp = bytetune(temp);
				lcdwdata(temp);
			}
		}
	}
	A17 = 0;
	A16 = 0;
}


void beginmap1()  //将x16dote[8][128]存储的5*16点阵送LCD显示
{
uchar data i,j,k,temp;
uchar xdata * discodeprt;
	discodeprt = (uchar xdata *)x16dote;
	for(i=0xb8;i<0xc0;i++)
	{	
		for(j=0;j<2;j++)	
		{	
			
			if(j==0)
			{	p1tune(mcs138=LCDCS1);
				lcdwcommd(i);lcdwcommd(0x40);
			}
			if(j==1)								 
			{	p1tune(mcs138=LCDCS2);
				lcdwcommd(i);lcdwcommd(0x40);
			}
			for(k=0;k<64;k++)
			{	
				LCDRWIO=1;
				LCDDIIO=1;
				p1tune(RAMCS);
				temp = *(discodeprt++);
				p1tune(mcs138);
				lcdwdata(temp);
			}
		}
	}
}



//-------------------------------------------------
void gpsmap(void)//显示GPS圆周
{
uchar data i,j,temp;
uchar * discodeprt;
extern uchar code gpsdata[];
	discodeprt = gpsdata;
	for(i=0xb8;i<0xc0;i++)
	{	
		p1tune(mcs138=LCDCS3);
		lcdwcommd(i);lcdwcommd(0x40);
		for(j=0;j<64;j++)
		{	temp = *(discodeprt++);
			temp = bytetune(temp);
			lcdwdata(temp);
		}
	}
}
void gpsfang(void)
{				// 调整方向
uchar data i,j,temp;
uchar * discodeprt;
uint16 data hzaddr;

	LCDRWIO=1;
	LCDDIIO=1;
	p1tune(RAMCS);
	//i = speedfang1[0];
	//j = speedfang1[1];
//	if(fangsign)
	//	if((j==13)&&(i<5))
	//		return;
	fangsign = 1;
	i = (speedfang[5])&0x0f;
	j = speedfang[6];
	if(j!=0x2e)
	{	i=(i*10)+(j&0x0f);
		j = speedfang[7];
		if(j==0x2e)
			i=(i/5);		//方向的度数为二位数
		else
			i=(2*i)+(j&0x0f)/5;	//方向的度数为三位数 注:小点后的数忽略
	}
	else i=i/5;	// 方向的度数为一位数
	// 以上是度数除以5后,最大值为72,然后再分为8个方向
	for(j=0;j<10;j++)
	{	temp = * discodeprt++;	// temp = 00--72值 且i小于72
		if(i<temp)
			{temp = j;break;}  // 八个方向
	}
	if((j>8)|(j==0))
		temp=1;
	speedfang[10] = temp;
//	discodeprt = fangxian1 +(temp-1)*128;	//每幅为1280字节
	A16 = 1 ; A17 = 1;
	
	hzaddr = (temp-1)*128;
	hzaddr = hzaddr + 0x8f80;
	for(i=0xba;i<0xbe;i++)
	{	p1tune(mcs138=ROMCS);
		for(j=0;j<32;j++)
		{	temp = XBYTE[hzaddr++];
			disdata[j] = temp ;
		}
		p1tune(mcs138=LCDCS3);
		lcdwcommd(i);lcdwcommd(0x50);
		for(j=0;j<32;j++)
		{	
			temp = disdata[j];
			temp = bytetune(temp);
			lcdwdata(temp);
		}
	}
	A16 = 0 ; A17 = 0;
	
}

//--------------------------
void  dingwroue(void)
{	// 显示定位符号	
uchar	data i,j;
extern uchar code dingw[2][16];
	
	p1tune(mcs138 = LCDCS1);
	lcdwcommd(0xb8);	//page 0
	lcdwcommd(0x60);	//y 
	for(i=0;i<2;i++)
	{
		for(j=0;j<16;j++)
			lcdwdata(*(*(dingw+i)+j));
		lcdwcommd(0xb9);	//page
		lcdwcommd(0x60);	//y
	}
}
//-------------------------------------------------


void  antennaroue(void)
{	//  显示GSM信号强度的符号
	uchar	data i,j,temp;
	extern uchar code signel[2][16];
	p1tune(mcs138 = LCDCS1);
	lcdwcommd(0xb8);	//page 0
	lcdwcommd(0x50);	//y 
//	temp = (antenna/3);	// antenna 1--31
	if(antenna==0) temp=0;
	if((antenna<11)&&(antenna>0)) temp=2;	// 1格信号
	if((antenna<16)&&(antenna>10)) temp=4;	// 2格信号
	if((antenna<20)&&(antenna>15)) temp=6;	// 3格信号
	if((antenna<26)&&(antenna>19)) temp=8;	// 4格信号
	if((antenna<32)&&(antenna>25)) temp=10;	// 5格信号
	for(i=0;i<2;i++)
	{
		for(j=0;j<16;j++)
		{
			if(temp>j)
				lcdwdata(*(*(signel+i)+j));
			else
				lcdwdata(0x00);
		}
		lcdwcommd(0xb9);	//page
		lcdwcommd(0x50);	//y
	}	// 以上是信号强度 temp是等级2 4 6 8 10 等级
}

//--------------------------------------------------------
/*
void disonenews (uchar * dataprt)
{
uchar	data i=0,j=0,temphi=0,templow=0;
uchar	* discodeprt=dataprt;
	LCDRWIO=1;
	LCDDIIO=1;
	p1tune(mcs138=RAMCS);
//	discodeprt=dataprt;
	for(i=0;i<4;i++)
	{	// i 为行的标志 
		for(j=0;j<24;j++)
		{	LCDRWIO=1;

⌨️ 快捷键说明

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