这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » OCMJ4X8C 哪位用过OCMJ4X8C液晶显示模块?

共2条 1/1 1 跳转至

OCMJ4X8C 哪位用过OCMJ4X8C液晶显示模块?

院士
2006-09-17 18:14:16     打赏
OCMJ4X8C 哪位用过OCMJ4X8C液晶显示模块?



关键词: OCMJ4X8C     哪位     用过     液晶显示     模块    

院士
2006-12-22 22:43:00     打赏
2楼
问 我正在用这个液晶模块,它的分辨率是128*64,控制芯片是ST7920,我看它的说明书编51的显示程序,现在还没有显示东西,有谁用过这个模块,说说它的初始化顺序,说明手册讲的含糊不清,网上资料也少,谢谢啦! 1: 我用过!!明天我发给你!!#define  lcd_wait   XBYTE [0xBC01]       //液晶显示地址
#define  lcd_writer XBYTE [0xBC00]
#define  lcd_writed XBYTE [0xBC02]

sbit     BUSY_FLAG=P0^7;


void delay(unsigned int d)                   //延时1ms  d*1ms
  {
    unsigned int i;
    while(d--)
     { for(i=0;i<125;i++)
          {;}
      }
  }
void delay1(unsigned int d)                   //延时50us   d*100us
  {
   unsigned int i;
   while(d--)
   {
     for(i=0;i<12;i++)
       {;}       
   }
  }
void lcd_inputi_disp(uchar x)                     //写指令子程序
  {
       lcd_writer=x;
       lcd_writer=x;
      
       delay1(1);
  
  }

void lcd_inputd_disp(uchar y)
{
       lcd_writed=y;
       lcd_writed=y;
       delay1(1);

  }

void lcd_initial_disp(void)
  {
   

   delay(1);
   lcd_inputi_disp(0x30);
   delay(1);

   lcd_inputi_disp(0x01);                    //指令01H为清除显示并设定地址指针为00H
   delay(1);

   lcd_inputi_disp(0x06);                   //指定在资料写入或读取时  
   delay(1);                           //设定游标的移动方向及指定显示的移位

}


void lcd_inputi(uchar x)                  //写指令子程序
  {
       lcd_writer=x;
       lcd_writer=x;
      
       delay1(100);
  
  }

void lcd_inputd(uchar y)
{
       lcd_writed=y;
       lcd_writed=y;
       delay1(100);

  }
void lcd_initial(void)
  {
   

   delay(1);
   lcd_inputi(0x30);
   delay(1);

   lcd_inputi(0x01);                    //指令01H为清除显示并设定地址指针为00H
   delay(1);

   lcd_inputi(0x06);                   //指定在资料写入或读取时  
   delay(1);                           //设定游标的移动方向及指定显示的移位


}
void lcd_menu1()
{
  uchar i;
// OCMRW=0x00;


  lcd_inputi(0x0c);                     //开显示,关游标  
  lcd_inputi(0x80);                     //显示“版本: 01”
  lcd_inputd(0xb0);
  lcd_inputd(0xe6);
  lcd_inputd(0xb1);
  lcd_inputd(0xbe);
  lcd_inputd(0x3a);
  lcd_inputd(0x20);
  lcd_inputd(0x30);
  lcd_inputd(0x32);
  i=0;                                  //显示北京利达科信有限公司
  lcd_inputi(0x93);
  lcd_inputd(chara1[i]);
  lcd_inputd(chara1[++i]);
  lcd_inputd(chara1[++i]);
  lcd_inputd(chara1[++i]);

for(i=0;i<16;i++)
  {
  lcd_inputi(0x88+i/2);
  lcd_inputd(chara2[i]);
  lcd_inputd(chara2[i+1]);
  i+=1;
  }
// inigraphic();
  //lida_icon();
}

/*****************************************
函数功能:    
        输入ABS
     1 ABS:
     2 确认
*****************************************/
uchar code chmenu_page17[]=
{
0xca,0xe4,0xc8,0xeb,0x41,0x42,0x53,
0x31,0x20,0x41,0x42,0x53,0x3a,
0x32,0x20,0xc8,0xb7,0xc8,0xcf,
};

void menu_page17()
{
  uchar i;
  lcd_initial();
  lcd_inputi(0x0f);   
  lcd_inputi(0x82);
  for(i=0;i<7;i++)
  {
  lcd_inputd(chmenu_page17[i]);
  }
  lcd_inputi(0x91);
  for(i=7;i<13;i++)
  {
  lcd_inputd(chmenu_page17[i]);
  }

  lcd_inputi(0x89);
  for(i=13;i<19;i++)
  {
  lcd_inputd(chmenu_page17[i]);
  }
  lcd_inputi(0x94);


}
2: 我用汇编根据模块的资料编了程序.可惜不好使,液晶没显示.
我拿你的程序试试吧,我都快疯了 3: 发到我邮箱里行吗?htjgdw@sina.com
这是我邮箱,感谢. 4: 上面这个程序是不是不全. 5: 用的什么CPU ,51?PIC?我可以给你一个保证好用的汇编。 6: 我用51单片机 7: 我用51单片机 8: 我也用51ylf2601@hotmail.com 9: 我用的是间接方式,非总线方式。我用的不是ocmj4x8c,但和它兼容。是深圳一家公司做的,ocmj4x8c好像是广州的长做的。
cpu:c8051f040
内部OSC8分后成功实现对lcd的操作。
我还有几点疑惑:
怎样显示自定义字符啊,还有图像啊!
scroll address(卷地址)是怎么一回事啊?怎么用?
谢谢!望高手帮忙啊! 10: 谁能说说你们的写指令,写数据子程序是怎么编的.我按照它的时序图写的程序,液晶根本没反映,很是急人. 11: 不知ST7920和单片机连接时是否需要上拉电阻 12: 我试了,必须要接上拉电阻,否则无法正常读写数据.

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]