⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 t6963c图形.txt

📁 C51源程序集合 包括以下目录源码 ├─AD-MSP430f149D ├─ADC8535 ├─bin ├─c51源程序 ├─c51源程序锦集 ├─ct2Timer ├─
💻 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 + -