|
R61505U彩屏驱动,相信很多DIY爱好者手里都有的小屏幕,但是对于初学者来说,这样的驱动并不好找。第一次发帖,如有不妥,请版主指出,谢谢。
如何区分垂直和水平显示
如果要修改水平或者垂直显示的,需要修改驱动芯片的寄存器。
该寄存器,在数据手册的第46页。Entry Mode(R03h),修改IB3 IB4 IB5,这三个位。具体想怎么显示的,请看数据手册,里面有详细的介绍。
在程序的,R61505.c文件里,修改这个数值:
前面的0x0003,是寄存器;后面的0x0008是写进去的数据
TFT_WriteCmd(0x0003);TFT_WriteData(0x0008);
内含以下源程序:
垂直刷屏\
垂直显示图片\
垂直显示文字\
水平刷屏\
水平文字\
水平显示图片\
如何区分垂直和水平显示.txt
实验必读.doc
R61505U彩屏驱动数据手册
R61505U彩屏的单片机源程序如下:
- #include"r61505v.h"
- /****************************************************************************
- *函数名:TFT_WriteCmd
- *输 入:cmd
- *输 出:
- *功 能:写命令。
- ****************************************************************************/
- void TFT_WriteCmd(uint cmd)
- {
- uchar cmdH, cmdL;
-
- cmdH = cmd >> 8;
- cmdL = cmd & 0x00FF; //先进行数据换算,转为8位宽
- TFT_WR = 1; //初始化WR
- TFT_CS = 0; //打开片选
- TFT_RS = 0; //选择命令
- TFT_RD = 1; //选择写
- TFT_DATAPORTH = cmdH; //放置命令数据
- TFT_DATAPORTL = cmdL;
- TFT_WR = 0; //写入时序
- TFT_WR = 1;
- TFT_CS = 1; //关闭片选
- }
- /****************************************************************************
- *函数名:TFT_WriteData
- *输 入:dat
- *输 出:
- *功 能:写数据。
- ****************************************************************************/
- void TFT_WriteData(uint dat)
- {
- uchar datH, datL;
- datH = dat >> 8;
- datL = dat & 0x00FF; //先进行数据换算,转为8位宽
- TFT_WR = 1; //初始化WR
- TFT_CS = 0; //打开片选
- TFT_RS = 1; //选择发送数据
- TFT_RD = 1; //选择写
- TFT_DATAPORTH = datH; //放置命令数据
- TFT_DATAPORTL = datL;
- TFT_WR = 0; //写入时序
- TFT_WR = 1;
- TFT_CS = 1; //关闭片选
- }
- /****************************************************************************
- *函数名:TFT_WriteCmdData
- *输 入:cmd, dat
- *输 出:
- *功 能:写命令, 写数据。
- ****************************************************************************/
- void TFT_WriteCmdData(uint cmd, uint dat)
- {
- TFT_WriteCmd(cmd);
- TFT_WriteData(dat);
- }
- /****************************************************************************
- *函数名:TFT_Init
- *输 入:
- *输 出:
- *功 能:初始化TFT。
- ****************************************************************************/
- void TFT_Init(void)
- {
- uint i;
- TFT_RST = 1;
- for(i=500; i>0; i--);
- TFT_RST = 0;
- for(i=500; i>0; i--);
- TFT_RST = 1;
- for(i=5000; i>0; i--);
-
- TFT_CS = 0;
- //R61505U
- TFT_WriteCmd(0x0000);TFT_WriteData(0x0000);
- TFT_WriteCmd(0x0000);TFT_WriteData(0x0000);
- TFT_WriteCmd(0x0000);TFT_WriteData(0x0000);
- TFT_WriteCmd(0x0000);TFT_WriteData(0x0000);
- TFT_WriteCmd(0x0010);TFT_WriteData(0x0600);
- for(i=500; i>0; i--);
- TFT_WriteCmd(0x0007);TFT_WriteData(0x0000);
- TFT_WriteCmd(0x0012);TFT_WriteData(0x011A);
- TFT_WriteCmd(0x00A4);TFT_WriteData(0x0001);
- TFT_WriteCmd(0x0008);TFT_WriteData(0x020E);
- TFT_WriteCmd(0x000A);TFT_WriteData(0x0008);
- TFT_WriteCmd(0x000D);TFT_WriteData(0x0008);
- //gamma
- TFT_WriteCmd(0x0030); TFT_WriteData(0x0707);
- TFT_WriteCmd(0x0031); TFT_WriteData(0x0007);
- TFT_WriteCmd(0x0032); TFT_WriteData(0x0101);
- TFT_WriteCmd(0x0033); TFT_WriteData(0x0700);
- TFT_WriteCmd(0x0034); TFT_WriteData(0x0202);
- TFT_WriteCmd(0x0035); TFT_WriteData(0x0105);
- TFT_WriteCmd(0x0036); TFT_WriteData(0x1f1f);
- TFT_WriteCmd(0x0037); TFT_WriteData(0x0707);
- TFT_WriteCmd(0x0038); TFT_WriteData(0x0000);
- TFT_WriteCmd(0x0039); TFT_WriteData(0x0000);
- TFT_WriteCmd(0x003A); TFT_WriteData(0x0707);
- TFT_WriteCmd(0x003B); TFT_WriteData(0x0000);
- TFT_WriteCmd(0x003C); TFT_WriteData(0x0105);
- TFT_WriteCmd(0x003D); TFT_WriteData(0x0000);
- for(i=500; i>0; i--);
- TFT_WriteCmd(0x0011);TFT_WriteData(0x0007);
- TFT_WriteCmd(0x0060);TFT_WriteData(0x2700);
- TFT_WriteCmd(0x0090);TFT_WriteData(0x0010);
- TFT_WriteCmd(0x0017);TFT_WriteData(0x0001);
- TFT_WriteCmd(0x0019);TFT_WriteData(0x0000);
- for(i=500; i>0; i--);
- TFT_WriteCmd(0x0010);TFT_WriteData(0x16B0);
- TFT_WriteCmd(0x0012);TFT_WriteData(0x011A);
- TFT_WriteCmd(0x0013);TFT_WriteData(0x1D00);//1700
- TFT_WriteCmd(0x002A);TFT_WriteData(0x0008);
- TFT_WriteCmd(0x0029);TFT_WriteData(0x0015);//000A
- for(i=500; i>0; i--);
- TFT_WriteCmd(0x0012);TFT_WriteData(0x013A);
- TFT_WriteCmd(0x0050);TFT_WriteData(0x0000);
- TFT_WriteCmd(0x0051);TFT_WriteData(0x00EF);
- TFT_WriteCmd(0x0052);TFT_WriteData(0x0000);
- TFT_WriteCmd(0x0053);TFT_WriteData(0x013F);
- TFT_WriteCmd(0x0061);TFT_WriteData(0x0001);
- TFT_WriteCmd(0x006A);TFT_WriteData(0x0000);
- TFT_WriteCmd(0x0080);TFT_WriteData(0x0000);
- TFT_WriteCmd(0x0081);TFT_WriteData(0x0000);
- TFT_WriteCmd(0x0082);TFT_WriteData(0x0000);
- TFT_WriteCmd(0x0083);TFT_WriteData(0x0000);
- TFT_WriteCmd(0x0084);TFT_WriteData(0x0000);
- TFT_WriteCmd(0x0085);TFT_WriteData(0x0000);
- TFT_WriteCmd(0x0092);TFT_WriteData(0x0300);
- TFT_WriteCmd(0x0093);TFT_WriteData(0x0005);
- TFT_WriteCmd(0x0095);TFT_WriteData(0x0000);
- TFT_WriteCmd(0x0097);TFT_WriteData(0x0000);
- TFT_WriteCmd(0x0098);TFT_WriteData(0x0000);
- TFT_WriteCmd(0x0001);TFT_WriteData(0x0100);//0100
- TFT_WriteCmd(0x0002);TFT_WriteData(0x0700);
- TFT_WriteCmd(0x0003);TFT_WriteData(0x0008);//1030
- TFT_WriteCmd(0x0004);TFT_WriteData(0x0000);
- TFT_WriteCmd(0x0009);TFT_WriteData(0x0000);
- TFT_WriteCmd(0x000C);TFT_WriteData(0x0000);
- TFT_WriteCmd(0x000F);TFT_WriteData(0x0000);
- TFT_WriteCmd(0x0007);TFT_WriteData(0x0001);
- TFT_WriteCmd(0x0007);TFT_WriteData(0x0021);
- for(i=500; i>0; i--);
- TFT_WriteCmd(0x0010);TFT_WriteData(0x16B0);
- TFT_WriteCmd(0x0011);TFT_WriteData(0x0007);
- TFT_WriteCmd(0x0007);TFT_WriteData(0x0061);
- for(i=500; i>0; i--);
- TFT_WriteCmd(0x0007);TFT_WriteData(0x0173);
- for(i=500; i>0; i--);
- TFT_WriteCmd(0x0020);TFT_WriteData(0x0000);
- TFT_WriteCmd(0x0021);TFT_WriteData(0x0000);
- TFT_WriteCmd(0x0022);
- }
- /****************************************************************************
- *函数名:TFT_SetWindow
- *输 入:xStart, yStart, xEnd, yEnd
- *输 出:
- *功 能:设置要操作的窗口。
- ****************************************************************************/
- void TFT_SetWindow(uint xStart, uint yStart, uint xEnd, uint yEnd)
- {
- uint x;
- x = (yEnd << 8)+yStart;
- TFT_WriteCmdData(0x0044, x); //水平线起始
- TFT_WriteCmdData(0x0045, xStart); //垂直线起始
- TFT_WriteCmdData(0x0046, xEnd); //水平线结束
- ……………………
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
TFT-2.4-(R61505U-16pIN).7z
(1.49 MB, 下载次数: 53)
|
评分
-
查看全部评分
|