Beispiel #1
0
void initLcd()
{
	LcdEn = 0;
	WriteCom(0x38);
	WriteCom(0x0c);
	WriteCom(0x06);
	WriteCom(0x01);
}
Beispiel #2
0
uint displayChar(uint row, uint column, char str)
{
	if((row > 2 || row < 1) || (column > 15 || column < 0))
	    return -1;
	WriteCom(0x80 + (0x40 * (row-1)) + column);  //定位置指定行列
	WriteData(str);
	return 0;
}
int eputs(char *s)
{
  // only writes to the comms port at the moment
  if (!ComOpen)
    return -1;
  while (*s) 
    WriteCom(1,s++);
  return 0;
}
Beispiel #4
0
void WriteChar_RVS(const unsigned char *str,unsigned char page,unsigned char row,unsigned char chipselect)
{
	unsigned char currentpage=0,currentrow=0,i=0,j=0;
	currentpage=0xb8+page;
	currentrow=0x40+row;

		for(j=0;j<2;j++)
		{
			WriteCom(currentpage,chipselect);						//set start page;
			WriteCom(currentrow,chipselect);						//set start row;
			for(i=0;i<8;i++)
			{
				WriteData(~(*str),chipselect);
				str++;
			}
			currentpage++;
		}
		currentpage++;
}
Beispiel #5
0
//===============================
//写入汉字,从左到右依次写入;
//参数page为第几行取值0~3;
//参数row为第几列,取值为0~63-16;
//参数length为汉字长度;
//===============================
void WriteChinese(const unsigned char *p,unsigned char page,unsigned char row,unsigned char chipselect)
{
	unsigned char i=0,j=0,currentpage=0,currentrow=0;
	currentpage=page*2+0xb8;
	currentrow=row+0x40;
	
		for(j=0;j<2;j++)
		{
			WriteCom(currentpage,chipselect);						//set start page;
			WriteCom(currentrow,chipselect);						//set start row;
			for(i=0;i<16;i++)
			{
				WriteData(*p,chipselect);
				p++;
			}
			currentpage++;
		}

}
Beispiel #6
0
uint displayStr(uint row, uint column, char* str, int len)
{
	uchar i;
	if((row > 2 || row < 1) || (column > 15 || column < 0) || (str == NULL))
	    return -1;
	WriteCom(0x80 + (0x40 * (row-1)) + column);  //定位置指定行列
	for(i = 0; i < len; i++)
	{
	    WriteData(*(str+i));
		delay(5);
	}
	return 0; 
}
Beispiel #7
0
//===============================
//写入大小为192*64 的bmp位图图像;
//===============================
void WriteBmp(const unsigned char *ptr)
{
	unsigned char l=0,r=0,startpage=0xb8; 		//startline=0xc0,

	for(r=0;r<8;r++)
	{
		//WriteComL(startline);					//set start line;
		WriteCom(startpage,'L');					//set start page;
		WriteCom(0x40,'L');						//set start row;
		for(l=0;l<64;l++)
		{
			WriteData(*ptr,'L');		//pgm_read_byte()为读取flash内容的函数;
			ptr++;
		}
		//startline+=8;
		startpage+=1;
		ptr+=128;									
	}

	startpage=0xb8;
	ptr-=1472;					//注意计算地址指针的位置;上面最后又加了一次128 所以上面地址就已经到了最后。所以此处地址为ptr-(192*64-64);
	for(r=0;r<8;r++)
	{
		WriteCom(startpage,'M');				//set start page;
		WriteCom(0x40,'M');				//set start row;
		for(l=0;l<64;l++)
		{
			WriteData(*ptr,'M');
			ptr++;
		}
		//startline+=8;
		startpage+=1;
		ptr+=128;
	}


	startpage=0xb8;
	ptr-=1472;
	for(r=0;r<8;r++)
	{
		WriteCom(startpage,'R');				//set start page;
		WriteCom(0x40,'R');				//set start row;
		for(l=0;l<64;l++)
		{
			WriteData(*ptr,'R');
			ptr++;
		}
		//startline+=8;
		startpage+=1;
		ptr+=128;
	}
}
Beispiel #8
0
int displayInt(unsigned int row, unsigned int column, int value)
{
    unsigned char buf[4];
	unsigned char i;
	if((row > 2 || row < 1) || (column > 15 || column < 0))
	    return -1;
	if(value <= 0)		                                                                                                                                                        
	{
		value = 0;
	}
    sprintf(buf, "%4d", value);
	WriteCom(0x80 + (0x40 * (row-1)) + column);  //定位置指定行列
	delay(5);
	for(i = 0; i < 4; i++)
	{ 
		WriteData(buf[i]);
		delay(5);						 
	}
	return 0; 
}
Beispiel #9
0
void ClearLCM()
{
	unsigned char l=0,r=0,startpage=0xb8; 		//startline=0xc0,

	for(r=0;r<8;r++)
	{
		//WriteComL(startline);					//set start line;
		WriteCom(startpage,'L');					//set start page;
		WriteCom(0x40,'L');						//set start row;
		for(l=0;l<64;l++)
		{
			WriteData(0x00,'L');		//pgm_read_byte()为读取flash内容的函数;
		}
		//startline+=8;
		startpage+=1;
	}

	startpage=0xb8;
		
	for(r=0;r<8;r++)
	{
		WriteCom(startpage,'M');				//set start page;
		WriteCom(0x40,'M');				//set start row;
		for(l=0;l<64;l++)
		{
			WriteData(0x00,'M');
		}
		//startline+=8;
		startpage+=1;
	}


	startpage=0xb8;
	for(r=0;r<8;r++)
	{
		WriteCom(startpage,'R');				//set start page;
		WriteCom(0x40,'R');				//set start row;
		for(l=0;l<64;l++)
		{
			WriteData(0x00,'R');
		}
		//startline+=8;
		startpage+=1;
	}
}
void WriteComChar(char b)
{
	WriteCom(&b, 1);
}
Beispiel #11
0
void clearAll()
{
    WriteCom(0x01);
}
Beispiel #12
0
int main( void )
{
	// Stop watchdog timer to prevent time out reset
	WDTCTL = WDTPW + WDTHOLD;
	init_device();
	InitLCM();
	WriteCom(0x3f,'L');//play on;
	WriteCom(0x3f,'R');
	ClearLCM();
	checkflash();
	
	P6SEL|=0x01;
	ADC12CTL0=ADC12ON+SHT0_2+REFON+REF2_5V;
	ADC12CTL1=SHP;
	ADC12MCTL0=SREF_1;
	
	WriteChinese(hzstr,0,0,'L');
	WriteChinese(hzstr+32,0,16,'L');
	WriteChinese(hzstr+64,0,32,'L');
	WriteChinese(hzstr+96,2,0,'L');
	WriteChinese(hzstr+128,2,16,'L');
	WriteChinese(hzstr+160,2,32,'L');
	
	WriteChar(Ezk+16*('m'-0x20),6,40,'L');
	WriteChar(Ezk+16*('V'-0x20),6,48,'L');
	
	ADC12CTL0|=ENC;
	ADC12CTL0|=ADC12SC;
	while(1)
	{
		kkk_showAD(0);
		k=keyscan();
		if(k==12)
		{
			while(k)//等待按键弹起
			{
				k=keyscan();
			}
                        close_timerA();
			ClearLCM();
			kkk_setparameter();
			ClearLCM();
			WriteChinese(hzstr,0,0,'L');
			WriteChinese(hzstr+32,0,16,'L');
			WriteChinese(hzstr+64,0,32,'L');
			WriteChinese(hzstr+96,2,0,'L');
			WriteChinese(hzstr+128,2,16,'L');
			WriteChinese(hzstr+160,2,32,'L');
			
			WriteChar(Ezk+16*('m'-0x20),6,40,'L');
			WriteChar(Ezk+16*('V'-0x20),6,48,'L');
			kkk_showAD(0);
                        init_timerA();
		}
		if(k==15)//reset
		{
			while(k)//等待按键弹起
			{
				k=keyscan();
			}
			WDTCTL =WDT_MRST_32;
			while(1);
		}
		delay(2000);
	}
}