3310驱动续
0赞
发表于 7/31/2010 4:59:45 PM
阅读(1372)
改了一下中文显示,16*16和12*12,本来想在做一个10*10的,效果不是很好。
// Mega128 port B pinout for LCD.
#include <iom128v.h>
#include <macros.h>
#define LCD_DC 0x20 // LCD第4脚, Mega128:PB5
#define LCD_CE 0x10 // LCD第5脚, Mega128:PB4
#define LCD_RST 0x08 // LCD第8脚, Mega128:PB3(MISO)
#define SPI_MOSI 0x04 // LCD第3脚, Mega128:PB2(MOSI)
#define SPI_CLK 0x02 // LCD第2脚, Mega128: PB1(SCK)
#include <iom128v.h>
#include <macros.h>
#define LCD_DC 0x20 // LCD第4脚, Mega128:PB5
#define LCD_CE 0x10 // LCD第5脚, Mega128:PB4
#define LCD_RST 0x08 // LCD第8脚, Mega128:PB3(MISO)
#define SPI_MOSI 0x04 // LCD第3脚, Mega128:PB2(MOSI)
#define SPI_CLK 0x02 // LCD第2脚, Mega128: PB1(SCK)
/************************英文字库*********************************************/
// 6 x 8 font
// 1 pixel space at left and bottom
// index = ASCII - 32
const unsigned char font6x8[][6] =
{
{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, // sp
{ 0x00, 0x00, 0x00, 0x2f, 0x00, 0x00 }, // !
{ 0x00, 0x00, 0x07, 0x00, 0x07, 0x00 }, // "
{ 0x00, 0x14, 0x7f, 0x14, 0x7f, 0x14 }, // #
{ 0x00, 0x24, 0x2a, 0x7f, 0x2a, 0x12 }, // $
{ 0x00, 0x62, 0x64, 0x08, 0x13, 0x23 }, // %
{ 0x00, 0x36, 0x49, 0x55, 0x22, 0x50 }, // &
{ 0x00, 0x00, 0x05, 0x03, 0x00, 0x00 }, // '
{ 0x00, 0x00, 0x1c, 0x22, 0x41, 0x00 }, // (
{ 0x00, 0x00, 0x41, 0x22, 0x1c, 0x00 }, // )
{ 0x00, 0x14, 0x08, 0x3E, 0x08, 0x14 }, // *
{ 0x00, 0x08, 0x08, 0x3E, 0x08, 0x08 }, // +
{ 0x00, 0x00, 0x00, 0xA0, 0x60, 0x00 }, // ,
{ 0x00, 0x08, 0x08, 0x08, 0x08, 0x08 }, // -
{ 0x00, 0x00, 0x60, 0x60, 0x00, 0x00 }, // .
{ 0x00, 0x20, 0x10, 0x08, 0x04, 0x02 }, // /
{ 0x00, 0x3E, 0x51, 0x49, 0x45, 0x3E }, // 0
{ 0x00, 0x00, 0x42, 0x7F, 0x40, 0x00 }, // 1
{ 0x00, 0x42, 0x61, 0x51, 0x49, 0x46 }, // 2
{ 0x00, 0x21, 0x41, 0x45, 0x4B, 0x31 }, // 3
{ 0x00, 0x18, 0x14, 0x12, 0x7F, 0x10 }, // 4
{ 0x00, 0x27, 0x45, 0x45, 0x45, 0x39 }, // 5
{ 0x00, 0x3C, 0x4A, 0x49, 0x49, 0x30 }, // 6
{ 0x00, 0x01, 0x71, 0x09, 0x05, 0x03 }, // 7
{ 0x00, 0x36, 0x49, 0x49, 0x49, 0x36 }, // 8
{ 0x00, 0x06, 0x49, 0x49, 0x29, 0x1E }, // 9
{ 0x00, 0x00, 0x36, 0x36, 0x00, 0x00 }, // :
{ 0x00, 0x00, 0x56, 0x36, 0x00, 0x00 }, // ;
{ 0x00, 0x08, 0x14, 0x22, 0x41, 0x00 }, // <
{ 0x00, 0x14, 0x14, 0x14, 0x14, 0x14 }, // =
{ 0x00, 0x00, 0x41, 0x22, 0x14, 0x08 }, // >
{ 0x00, 0x02, 0x01, 0x51, 0x09, 0x06 }, // ?
{ 0x00, 0x32, 0x49, 0x59, 0x51, 0x3E }, // @
{ 0x00, 0x7C, 0x12, 0x11, 0x12, 0x7C }, // A
{ 0x00, 0x7F, 0x49, 0x49, 0x49, 0x36 }, // B
{ 0x00, 0x3E, 0x41, 0x41, 0x41, 0x22 }, // C
{ 0x00, 0x7F, 0x41, 0x41, 0x22, 0x1C }, // D
{ 0x00, 0x7F, 0x49, 0x49, 0x49, 0x41 }, // E
{ 0x00, 0x7F, 0x09, 0x09, 0x09, 0x01 }, // F
{ 0x00, 0x3E, 0x41, 0x49, 0x49, 0x7A }, // G
{ 0x00, 0x7F, 0x08, 0x08, 0x08, 0x7F }, // H
{ 0x00, 0x00, 0x41, 0x7F, 0x41, 0x00 }, // I
{ 0x00, 0x20, 0x40, 0x41, 0x3F, 0x01 }, // J
{ 0x00, 0x7F, 0x08, 0x14, 0x22, 0x41 }, // K
{ 0x00, 0x7F, 0x40, 0x40, 0x40, 0x40 }, // L
{ 0x00, 0x7F, 0x02, 0x0C, 0x02, 0x7F }, // M
{ 0x00, 0x7F, 0x04, 0x08, 0x10, 0x7F }, // N
{ 0x00, 0x3E, 0x41, 0x41, 0x41, 0x3E }, // O
{ 0x00, 0x7F, 0x09, 0x09, 0x09, 0x06 }, // P
{ 0x00, 0x3E, 0x41, 0x51, 0x21, 0x5E }, // Q
{ 0x00, 0x7F, 0x09, 0x19, 0x29, 0x46 }, // R
{ 0x00, 0x46, 0x49, 0x49, 0x49, 0x31 }, // S
{ 0x00, 0x01, 0x01, 0x7F, 0x01, 0x01 }, // T
{ 0x00, 0x3F, 0x40, 0x40, 0x40, 0x3F }, // U
{ 0x00, 0x1F, 0x20, 0x40, 0x20, 0x1F }, // V
{ 0x00, 0x3F, 0x40, 0x38, 0x40, 0x3F }, // W
{ 0x00, 0x63, 0x14, 0x08, 0x14, 0x63 }, // X
{ 0x00, 0x07, 0x08, 0x70, 0x08, 0x07 }, // Y
{ 0x00, 0x61, 0x51, 0x49, 0x45, 0x43 }, // Z
{ 0x00, 0x00, 0x7F, 0x41, 0x41, 0x00 }, // [
{ 0x00, 0x55, 0x2A, 0x55, 0x2A, 0x55 }, // 55
{ 0x00, 0x00, 0x41, 0x41, 0x7F, 0x00 }, // ]
{ 0x00, 0x04, 0x02, 0x01, 0x02, 0x04 }, // ^
{ 0x00, 0x40, 0x40, 0x40, 0x40, 0x40 }, // _
{ 0x00, 0x00, 0x01, 0x02, 0x04, 0x00 }, // '
{ 0x00, 0x20, 0x54, 0x54, 0x54, 0x78 }, // a
{ 0x00, 0x7F, 0x48, 0x44, 0x44, 0x38 }, // b
{ 0x00, 0x38, 0x44, 0x44, 0x44, 0x20 }, // c
{ 0x00, 0x38, 0x44, 0x44, 0x48, 0x7F }, // d
{ 0x00, 0x38, 0x54, 0x54, 0x54, 0x18 }, // e
{ 0x00, 0x08, 0x7E, 0x09, 0x01, 0x02 }, // f
{ 0x00, 0x18, 0xA4, 0xA4, 0xA4, 0x7C }, // g
{ 0x00, 0x7F, 0x08, 0x04, 0x04, 0x78 }, // h
{ 0x00, 0x00, 0x44, 0x7D, 0x40, 0x00 }, // i
{ 0x00, 0x40, 0x80, 0x84, 0x7D, 0x00 }, // j
{ 0x00, 0x7F, 0x10, 0x28, 0x44, 0x00 }, // k
{ 0x00, 0x00, 0x41, 0x7F, 0x40, 0x00 }, // l
{ 0x00, 0x7C, 0x04, 0x18, 0x04, 0x78 }, // m
{ 0x00, 0x7C, 0x08, 0x04, 0x04, 0x78 }, // n
{ 0x00, 0x38, 0x44, 0x44, 0x44, 0x38 }, // o
{ 0x00, 0xFC, 0x24, 0x24, 0x24, 0x18 }, // p
{ 0x00, 0x18, 0x24, 0x24, 0x18, 0xFC }, // q
{ 0x00, 0x7C, 0x08, 0x04, 0x04, 0x08 }, // r
{ 0x00, 0x48, 0x54, 0x54, 0x54, 0x20 }, // s
{ 0x00, 0x04, 0x3F, 0x44, 0x40, 0x20 }, // t
{ 0x00, 0x3C, 0x40, 0x40, 0x20, 0x7C }, // u
{ 0x00, 0x1C, 0x20, 0x40, 0x20, 0x1C }, // v
{ 0x00, 0x3C, 0x40, 0x30, 0x40, 0x3C }, // w
{ 0x00, 0x44, 0x28, 0x10, 0x28, 0x44 }, // x
{ 0x00, 0x1C, 0xA0, 0xA0, 0xA0, 0x7C }, // y
{ 0x00, 0x44, 0x64, 0x54, 0x4C, 0x44 }, // z
{ 0x14, 0x14, 0x14, 0x14, 0x14, 0x14 } // horiz lines
};
/***********************中文字库16*16*********************************************/
const unsigned char chinese_16x16[]=
{
0x00,0x00,0xFC,0x08,0x08,0x08,0x08,0xFF,
0x08,0x08,0x08,0x08,0xFC,0x08,0x00,0x00,
0x00,0x00,0x07,0x02,0x02,0x02,0x02,0xFF,
0x02,0x02,0x02,0x02,0x07,0x00,0x00,0x00,/*"中",0*/
0x00,0xFE,0x02,0x0A,0x8A,0x8A,0x8A,0xFA,
0x8A,0x8A,0x8A,0x0A,0x02,0xFE,0x00,0x00,
0x00,0xFF,0x40,0x48,0x48,0x48,0x48,0x4F,
0x48,0x49,0x4E,0x48,0x40,0xFF,0x00,0x00,/*"国",1*/
0x8A,0x8A,0x8A,0x0A,0x02,0xFE,0x00,0x00,
0x00,0xFF,0x40,0x48,0x48,0x48,0x48,0x4F,
0x48,0x49,0x4E,0x48,0x40,0xFF,0x00,0x00,/*"国",1*/
0x10,0x92,0x72,0xFE,0x91,0x19,0x90,0x88,
0x44,0x53,0xA2,0x52,0x0A,0x06,0x00,0x00,
0x02,0x01,0x00,0xFF,0x00,0x81,0x88,0x44,
0x46,0x29,0x11,0x09,0x05,0x03,0x01,0x00,/*"移",2*/
0x44,0x53,0xA2,0x52,0x0A,0x06,0x00,0x00,
0x02,0x01,0x00,0xFF,0x00,0x81,0x88,0x44,
0x46,0x29,0x11,0x09,0x05,0x03,0x01,0x00,/*"移",2*/
0x20,0x24,0x24,0xE4,0x24,0x24,0x24,0x20,
0x10,0x10,0xFF,0x10,0x10,0xF0,0x00,0x00,
0x08,0x1C,0x0B,0x08,0x0C,0x05,0x4E,0x24,
0x10,0x0C,0x03,0x20,0x40,0x3F,0x00,0x00 /*"动",3*/
};
0x10,0x10,0xFF,0x10,0x10,0xF0,0x00,0x00,
0x08,0x1C,0x0B,0x08,0x0C,0x05,0x4E,0x24,
0x10,0x0C,0x03,0x20,0x40,0x3F,0x00,0x00 /*"动",3*/
};
/***********************中文字库12*12****************************************/
const unsigned char chinese_12x12[]=
{
0x00,0x7C,0x44,0x44,0x44,0xFF,0x44,0x44,
0x44,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x00,/*"中",0*/
const unsigned char chinese_12x12[]=
{
0x00,0x7C,0x44,0x44,0x44,0xFF,0x44,0x44,
0x44,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x00,/*"中",0*/
0x00,0xFF,0x01,0x15,0x15,0xFD,0x15,0x55,
0x95,0x01,0xFF,0x00,0x00,0x07,0x05,0x05,
0x05,0x05,0x05,0x05,0x05,0x05,0x07,0x00,/*"国",1*/
0x95,0x01,0xFF,0x00,0x00,0x07,0x05,0x05,
0x05,0x05,0x05,0x05,0x05,0x05,0x07,0x00,/*"国",1*/
0x8A,0x6A,0xFE,0x29,0x49,0x24,0xAA,0x53,
0x6A,0x46,0xC2,0x00,0x01,0x00,0x07,0x00,
0x05,0x05,0x04,0x03,0x02,0x01,0x00,0x00,/*"移",2*/
0x6A,0x46,0xC2,0x00,0x01,0x00,0x07,0x00,
0x05,0x05,0x04,0x03,0x02,0x01,0x00,0x00,/*"移",2*/
0x92,0x52,0x32,0x52,0x92,0x10,0x08,0xFF,
0x08,0x08,0xF8,0x00,0x03,0x01,0x01,0x01,
0x05,0x02,0x01,0x04,0x04,0x06,0x01,0x00 /*"动",3*/
};
0x08,0x08,0xF8,0x00,0x03,0x01,0x01,0x01,
0x05,0x02,0x01,0x04,0x04,0x06,0x01,0x00 /*"动",3*/
};
/***********************lcd延迟函数******************************************/
/*-----------------------------------------------------------------------
延时函数
系统时钟:8M
-----------------------------------------------------------------------*/
void delay_1us(void) //1us延时函数
{
asm("nop");
}
void delay_nus(unsigned int n) //N us延时函数
{
unsigned int i=0;
for (i=0;i<n;i++)
delay_1us();
}
{
unsigned int i=0;
for (i=0;i<n;i++)
delay_1us();
}
void delay_1ms(void) //1ms延时函数
{
unsigned int i;
for (i=0;i<1140;i++);
}
{
unsigned int i;
for (i=0;i<1140;i++);
}
void delay_nms(unsigned int n) //N ms延时函数
{
unsigned int i=0;
for (i=0;i<n;i++)
delay_1ms();
}
/************************3310驱动程序***********************************/
/*-----------------------------------------------------------------------
LCD_write_byte : 使用SPI接口写数据到LCD
{
unsigned int i=0;
for (i=0;i<n;i++)
delay_1ms();
}
/************************3310驱动程序***********************************/
/*-----------------------------------------------------------------------
LCD_write_byte : 使用SPI接口写数据到LCD
输入参数:data :写入的数据;
command :写数据/命令选择;
command :写数据/命令选择;
编写日期 :2004-8-10
最后修改日期 :2004-8-13
-----------------------------------------------------------------------*/
void LCD_write_byte(unsigned char data, unsigned char command)
{
PORTB &= ~LCD_CE ; // 使能LCD
if (command == 0)
PORTB &= ~LCD_DC ; // 传送命令
else
PORTB |= LCD_DC ; // 传送数据
最后修改日期 :2004-8-13
-----------------------------------------------------------------------*/
void LCD_write_byte(unsigned char data, unsigned char command)
{
PORTB &= ~LCD_CE ; // 使能LCD
if (command == 0)
PORTB &= ~LCD_DC ; // 传送命令
else
PORTB |= LCD_DC ; // 传送数据
SPDR = data; // 传送数据到SPI寄存器
while ((SPSR & 0x80) == 0); // 等待数据传送完毕
PORTB |= LCD_CE ; // 关闭LCD
}
/*-----------------------------------------------------------------------
LCD_clear : LCD清屏函数
}
/*-----------------------------------------------------------------------
LCD_clear : LCD清屏函数
编写日期 :2004-8-10
最后修改日期 :2004-8-10
-----------------------------------------------------------------------*/
void LCD_clear(void)
{
unsigned int i;
最后修改日期 :2004-8-10
-----------------------------------------------------------------------*/
void LCD_clear(void)
{
unsigned int i;
LCD_write_byte(0x0c, 0);
LCD_write_byte(0x80, 0);
LCD_write_byte(0x80, 0);
for (i=0; i<504; i++)
LCD_write_byte(0, 1);
}
/*-----------------------------------------------------------------------
LCD_init : 3310LCD初始化
LCD_write_byte(0, 1);
}
/*-----------------------------------------------------------------------
LCD_init : 3310LCD初始化
编写日期 :2004-8-10
最后修改日期 :2004-8-10
-----------------------------------------------------------------------*/
void LCD_init(void)
{
PORTB &= ~LCD_RST; // 产生一个让LCD复位的低电平脉冲
delay_1us();
PORTB |= LCD_RST;
PORTB &= ~LCD_CE ; // 关闭LCD
delay_1us();
PORTB |= LCD_CE; // 使能LCD
delay_1us();
最后修改日期 :2004-8-10
-----------------------------------------------------------------------*/
void LCD_init(void)
{
PORTB &= ~LCD_RST; // 产生一个让LCD复位的低电平脉冲
delay_1us();
PORTB |= LCD_RST;
PORTB &= ~LCD_CE ; // 关闭LCD
delay_1us();
PORTB |= LCD_CE; // 使能LCD
delay_1us();
LCD_write_byte(0x21, 0); // 使用扩展命令设置LCD模式
LCD_write_byte(0xc8, 0); // 设置偏置电压
LCD_write_byte(0x06, 0); // 温度校正
LCD_write_byte(0x13, 0); // 1:48
LCD_write_byte(0x20, 0); // 使用基本命令
LCD_clear(); // 清屏
LCD_write_byte(0x0c, 0); // 设定显示模式,正常显示
PORTB &= ~LCD_CE ; // 关闭LCD
}
LCD_write_byte(0xc8, 0); // 设置偏置电压
LCD_write_byte(0x06, 0); // 温度校正
LCD_write_byte(0x13, 0); // 1:48
LCD_write_byte(0x20, 0); // 使用基本命令
LCD_clear(); // 清屏
LCD_write_byte(0x0c, 0); // 设定显示模式,正常显示
PORTB &= ~LCD_CE ; // 关闭LCD
}
/*-----------------------------------------------------------------------
LCD_set_XY : 设置LCD坐标函数
LCD_set_XY : 设置LCD坐标函数
输入参数:X :0-83
Y :0-5
Y :0-5
编写日期 :2004-8-10
最后修改日期 :2004-8-10
-----------------------------------------------------------------------*/
void LCD_set_XY(unsigned char X, unsigned char Y)
{
LCD_write_byte(0x40 | Y, 0); // column
LCD_write_byte(0x80 | X, 0); // row
}
最后修改日期 :2004-8-10
-----------------------------------------------------------------------*/
void LCD_set_XY(unsigned char X, unsigned char Y)
{
LCD_write_byte(0x40 | Y, 0); // column
LCD_write_byte(0x80 | X, 0); // row
}
/*-----------------------------------------------------------------------
LCD_write_char : 显示英文字符
LCD_write_char : 显示英文字符
输入参数:c :显示的字符;
编写日期 :2004-8-10
最后修改日期 :2004-8-10
-----------------------------------------------------------------------*/
void LCD_write_char(unsigned char c)
{
unsigned char line;
最后修改日期 :2004-8-10
-----------------------------------------------------------------------*/
void LCD_write_char(unsigned char c)
{
unsigned char line;
c =c-32;
for (line=0; line<6; line++)
LCD_write_byte(font6x8[c][line], 1);
}
LCD_write_byte(font6x8[c][line], 1);
}
/*-----------------------------------------------------------------------
LCD_write_english_String : 英文字符串显示函数
LCD_write_english_String : 英文字符串显示函数
输入参数:*s :英文字符串指针;
X、Y : 显示字符串的位置,x 0-83 ,y 0-5
X、Y : 显示字符串的位置,x 0-83 ,y 0-5
编写日期 :2004-8-10
最后修改日期 :2004-8-10
-----------------------------------------------------------------------*/
void LCD_write_english_string(unsigned char X,unsigned char Y,char *s,int d)
{
LCD_set_XY(X,Y);
while (*s)
{
delay_nms(d);
LCD_write_char(*s);
s++;
}
}
最后修改日期 :2004-8-10
-----------------------------------------------------------------------*/
void LCD_write_english_string(unsigned char X,unsigned char Y,char *s,int d)
{
LCD_set_XY(X,Y);
while (*s)
{
delay_nms(d);
LCD_write_char(*s);
s++;
}
}
/*-----------------------------------------------------------------------
LCD_draw_map : 位图绘制函数
LCD_draw_map : 位图绘制函数
输入参数:X、Y :位图绘制的起始X、Y坐标;
*map :位图点阵数据;
Pix_x :位图像素(长)
Pix_y :位图像素(宽)
*map :位图点阵数据;
Pix_x :位图像素(长)
Pix_y :位图像素(宽)
编写日期 :2004-8-13
最后修改日期 :2004-8-13
-----------------------------------------------------------------------*/
void LCD_draw_bmp_pixel(unsigned char X,unsigned char Y,const unsigned char *map,
unsigned char Pix_x,unsigned char Pix_y)
{
unsigned int i,n;
unsigned char row;
if (Pix_y%8==0) row=Pix_y/8; //计算位图所占行数
else
row=Pix_y/8+1;
for (n=0;n<row;n++)
{
LCD_set_XY(X,Y);
for(i=0; i<Pix_x; i++)
{
LCD_write_byte(map[i+n*Pix_x], 1);
}
Y++; //换行
}
}
最后修改日期 :2004-8-13
-----------------------------------------------------------------------*/
void LCD_draw_bmp_pixel(unsigned char X,unsigned char Y,const unsigned char *map,
unsigned char Pix_x,unsigned char Pix_y)
{
unsigned int i,n;
unsigned char row;
if (Pix_y%8==0) row=Pix_y/8; //计算位图所占行数
else
row=Pix_y/8+1;
for (n=0;n<row;n++)
{
LCD_set_XY(X,Y);
for(i=0; i<Pix_x; i++)
{
LCD_write_byte(map[i+n*Pix_x], 1);
}
Y++; //换行
}
}
/*------------------------------------------------------------------------------
中文显示函数(16*16/12*12/10*10)
输入参数:X Y 坐标
MAP 字库数组,用哪种类型的汉字,则传入哪种参数
chinese_ID 汉字编号,具体参照汉字库数组
chage_font 字体选择 0:12*12
1:16*16
2: 10*10 显示效果不好,没有做出来
------------------------------------------------------------------------------*/
void lcd_chinese_auto_char(unsigned char X,unsigned char Y, const unsigned char *map,
unsigned char chinese_ID,unsigned char chage_font)
{ unsigned char i,j;
unsigned char contel_x;
LCD_set_XY(X,Y);
unsigned char contel_x;
LCD_set_XY(X,Y);
if(chage_font==0)contel_x=12;
if(chage_font==1)contel_x=16;
// if(chage_font==2)contel_x=10;
if(chage_font==1)contel_x=16;
// if(chage_font==2)contel_x=10;
for (i=0;i<2;i++)//两行(16)
{
if(i==1) {Y++; LCD_set_XY(X,Y);}//换行
for(j=0;j<contel_x;j++)
LCD_write_byte(map[(j+i*contel_x)+chinese_ID*contel_x*2],1);//每行16/12列,共两行,chinese_ID*contel_x*2为汉字偏移起始地址
}
}
/*------------------------------------------------------------------------------
中文显示流函数(16*16/12*12/10*10)
输入参数:X Y 坐标
MAP 字库数组,用哪种类型的汉字,则传入哪种参数
chinese_ID 汉字编号,具体参照汉字库数组
chinese_ID_start 汉字起始编号
NUM 汉字输入个数
chage_font 字体选择 0:12*12
1:16*16
2: 10*10 显示效果不好,没有做出来
------------------------------------------------------------------------------*/
void lcd_chinese_auto_string(unsigned char X,unsigned char Y,const unsigned char*map,
unsigned char chinese_ID_strat,unsigned char NUM,
unsigned char chage_font)
{
unsigned char i;
for(i=0;i<NUM;i++)
{
lcd_chinese_auto_char(X,Y,map,chinese_ID_strat,chage_font);
if(chage_font==0)X+=12;
if(chage_font==1)X+=16;
//if(chage_font==2)X+=10;;//字体间距选择
chinese_ID_strat++;
}
}
{
if(i==1) {Y++; LCD_set_XY(X,Y);}//换行
for(j=0;j<contel_x;j++)
LCD_write_byte(map[(j+i*contel_x)+chinese_ID*contel_x*2],1);//每行16/12列,共两行,chinese_ID*contel_x*2为汉字偏移起始地址
}
}
/*------------------------------------------------------------------------------
中文显示流函数(16*16/12*12/10*10)
输入参数:X Y 坐标
MAP 字库数组,用哪种类型的汉字,则传入哪种参数
chinese_ID 汉字编号,具体参照汉字库数组
chinese_ID_start 汉字起始编号
NUM 汉字输入个数
chage_font 字体选择 0:12*12
1:16*16
2: 10*10 显示效果不好,没有做出来
------------------------------------------------------------------------------*/
void lcd_chinese_auto_string(unsigned char X,unsigned char Y,const unsigned char*map,
unsigned char chinese_ID_strat,unsigned char NUM,
unsigned char chage_font)
{
unsigned char i;
for(i=0;i<NUM;i++)
{
lcd_chinese_auto_char(X,Y,map,chinese_ID_strat,chage_font);
if(chage_font==0)X+=12;
if(chage_font==1)X+=16;
//if(chage_font==2)X+=10;;//字体间距选择
chinese_ID_strat++;
}
}
