ili9325 初始代码,图片显示程序
ili9325初始化程序,数据宽度是16位的,这里宏定义就没有贴出了,
相信大家一看就明白了,就是几根制线的高低电平电序,只有初始化程序与显示图片程序
/********************************************************************* * LCD`屏写数据
* 入口参数 data 需要写入的数据
* 返回值 无
********************************************************************/ void Lcd_Write_Gram(WORD data)
,
Start_Write;
FIO1PIN3 = data & 0xff;
OUT273B;
FIO1PIN3 = (data>>8);
OUT273C;
Latch_Data;
,
/********************************************************************* * LCD`屏写索引寄存器
* 入口参数 index 寄存号
* 返回值 无
********************************************************************/ void Lcd_Write_Ir(WORD index)
,
// Write index regesit enable
Write_IR_Enble;
DataPort = index & 0xff;
Latch_Data;
,
/********************************************************************* * 指定寄存器写一个值
* 入口参数 index 寄存号
* data 写入寄存器的值
* 返回值 无
********************************************************************/
void Lcd_Write_Reg(WORD index, WORD data) ,
Lcd_Write_Ir(index); //指定寄存器
Lcd_Rs_H;
Lcd_Write_Gram(data); //写入数据
if (index == 0x21) //如果写入的是 COLUMU 地址, 则接下的写的是显示数据, , //改写索寄存器
Lcd_Write_Ir(0x22);
Write_Data_Enble;
,
,
/*************************************************************
* LCD初始化
* ILI9325 initial
*
*************************************************************/
void lcd_initial_(void) //lcd_initial_ ,
Chip_Enble; //芯片允许与复位
HX8309_Rst_Fsh;
Delay_Ms(30);
HX8309_Rst;
Delay_Ms(30);
HX8309_Rst_Fsh;
Lcd_Write_Reg(0xe3,0x3008);
Lcd_Write_Reg(0xe7,0x0012);
Lcd_Write_Reg(0xef,0x1231);
Lcd_Write_Reg(0x01,0x0100);//0x0100 Lcd_Write_Reg(0x02,0x0700);
Lcd_Write_Reg(0x03,0x1008);
Lcd_Write_Reg(0x04,0x0000);
Lcd_Write_Reg(0x08,0x0207);
Lcd_Write_Reg(0x09,0x0000); Lcd_Write_Reg(0x0a,0x0000); Lcd_Write_Reg(0x0c,0x0000); Lcd_Write_Reg(0x0d,0x0000); Lcd_Write_Reg(0x0f,0x0000); Lcd_Write_Reg(0x10,0x0000); Lcd_Write_Reg(0x11,0x0007); Lcd_Write_Reg(0x12,0x0000); Lcd_Write_Reg(0x13,0x0000); Delay_Ms(200);
Lcd_Write_Reg(0x10,0x1490); Lcd_Write_Reg(0x11,0x0227); Delay_Ms(50);
Lcd_Write_Reg(0x12,0x001A); // 可以调节亮度的 调小变亮 Delay_Ms(50);
Lcd_Write_Reg(0x13,0x0F00); //1b 水波纹
Lcd_Write_Reg(0x29,0x0019); ///1e FILKER
Lcd_Write_Reg(0x2b,0x000d); Delay_Ms(50);
Lcd_Write_Reg(0x20,0x0000); Lcd_Write_Reg(0x21,0x0000);
Lcd_Write_Reg(0x30,0x0007); Lcd_Write_Reg(0x31,0x0407); Lcd_Write_Reg(0x32,0x0101); Lcd_Write_Reg(0x35,0x0001); Lcd_Write_Reg(0x36,0x010E); Lcd_Write_Reg(0x37,0x0207); Lcd_Write_Reg(0x38,0x0101);
Lcd_Write_Reg(0x39,0x0706); Lcd_Write_Reg(0x3c,0x0505); Lcd_Write_Reg(0x3d,0x070B); Lcd_Write_Reg(0x50,0x0000); Lcd_Write_Reg(0x51,0x00ef);
Lcd_Write_Reg(0x52,0x0000); Lcd_Write_Reg(0x53,0x013f); Lcd_Write_Reg(0x60,0xa700); //0xa700
Lcd_Write_Reg(0x61,0x0001); Lcd_Write_Reg(0x6a,0x0000);
Lcd_Write_Reg(0x80,0x0000); Lcd_Write_Reg(0x81,0x0000); Lcd_Write_Reg(0x82,0x0000); Lcd_Write_Reg(0x83,0x0000); Lcd_Write_Reg(0x84,0x0000); Lcd_Write_Reg(0x85,0x0000);
Lcd_Write_Reg(0x90,0x0010); Lcd_Write_Reg(0x92,0x0600); Lcd_Write_Reg(0x93,0x0003); Lcd_Write_Reg(0x95,0x0110); Lcd_Write_Reg(0x97,0x0000); Lcd_Write_Reg(0x98,0x0000); Lcd_Write_Reg(0x07,0x0133);
,
/***********************************************************************
* 显示一幅图片
* 入口参数: rect 图片的大小,坐标信息
* p 指向图片的指针
*
************************************************************************/
void Lcd_Disp_Pic(WORD *rect,const BYTE *p)
,
WORD i,j;
WORD temp,data;
data = 0;
for (i = rect[1] ; i >= rect[1] - rect[3]; i--)
,
Lcd_Write_Reg(VerAddrReg,i); Lcd_Write_Reg(HorAddrReg,rect[0]);
for (j = 0; j < rect[2]; j++) ,
temp = p[(data<<1)+1];
temp = temp << 8;
temp += p[(data<<1)];
Start_Write; DataPort=temp ; Latch_Data;
data++;
,
if (i == 0) break; ,
,