微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > ILI9235的51单片机驱动程序-推箱子游戏

ILI9235的51单片机驱动程序-推箱子游戏

时间:11-30 来源:互联网 点击:

*******************************************
函数名称:void Write_Cmd(uchar DH,uchar DL)
函数功能:写指令
入口参数:DH 高8位数据 DL 低8位数据
出口参数:无
备 注:无
*******************************************************************************/
void Write_Cmd(uchar DH,uchar DL)
{
CS0
RS0
P4DIR = 0xff;
P4OUT = DH;
RW0
RW1
P4OUT = DL;
RW0
RW1
CS1
}

/*******************************************************************************
函数名称:void Write_Data(uchar DH,uchar DL)
函数功能:写数据
入口参数:DH 高8位数据 DL 低8位数据
出口参数:无
备 注:无
*******************************************************************************/
void Write_Data(uchar DH,uchar DL)
{
CS0
RS1
P4DIR = 0xff;
P4OUT=DH;
RW0
RW1
P4OUT=DL;
RW0
RW1
CS1
}


/*******************************************************************************
函数名称:void ILI9325_Initial()
函数功能:初始化液晶模块
入口参数:无
出口参数:无
备 注:无
*******************************************************************************/
void ILI9325_Initial()
{
RD1
CS1
REST0
REST1
Init_data(0x00e5, 0x8000);
Init_data(0x0000, 0x0001);
Init_data(0x0001, 0x0000);//输出方式控制0x00,0x100,0x400,0x500,正常显示用0x00
Init_data(0x0002, 0x0700);//可设置为0x400或0x700;
Init_data(0x0003, 0x1018);//可设置为0x1030,0x1000,0x1010,0x1020,0x1038,0x1028,0x1018,0x1008;
//还可以把最前面的1去掉,如:0x18;
//BGR = " 0 ":遵循gb顺序来写的像素数据
//BGR = " 1 ":将RGB数据换成BGR数据再写入GRAM
//横向设置0x1018最好/纵向设置0x1000最好
Init_data(0x0004, 0x0000);//显示大小尺寸控制寄存器0x00为1倍大小,即240x320
Init_data(0x0008, 0x0202);//可设置为0x0202,0x00,
Init_data(0x0009, 0x0000);//扫描设置
Init_data(0x000A, 0x0000);
Init_data(0x000C, 0x0000);
Init_data(0x000D, 0x0000);
Init_data(0x000F, 0x0000);
//-----Power On sequence-----------------------
Init_data(0x0010, 0x0000);
Init_data(0x0011, 0x0007);
Init_data(0x0012, 0x0000);
Init_data(0x0013, 0x0000);
Init_data(0x0010, 0x17B0);
Init_data(0x0011, 0x0007);
Init_data(0x0012, 0x013A);
Init_data(0x0013, 0x1A00);
Init_data(0x0029, 0x000c);
//-----Gamma control-----------------------
Init_data(0x0030, 0x0000);
Init_data(0x0031, 0x0505);
Init_data(0x0032, 0x0004);
Init_data(0x0035, 0x0006);
Init_data(0x0036, 0x0707);
Init_data(0x0037, 0x0105);
Init_data(0x0038, 0x0002);
Init_data(0x0039, 0x0707);
Init_data(0x003C, 0x0704);
Init_data(0x003D, 0x0807);
//-----Set RAM area-----------------------
Init_data(0x0050, 0x0000);
Init_data(0x0051, 0x00EF);
Init_data(0x0052, 0x0000);
Init_data(0x0053, 0x013F);
Init_data(0x0060, 0x2700);
Init_data(0x0061, 0x0001);
Init_data(0x006A, 0x0000);
Init_data(0x0021, 0x0000);
Init_data(0x0020, 0x0000);
//-----Partial Display Control------------
Init_data(0x0080, 0x0000);
Init_data(0x0081, 0x0000);
Init_data(0x0082, 0x0000);
Init_data(0x0083, 0x0000);
Init_data(0x0084, 0x0000);
Init_data(0x0085, 0x0000);
//-----Panel Control----------------------
Init_data(0x0090, 0x0010);
Init_data(0x0092, 0x0000);
Init_data(0x0093, 0x0003);
Init_data(0x0095, 0x0110);
Init_data(0x0097, 0x0000);
Init_data(0x0098, 0x0000);
//-----Display on-----------------------
Init_data(0x0007, 0x0173);
}

/*=================定义显示窗体=============================
---------x0: 窗体中X坐标中较小者
---------x1: 窗体中X坐标中较大者
---------y0: 窗体中Y坐标中较小者
---------y1: 窗体中Y坐标中较大者
=================定义显示窗体=============================*/
void LCD_SetPos(uint x0,uint x1,uint y0,uint y1)
{
Init_data(WINDOW_XADDR_START,x0);
Init_data(WINDOW_XADDR_END,x1);
Init_data(WINDOW_YADDR_START,y0);
Init_data(WINDOW_YADDR_END,y1);
Init_data(GRAM_XADDR,x0);
Init_data(GRAM_YADDR,y0);
Write_Cmd (0x00,0x22);
}

/*******************************************************************************
函数名称:void ILI9325_Initial()
函数功能:初始化液晶模块
入口参数:无
出口参数:无
备 注:无
*******************************************************************************/
void DisPoint(uchar x, uint y, uint color)
{
Show_RGB(x,x,y,y,color);
}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top