在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 2885|回复: 1

用PHILIP ARMLPC2131控制金鹏液晶OCMJ4*8C

[复制链接]
发表于 2006-1-18 22:53:58 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
用PHILIP ARMLPC2131控制金鹏液晶OCMJ4*8C,就是显示不出来。程序如下,请教高手。
QQ 294373247  真诚感谢

#include "config.h"

const uint32 rst=1;          //resrt
const uint32 rs=1<<1 ;         //H=data; L=command;
const uint32 rw=1<<4 ;         //H=read; L=write;
const uint32  e=1<<5 ;        //input enable;
const uint32 busy=1<<25  ;     // test busy
const uint32 DB8=(0xFF<<18);// P1[25:18]控制D0-D7,
#define uint  unsigned int
#define uchar unsigned char
#define comm  0
#define dat   1

void wr_lcd(uchar dat_comm,uchar content);
void chk_busy (void);

uchar tab1[]={
"本系列中文模块内"
"任意位置反白显示"
"置二级字库,可在"
"使用更方便更灵活"
};

/*------------------初始化-----------------*/
void init_lcd(void)
{
  IO0SET=rst;
  wr_lcd(comm,0x30);  /*30---基本指令动作*/   
  wr_lcd(comm,0x01);  /*清屏,地址指针指向00H*/
  wr_lcd(comm,0x06);  /*光标的移动方向*/
  wr_lcd(comm,0x0c);  /*开显示,关游标*/
}

/*---------------显示汉字或字符----------------*/
void chn_disp(uchar  *chn)
{
  uchar i,j;
  wr_lcd (comm,0x30);                          //30,基本指令集
  wr_lcd (comm,0x80);                          //80,从第一行第一列开始显示
  for (j=0;j<4;j++)
  {
    for(i=0;i<16;i++)
    wr_lcd(dat,chn[j*16+i]);
  }
}

/*--------------写数据和指令-----------------*/
void wr_lcd(uchar dat_comm,uchar content)
{
  uint i;
  chk_busy ();
  if(dat_comm)
   {
    IO0SET=rs;    //data
    IO0CLR=rw;    //write
   }
  else
   {
    IO0CLR=rs;   //command
    IO0CLR=rw;   //write
   }
  IO1PIN=content<<18;              //write data or comm
  IO0SET=e;              //模拟使能E下降沿
for (i=0; i<0xFFFF; i++);
  IO0CLR=e;
}

/*--------------检验忙信号-----------------*/
void chk_busy(void)
{
  uint i;
  IO0CLR=rs;          //读取忙信号
  IO0SET=rw;
  IO0SET=e;   
  for (i=0; i<0xFFFF; i++);
  while((IO1PIN&busy)==1);
  IO0CLR=e;
  for (i=0; i<0xFFFF; i++);
}

/*------------------主程序--------------------*/
int  main(void)
{
  uint i;

  PINSEL0 = 0x00000000;        
  PINSEL2 = PINSEL2 & (~0x08);      // P1[25:18]连接GPIO
  IO0DIR  = 0xff;                // 设置0口为输出
  IO1DIR  = DB8;        // 设置DB控制口为输出

  init_lcd();
  chn_disp(tab1);
  
  for (i=0; i<0xFFFFFF; i++);
  
  return 0;

}
发表于 2006-1-24 19:09:46 | 显示全部楼层

用PHILIP ARMLPC2131控制金鹏液晶OCMJ4*8C

读busy口时要对方向进行设置。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-3-11 03:10 , Processed in 0.017179 second(s), 9 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表