📄 t6963c图形.txt
字号:
用【 小 | 中 | 大 】字体浏览
硬件:T6963C图形区和文字区不能重复? [zzzh] [29次] 01-12-8 下午 05:10:37
发现重复时显示文字会有干扰,哪位有办法?
不会只能全用图形模式或文字模式写吧。
文本区与图形区地址范围不要有重叠就可以了 [深圳浪子] [6次] 01-12-8 下午 05:43:35
好办 [ding51] [20次] 01-12-8 下午 05:46:55
在某一次显示中,T6963C只能用图形模式或文字模式中的一种,建议用文本模式这样显示速
度比图形模式快,在文本模式中把汉字和图形先写入CGRAM中,便可实现图形的显示。
可以图形文本同时用的! [深圳浪子] [3次] 01-12-8 下午 05:51:51
不行啊,我必须用图形的 [zzzh] [3次] 01-12-8 下午 05:57:02
请举例说明,不要有干扰噢 [zzzh] [4次] 01-12-8 下午 05:57:45
不行啊,我必须用图形的 [zzzh] [2次] 01-12-8 下午 05:58:42
可是,好像只能各分一个区嘛,太少了 [zzzh] [2次] 01-12-8 下午 06:01:14
例子,看完不要问我 [深圳浪子] [39次] 01-12-8 下午 06:16:36
#include "reg52.h"
#include "stdio.h"
#include "absacc.h"
#ifndef ulong
#define ulong unsigned long
#endif
#ifndef uint
#define uint unsigned int
#endif
#ifndef uchar
#define uchar unsigned char
#endif
/*T6963 data and command port define*/
#define LCMDW XBYTE[0xFFF0] /*data port*/
#define LCMCW XBYTE[0xFFF1] /*command port*/
/*check status byte bit 0&1,for data/command write/read*/
void fnChkST01(void)
{
uchar i;
for(i=16;i>0;i--)
{
if((LCMCW & 0x03) == 0x03)
break;
}
}
/*check status bit3,for data auto write*/
void fnChkST3(void)
{
uchar i;
for(i=16;i>0;i--)
{
if((LCMCW & 0x08) == 0x08)
break;
}
}
void fnCmd0(uchar uCmd) /*write command without param*/
{
fnChkST01();
LCMCW = uCmd;
}
void fnCmd1(uchar uCmd,uchar uPar1) /*write command with 1 params*/
{
fnChkST01();
LCMDW = uPar1;
fnCmd0(uCmd);
}
/*write command with 2 params*/
void fnCmd2(uchar uCmd,uchar uPar1,uchar uPar2)
{
fnChkST01();
LCMDW = uPar1;
fnCmd1(uCmd,uPar2);
}
/*clear screen*/
void cls_graph(void)
{
uchar i,j;
fnCmd2(0x24,0x00,0x20); /*set address pointer*/
fnCmd0(0xB0); /*data auto
write*/
for(i=0;i<128;i++)
for(j=0;j<30;j++)
{
fnChkST3();
LCMDW=0x00;
}
fnCmd0(0xB2); /*end auto data
write*/
}
void cls_text(void)
{
uchar i,j;
fnCmd2(0x24,0x00,0x00); /*set address pointer*/
fnCmd0(0xB0); /*data auto
write*/
for(i=0;i<16;i++)
for(j=0;j<30;j++)
{
fnChkST3();
LCMDW=0x00;
}
fnCmd0(0xB2); /*end auto data
write*/
}
/*init LCD module*/
void fnLCMInit(void)
{
fnCmd2(0x40,0x00,0x00); /*text
home,0x0000*/
fnCmd2(0x41,30,0x00); /*text area,30 cols for 8 bit font*/
fnCmd2(0x42,0x00,0x20); /*graphic home,0x2000*/
fnCmd2(0x43,30,0x00); /*graphic area,30 cols for 8 bit font*/
fnCmd0(0xA0 | 0x01); /*cursor shape*/
fnCmd0(0x80); /*display
mode*/
fnCmd0(0x90 | 0x0F); /*display switch*/
}
main()
{
fnLCMInit();
cls_graph(); /*清图形区,0x2000~0x2EFF(128*30)为一屏*/
cls_text(); /*清文本区,0x0000~0x01DF(16*30)为一屏*/
.......
/*
下面的程序就不用我写了吧!!
写平时注意设置相应的地址就可以了,我现在用的就是图文混合模式,没有问题的
*/
}
多谢!不过很想看看你的地址定位程序,我的程序和你差不多,但就是有干扰,我用的时sharp的LM24014h [zzzh] [7次] 01-12-8 下午 07:56:58
我的意思是,文本区和图形区是否占用相同的RAM,如果是的,你怎么做到让它们互不干扰? [zzzh] [3次] 01-12-8 下午 08:00:58
晕,占用相同的地址同时显示能不乱吗!你可只开图形或文本 [深圳浪子] [3次] 01-12-8 下午 08:03:46
日本人的datasheet写的图形区RAM从0x1000开始,调试时发现根本不是这样,是不是我搞错了? [zzzh] [3次] 01-12-8 下午 08:12:07
这个地址使自己设的,只要不超个模块上的ram空间就可以了 [深圳浪子] [5次] 01-12-8 下午 08:15:22
啊,怎么设呢?请指教 [zzzh] [3次] 01-12-8 下午 08:18:04
好像没有那种指令吧,设字库地址的指令倒有的 [zzzh] [2次] 01-12-8 下午 08:19:27
看我的例子,初始化时的fnCmd2(0x42,0x00,0x20),设图形区首地址0x2000,还是仔细看看手册吧 [深圳浪子] [4次] 01-12-8 下午 08:21:43
[深圳浪子] [3次] 01-12-8 下午 08:21:47
那是设的图形区的首址,不是RAM的地址吆 [zzzh] [3次] 01-12-8 下午 08:23:29
你ram地址指的什么? [深圳浪子] [4次] 01-12-8 下午 08:25:10
[深圳浪子] [2次] 01-12-8 下午 08:25:17
文本区或图形区在内存中的影射地址 [zzzh] [3次] 01-12-8 下午 08:28:58
仔细看命令0x40,0x42,就是文本,图形区的首地址啊 [深圳浪子] [4次] 01-12-8 下午 08:31:07
那指令没有用的,跟干扰无关 [zzzh] [4次] 01-12-8 下午 08:33:25
你是不是同时开了文本和图形? [深圳浪子] [4次] 01-12-8 下午 08:34:47
准确地说,是和我的问题无关 [zzzh] [3次] 01-12-8 下午 08:35:33
是啊,我的程序需要这样做 [zzzh] [2次] 01-12-8 下午 08:36:35
我晕,把程序铁上来吧 [深圳浪子] [5次] 01-12-8 下午 08:37:18
程序都差不多的,我用了‘或’显示方式 [zzzh] [2次] 01-12-8 下午 08:39:31
还有,我的文本区和图形区完全重叠 [zzzh] [3次] 01-12-8 下午 08:42:14
问题就在这!!不能重叠!除非不同时开 [深圳浪子] [6次] 01-12-8 下午 08:46:48
sorry,龙斑,搞乱你的坛子了 [深圳浪子] [4次] 01-12-8 下午 08:49:28
我又看了一下datasheet,看来仔细看命令0x40,0x42就是设的内存地址,对吗? [zzzh] [4次] 01-12-8 下午 08:52:13
谢谢你,看来我原来对那两指令的理解是错误的 [zzzh] [4次] 01-12-8 下午 08:55:03
点击这里回复这篇贴子>>
_____________________________________________________________________________
Copyright?,C51BBS论坛 2000-2002
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -