导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→用ARM LPC2131控制液晶(金鹏OCMJ4*8C),请

* 88195: 用ARM LPC2131控制液晶(金鹏OCMJ4*8C),请指教

   flatterbird 
flatterbird发表的帖子 

 用ARM LPC2131控制液晶(金鹏OCMJ4*8C),请指教

点击浏览该文件
点击浏览该文件

程序如下,敬请指教
#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月17日12:33:45

  
回复该帖

本主题共有 1 帖,分页:>>>>>该主题的所有内容[1]条

 *树形目录 只列出部分跟帖的标题以及简单的摘要信息 该主题的部分跟帖如下:

[上一篇帖子]:优惠价出租(或出售)ARM7开发板优惠价出租(或出售)ARM7开发板 /P P 嵌入式技术是未来
[下一篇帖子]:求助各位大侠帮下在下,我现在想知道一下240x系列的价格,有知道的告诉下我!!