?? t6963c-+
字號:
用【 小 | 中 | 大 】字體瀏覽
硬件: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 + -