/*
DU_12864(RAM_BF) 是12864液晶屏、串行、讀數(shù)據(jù)函數(shù).
RAM_BF=0、是讀忙標(biāo)志和地址.RAM_BF=1、是讀RAM數(shù)據(jù).
*/
unsigned char DU_12864(bit RAM_BF)
{
unsigned char i,ADD,data1,data2,data3;
if(RAM_BF==0)
ADD=0xfc;
if(RAM_BF==1)
ADD=0xfe;
CS_12864=1;
NOPx;
CLK_12864=0;
for(i=0; i<8; i++)
{
ADD =ADD<<1;
SID_12864=CY;
NOPx;
CLK_12864=1;
NOPx;
CLK_12864=0;
}
for(i=0;i<8;i++)
{
CLK_12864=1;
data1=data1<<1;
if(SID_12864==1)
{
data1=data1 | 0x01;
}
NOPx;
CLK_12864=0;
}
for(i=0;i<8;i++)
{
CLK_12864=1;
data2=data2<<1;
if(SID_12864==1)
{
data2=data2 | 0x01;
}
NOPx;
CLK_12864=0;
}
NOPx;
CS_12864=0;
data1=data1&0xf0;
data2=data2&0xf0;
data2=data2>>4;
data3=data1+data2;
return data3;
}
讀數(shù)據(jù)要注意什么問(wèn)題????
關(guān)于FM12864M-12L液晶屏(ST7920),讀數(shù)據(jù)的程序,為什么讀不出來(lái).
全部回復(fù)(8)
正序查看
倒序查看
@lijg8421
當(dāng)然真的,不能讀有時(shí)影響應(yīng)該不大,將讀忙狀態(tài)轉(zhuǎn)為延時(shí)就可以了,如果想整屏刷新,開(kāi)一個(gè)同步的緩存就好了,前提足夠的ram,不過(guò)st7920如果自己做字庫(kù)情況不是太方便,用自帶的字庫(kù)字體不是太好看也!
我只是想讀出RAM值,把一個(gè)地址當(dāng)兩個(gè)來(lái)用.以便輸出半寬的HCGROM字型時(shí),兩個(gè)字符可以獨(dú)立操作,而不同時(shí)修改.只能用并行了.我是第一次使用12864.資料里居然不說(shuō)明.看來(lái)經(jīng)驗(yàn)是多多益善!謝謝了.
0
回復(fù)