51单片机驱动TFTLCD彩色液晶屏

[复制链接]
 楼主| mcutechmcu 发表于 2010-6-21 10:22 | 显示全部楼层 |阅读模式
大家直接看图






采用的是SCT89C52,
采用并行总线方式(数据总线D[70]、地址总线A[10]、片选/CS、读/RD、写/WR)。
进行字符显示的程序如下:
#define X_ADDR XBYTE[0x0000]
#define Y_ADDR XBYTE[0x0100]
#define CMD XBYTE[0x0200]
#define DAT XBYTE[0x0300]
unsigned char code zk[32] = {//请
0x00, 0x47, 0x20, 0x23, 0x00, 0xEF, 0x20, 0x23, //left
0x22, 0x23, 0x22, 0x23, 0x2A, 0x32, 0x22, 0x02,
0x48, 0xFC, 0x40, 0xF8, 0x40, 0xFE, 0x08, 0xFC, //right
0x08, 0xF8, 0x08, 0xF8, 0x08, 0x08, 0x28, 0x10};
unsigned char code picture[];
main()
{
unsigned int x,y;
unsigned int i;
unsigned char j,k,z,m,n;
///////////////////////以下是清屏功能///////////////////////////////////////
//用红色清屏

CMD = 0x04;DAT = 0x1f;//背景色
CMD = 0x08;//启动填充操作
for(y=0;y<250*10;y++);//延时16.6 毫秒
CMD = 0x00;//退出填充操作
///////////////////////以上是清屏功能///////////////////////////////////////
/////////8 点写模式下写入单色图片80x80//////////////////////////////////
CMD = 0x02;DAT=0xe0;//前景色
CMD = 0x04;DAT=0xff;//背景色
CMD = 0x01;
for (y=0; y<80; y++)
{
X_ADDR = 0;
X_ADDR = 0;
Y_ADDR = y;
Y_ADDR = y/256; ///对于分辨率为320240 的液晶模块,Y 坐标只需要写入1 次
for ( n=0; n<10; n++) DAT = picture[y*10+n];
}
///////////////////8 点写模式下写汉字/////////////////////////////////
CMD = 0x02;DAT=0xe0;//前景色
CMD = 0x04;DAT=0xff;//背景色
CMD = 0x01;
for ( n=0; n<=15; n++ )
{
X_ADDR = 0;
X_ADDR = 0;
Y_ADDR = n;
Y_ADDR = n/256; ///对于分辨率为320240 的液晶模块,Y 坐标只需要写入1 次
DAT = zk[n]; ////横排字库DAT= zk[2n]
DAT = zk[n+16]; ////横排字库DAT= zk[2n+1]
}
}
unsigned char code picture[800]={//zhongda,80x80
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xC0, 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x01, 0x80, 0x00, 0xC0, 0x03, 0xFF, 0x03, 0xFF, 0xC0,
0x00, 0x01, 0x80, 0x00, 0xC0, 0x06, 0x06, 0x00, 0x00, 0x00,
0x00, 0x7F, 0xFC, 0x01, 0x80, 0x06, 0x06, 0x00, 0x00, 0x00,
0x00, 0x63, 0x0C, 0x7F, 0xFF, 0x07, 0xFC, 0x00, 0x00, 0x00,
0x00, 0x63, 0x18, 0x01, 0x80, 0x0C, 0x0C, 0x3F, 0xFF, 0xC0,
0x00, 0xC6, 0x18, 0x03, 0x80, 0x0F, 0xFC, 0x00, 0x60, 0x00,
0x00, 0xC6, 0x30, 0x03, 0x80, 0x03, 0x60, 0x07, 0xD8, 0x00,
0x00, 0xFF, 0xF0, 0x07, 0x80, 0x36, 0xCC, 0x06, 0xD8, 0x00,
0x00, 0x0C, 0x00, 0x0D, 0x80, 0x36, 0xDC, 0x0C, 0xCC, 0x00,
0x00, 0x0C, 0x00, 0x0C, 0xC0, 0x1E, 0xF0, 0x39, 0x86, 0x00,
0x00, 0x0C, 0x00, 0x38, 0xE0, 0x1D, 0xE0, 0x61, 0x86, 0x00,
0x00, 0x18, 0x00, 0x60, 0x70, 0x0D, 0xC0, 0xC1, 0x80, 0x00,
0x00, 0x18, 0x01, 0xC0, 0x31, 0xFF, 0xFC, 0x07, 0x00, 0x00,
0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x03, 0xCF, 0xFE, 0x38, 0x20, 0x47, 0xB8, 0x00, 0x00,
0x00, 0x01, 0x87, 0x32, 0x60, 0x60, 0xCC, 0xD8, 0x00, 0x00,
0x00, 0x00, 0xC4, 0x30, 0xC0, 0xE1, 0xCC, 0xD8, 0x00, 0x00,
0x00, 0x00, 0xC4, 0x31, 0xF0, 0xE1, 0xCE, 0x9E, 0x00, 0x00,
0x00, 0x00, 0x68, 0x31, 0x99, 0x62, 0xC7, 0x9B, 0x00, 0x00,

0x00, 0x00, 0x68, 0x31, 0x9A, 0x64, 0xCD, 0xDB, 0x00, 0x00,
0x00, 0x00, 0x30, 0x31, 0x9B, 0xF7, 0xEC, 0xDB, 0x00, 0x00,
0x00, 0x00, 0x30, 0x31, 0x98, 0x60, 0xCC, 0xDB, 0x00, 0x00,
0x00, 0x00, 0x30, 0x78, 0xF0, 0x60, 0xC7, 0x96, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×

评分

参与人数 1威望 +1 收起 理由
keywis + 1

查看全部评分

 楼主| mcutechmcu 发表于 2010-6-21 10:25 | 显示全部楼层
1。8 点写模式;使得彩色屏的操作与单色屏一样,极大地提高了汉字、英文字母、数字、以及单色位图的显示速度
2。快速清屏功能;只需发送一条指令,控制板在16.6 毫秒内以指定的颜色对整个画面进行清屏,清屏过程无须单片机的干预,极大地提高了开机和单一背景色的显示速度。
3。、提供灵活的地址自动加一功能;地址自动加一的方向可以任意设置为X方向或Y 方向。地址沿X 方向自动加一时,遇到行尾将自动跳到下一行的行首。地址沿Y 方向自动加一时,遇到列尾将自动跳到下一列的列首。
acute1110 发表于 2010-6-21 12:53 | 显示全部楼层
为什么要用这么个控制板呢?一片Arm7比它便宜,肯定不需要16.6ms清一屏吧。
 楼主| mcutechmcu 发表于 2010-6-21 18:33 | 显示全部楼层
3# acute1110 ARM的驱动板应该贵些吧
arm86 发表于 2010-6-21 22:38 | 显示全部楼层
快速清屏,指的就是1/60吧,每秒刷60帧。
51要外挂这个屏,恐怕还得再加上容量大的外部flash,不然显示不了几个中文。

唉,为了迁就51,搞得这么复杂,直接上ARM不就全解决了嘛。
 楼主| mcutechmcu 发表于 2010-6-22 11:12 | 显示全部楼层
5# arm86 成本考虑啊
arm86 发表于 2010-6-22 11:23 | 显示全部楼层
呵呵,不知道楼主这个驱动板的成本是多少?
另外,51要用它,是不是还得有附加硬件的成本(例如外扩存储器)呢?
如果使用ARM7,大概就是个¥100吧。
zxky0001 发表于 2010-6-28 18:43 | 显示全部楼层
zxky0001 发表于 2010-7-14 13:08 | 显示全部楼层
感谢大家的支持
chenyongand 发表于 2011-5-14 10:19 | 显示全部楼层
标记一下,我也在学习TFT显示
zxky0001 发表于 2011-6-8 10:18 | 显示全部楼层
恩 可以看看啊 值得学习
zxky0001 发表于 2011-7-12 10:50 | 显示全部楼层
不错
bnyuli 发表于 2011-7-12 13:13 | 显示全部楼层
标记一下,我也在学习TFT显示
cloudborn 发表于 2011-8-2 10:44 | 显示全部楼层
楼上的大侠能不能和你讨论讨论啊,我的qq501286314.正在学习TFT过程中
VIP4会员 发表于 2011-8-2 12:49 | 显示全部楼层
楼上的大侠能不能和你讨论讨论啊,我的qq501286314.正在学习TFT过程中
cloudborn 发表于 2011-8-2 10:44

楼主不可能和你讨论的,他是吃这碗饭的。
楼主的成本是不计算TFT屏,或者假装认为他的TFT屏和普通TFT屏一样的。
yangaiping 发表于 2011-8-2 17:51 | 显示全部楼层
标记。。。
coody 发表于 2011-8-2 19:35 | 显示全部楼层
用STC的1T系列的驱动吧,速度比89系列更快
zxky0001 发表于 2011-8-15 08:51 | 显示全部楼层
17# coody 呵呵 可以看看这个视频网址 http://video.sina.com.cn/v/b/44280422-1782953027.html 1T的
zxky0001 发表于 2011-9-10 11:41 | 显示全部楼层
www.mcutech.cn  不错的方案 支持下
chen3bing 发表于 2011-9-10 13:36 | 显示全部楼层
我也在搞,刷屏速度很慢,接近400个毫秒。没有单个刷屏指令。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

17

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部