void display_string_8x16(unsigned char page,char column,char *text) { uint16_t i=0,j,k,n; //Set_PINCS(0); while(text[i]>0x00) { if((text[i]>=0x20)&&(text[i]<=0x7e)) { j=text[i]-0x20; for(n=0;n<2;n++) { lcd_address(page+n,column); for(k=0;k<8;k++) { transfer_data(ascii_table_8x16[j][k+8*n]);/*??5x7 ?ASCII ??LCD ?,y ????,x ????,?????*/ } } i++; column+=8; } else i++; } //Set_PINCS(1); }
//显示5X8点阵图像、ASCII, 或5x8点阵的自造字符、其他图标 void display_graphic_5x8(uchar page,uchar column,uchar *dp) { uint i; lcd_address(page,column); for (i=0;i<6;i++) { transfer_data_lcd(*dp); dp++; } }
/******************************************************************************* 函数名:full_dis 输入: 输出: 功能:满屏 *******************************************************************************/ void full_dis() { int i,j; for(i = 0;i<8;i++) { cs =0; lcd_address(i+1,1); for(j= 0;j<128;j++) transfer_da(0xff); } }
//显示8x16点阵图像、ASCII, 或8x16点阵的自造字符、其他图标 void display_graphic_8x16(uchar page,uchar column,uchar *dp) { uint i,j; for(j=0;j<2;j++) { lcd_address(page+j,column); for (i=0;i<8;i++) { transfer_data_lcd(*dp); //写数据到LCD,每写完一个8位的数据后列地址自动加1 dp++; } } }
/******************************************************************************* 函数名:clear 输入: 输出: 功能:清屏 *******************************************************************************/ void clear() { uchar i,j; cs = 0; for(i = 0;i<8;i++) //例程为9 { lcd_address(1+i,1); for(j = 0;j<132;j++) { transfer_da(0x00); //每一列输出零 } } cs = 1; } //每一页(8行)每一列输出零
/*全屏清屏*/ void LCD_ClearScreen(void) { uint8_t i,j; //Set_PINCS(0); for(i=0;i<8;i++) { lcd_address(i,0); for(j=0;j<132;j++) { transfer_data(0x00); } } //Set_PINCS(1); }
//显示128x64点阵图像 void display_128x64(uchar *dp) { uint i,j; for(j=0;j<8;j++) { lcd_address(j+1,1); for (i=0;i<128;i++) { transfer_data_lcd(*dp); //写数据到LCD,每写完一个8位的数据后列地址自动加1 dp++; } } }
/******************************************************************************* 函数名:display_gra_16x16 输入: page,colum,*dp 输出: 功能:显示16*16字 *******************************************************************************/ void display_gra_16x16(unsigned char page ,unsigned char colum,unsigned char *dp) { uchar i,j; cs = 0 ; for(j = 0;j<2;j++) { lcd_address(page+j,colum); for(i =0;i<16;i++) { transfer_da(*dp); dp++; } } cs = 1; }
/*显示8x16 点阵图像、ASCII, 或8x16 点阵的自造字符、其他图标*/ void display_graphic_8x16(uint8_t page,uint8_t column,uint8_t *dp) { uint8_t i,j; //Set_PINCS(0); for(j=0;j<2;j++) { lcd_address(page+j,column); for (i=0;i<8;i++) { transfer_data(*dp); /*写数据到LCD,每写完一个8 位的数据后列地址自动加1*/ dp++; } } //Set_PINCS(1); }
//==================display a piture of 128*64 dots================ void full_display() { int i,j; //Set_PINCS(0); for(i=0;i<8;i++) { lcd_address(i,0); for(j=0;j<128;j++) { transfer_data(0xff); } } //Set_PINCS(1); }
//从指定地址读出数据写到液晶屏指定(page,column)座标中 void get_and_write_5x8(ulong fontaddr,uchar page,uchar column) { uchar i,disp_data; Rom_CS = 0; send_command_to_ROM(0x03); send_command_to_ROM((fontaddr&0xff0000)>>16); //地址的高8位,共24位 send_command_to_ROM((fontaddr&0xff00)>>8); //地址的中8位,共24位 send_command_to_ROM(fontaddr&0xff); //地址的低8位,共24位 lcd_address(page,column); for(i=0; i<5; i++ ) { disp_data=get_data_from_ROM(); transfer_data_lcd(disp_data); //写数据到LCD,每写完1字节的数据后列地址自动加1 } Rom_CS=1; }