?? t6963c圖形.txt
字號(hào):
用【 小 | 中 | 大 】字體瀏覽
硬件:T6963C圖形區(qū)和文字區(qū)不能重復(fù)? [zzzh] [29次] 01-12-8 下午 05:10:37
發(fā)現(xiàn)重復(fù)時(shí)顯示文字會(huì)有干擾,哪位有辦法?
不會(huì)只能全用圖形模式或文字模式寫(xiě)吧。
文本區(qū)與圖形區(qū)地址范圍不要有重疊就可以了 [深圳浪子] [6次] 01-12-8 下午 05:43:35
好辦 [ding51] [20次] 01-12-8 下午 05:46:55
在某一次顯示中,T6963C只能用圖形模式或文字模式中的一種,建議用文本模式這樣顯示速
度比圖形模式快,在文本模式中把漢字和圖形先寫(xiě)入CGRAM中,便可實(shí)現(xiàn)圖形的顯示。
可以圖形文本同時(shí)用的! [深圳浪子] [3次] 01-12-8 下午 05:51:51
不行啊,我必須用圖形的 [zzzh] [3次] 01-12-8 下午 05:57:02
請(qǐng)舉例說(shuō)明,不要有干擾噢 [zzzh] [4次] 01-12-8 下午 05:57:45
不行啊,我必須用圖形的 [zzzh] [2次] 01-12-8 下午 05:58:42
可是,好像只能各分一個(gè)區(qū)嘛,太少了 [zzzh] [2次] 01-12-8 下午 06:01:14
例子,看完不要問(wèn)我 [深圳浪子] [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(); /*清圖形區(qū),0x2000~0x2EFF(128*30)為一屏*/
cls_text(); /*清文本區(qū),0x0000~0x01DF(16*30)為一屏*/
.......
/*
下面的程序就不用我寫(xiě)了吧!!
寫(xiě)平時(shí)注意設(shè)置相應(yīng)的地址就可以了,我現(xiàn)在用的就是圖文混合模式,沒(méi)有問(wèn)題的
*/
}
多謝!不過(guò)很想看看你的地址定位程序,我的程序和你差不多,但就是有干擾,我用的時(shí)sharp的LM24014h [zzzh] [7次] 01-12-8 下午 07:56:58
我的意思是,文本區(qū)和圖形區(qū)是否占用相同的RAM,如果是的,你怎么做到讓它們互不干擾? [zzzh] [3次] 01-12-8 下午 08:00:58
暈,占用相同的地址同時(shí)顯示能不亂嗎!你可只開(kāi)圖形或文本 [深圳浪子] [3次] 01-12-8 下午 08:03:46
日本人的datasheet寫(xiě)的圖形區(qū)RAM從0x1000開(kāi)始,調(diào)試時(shí)發(fā)現(xiàn)根本不是這樣,是不是我搞錯(cuò)了? [zzzh] [3次] 01-12-8 下午 08:12:07
這個(gè)地址使自己設(shè)的,只要不超個(gè)模塊上的ram空間就可以了 [深圳浪子] [5次] 01-12-8 下午 08:15:22
啊,怎么設(shè)呢?請(qǐng)指教 [zzzh] [3次] 01-12-8 下午 08:18:04
好像沒(méi)有那種指令吧,設(shè)字庫(kù)地址的指令倒有的 [zzzh] [2次] 01-12-8 下午 08:19:27
看我的例子,初始化時(shí)的fnCmd2(0x42,0x00,0x20),設(shè)圖形區(qū)首地址0x2000,還是仔細(xì)看看手冊(cè)吧 [深圳浪子] [4次] 01-12-8 下午 08:21:43
[深圳浪子] [3次] 01-12-8 下午 08:21:47
那是設(shè)的圖形區(qū)的首址,不是RAM的地址吆 [zzzh] [3次] 01-12-8 下午 08:23:29
你ram地址指的什么? [深圳浪子] [4次] 01-12-8 下午 08:25:10
[深圳浪子] [2次] 01-12-8 下午 08:25:17
文本區(qū)或圖形區(qū)在內(nèi)存中的影射地址 [zzzh] [3次] 01-12-8 下午 08:28:58
仔細(xì)看命令0x40,0x42,就是文本,圖形區(qū)的首地址啊 [深圳浪子] [4次] 01-12-8 下午 08:31:07
那指令沒(méi)有用的,跟干擾無(wú)關(guān) [zzzh] [4次] 01-12-8 下午 08:33:25
你是不是同時(shí)開(kāi)了文本和圖形? [深圳浪子] [4次] 01-12-8 下午 08:34:47
準(zhǔn)確地說(shuō),是和我的問(wèn)題無(wú)關(guān) [zzzh] [3次] 01-12-8 下午 08:35:33
是啊,我的程序需要這樣做 [zzzh] [2次] 01-12-8 下午 08:36:35
我暈,把程序鐵上來(lái)吧 [深圳浪子] [5次] 01-12-8 下午 08:37:18
程序都差不多的,我用了‘或’顯示方式 [zzzh] [2次] 01-12-8 下午 08:39:31
還有,我的文本區(qū)和圖形區(qū)完全重疊 [zzzh] [3次] 01-12-8 下午 08:42:14
問(wèn)題就在這!!不能重疊!除非不同時(shí)開(kāi) [深圳浪子] [6次] 01-12-8 下午 08:46:48
sorry,龍斑,搞亂你的壇子了 [深圳浪子] [4次] 01-12-8 下午 08:49:28
我又看了一下datasheet,看來(lái)仔細(xì)看命令0x40,0x42就是設(shè)的內(nèi)存地址,對(duì)嗎? [zzzh] [4次] 01-12-8 下午 08:52:13
謝謝你,看來(lái)我原來(lái)對(duì)那兩指令的理解是錯(cuò)誤的 [zzzh] [4次] 01-12-8 下午 08:55:03
點(diǎn)擊這里回復(fù)這篇貼子>>
_____________________________________________________________________________
Copyright?,C51BBS論壇 2000-2002
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -