• 回复
  • 收藏
  • 点赞
  • 分享
  • 发新帖

关于FM12864M-12L液晶屏(ST7920),读数据的程序,为什么读不出来.

/*
DU_12864(RAM_BF) 是12864液晶屏、串行、读数据函数.
RAM_BF=0、是读忙标志和地址.RAM_BF=1、是读RAM数据.
*/
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;
}


读数据要注意什么问题????
全部回复(8)
正序查看
倒序查看
9013
LV.3
2
2008-09-03 22:47
并行读RAM有一个假读.不知串行有没有.找不到资料.
0
回复
lijg8421
LV.1
3
2008-09-04 10:29
使用串行模式,本身就不能读,不要再浪费时间了!
0
回复
9013
LV.3
4
2008-09-04 16:32
@lijg8421
使用串行模式,本身就不能读,不要再浪费时间了!
真的吗?本来想节省节几根线和端口.谢谢了.
0
回复
lijg8421
LV.1
5
2008-09-05 10:15
@9013
真的吗?本来想节省节几根线和端口.谢谢了.
当然真的,不能读有时影响应该不大,将读忙状态转为延时就可以了,如果想整屏刷新,开一个同步的缓存就好了,前提足够的ram,不过st7920如果自己做字库情况不是太方便,用自带的字库字体不是太好看也!
0
回复
9013
LV.3
6
2008-09-05 18:06
@lijg8421
当然真的,不能读有时影响应该不大,将读忙状态转为延时就可以了,如果想整屏刷新,开一个同步的缓存就好了,前提足够的ram,不过st7920如果自己做字库情况不是太方便,用自带的字库字体不是太好看也!
我只是想读出RAM值,把一个地址当两个来用.以便输出半宽的HCGROM字型时,两个字符可以独立操作,而不同时修改.只能用并行了.我是第一次使用12864.资料里居然不说明.看来经验是多多益善!谢谢了.
0
回复
hotpower
LV.5
7
2008-09-07 19:06
**此帖已被管理员删除**
0
回复
2008-09-27 11:38
@hotpower
**此帖已被管理员删除**
关注
0
回复
2009-01-16 15:59
@yangzhouxia
关注
问一下,有谁用过麦迪瑞科技的电源.型号:MDA08130553000US,输入100-240VAC,输出DC5V4A,
我有一只电源,片子烧坏了,我想自己看看他是什么片子,可不可以自己修好.
非常着急,谢谢.
它有SW4N6090(TO220-F)还有一个是SOT23-6封装的,上面写的是13c810,我想知道它是什么.
再次感谢.
0
回复