⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ocmj15x20d.c

📁 480*320触摸屏OCMJ15*20的驱动程序
💻 C
📖 第 1 页 / 共 2 页
字号:
{
  lcd_regnada = regnada;
  lcd_cs1 =0; // chip enable.
  lcd_rd = 1; //
  lcd_rs = 0; // rs = 0;
  lcd_wr = 0; // wr = 0;
  ;
  lcd_wr = 1; // wr = 1;
  lcd_rs = 1; // rs = 1;
  lcd_cs1 =1; // chip disable.
}
//.............................................
void lcd_datawrite(uchar wrdata) small
{						//写资料到DDRAM
  while(lcd_busy == 1);
  lcd_data = wrdata;
  lcd_cs1 =0; // chip enable.
  lcd_rd = 1; //
  lcd_rs = 1; // rs = 1;
  lcd_wr = 0; // wr = 0;
  ;
  lcd_wr = 1; // wr = 1;
  lcd_rs = 1; // rs = 1;
  lcd_cs1 =1; // chip disable.
}
//.............................................
uchar lcd_regread(uchar regname) small
{                           //读缓存器
  uchar reg_rddata;
  lcd_regwr(regname);

  lcd_data = 0xff;
  lcd_cs1 =0; // chip enable.
  lcd_wr = 1; // wr = 1;
  lcd_rs = 0; // rs = 0;
  lcd_rd = 0; // rd = 0;
  ;
  reg_rddata = lcd_data;
  lcd_rd = 1; // rd = 1;
  lcd_rs = 1; // rs = 1;
  lcd_cs1 =1; // chip disable.
  return(reg_rddata);
}
//=============================================
void delay(int k)
{
  int i;
  for(i=0;i<k;i++);
}
void delay1 (int ms)
{
  int i,j;
  for(i=0;i<ms;i++)
    for(j=0;j<123;j++);
}
//=============================================
void lcd_reset(void) small
{               //上电复位
  delay1(120); // delay 120ms 等待上电复位
  lcd_control = 0xff; // lcd_rs/wr/rd/cs1/cs2 normal - skeep high.
}
//.............................................
void lcd_initial(void) small
{                   //初始化
  lcd_regwrite(0x00,0xc9); // lcd control register(lcr)
  lcd_regwrite(0x01,0xf2); // misc.register(mir)
  lcd_regwrite(0x02,0x10); // advance power setup register(apsr)
  lcd_regwrite(0x03,0x80); // advance display setup regiser(adsr)
  lcd_regwrite(0x10,0x6b); // cursor control register(ccr)
  lcd_regwrite(0x11,0x00); // distance of word or lines register(dwlr)
  lcd_regwrite(0x12,0x91); // memory access mode register(awrr)
  lcd_regwrite(0x21,0x27); // display window right register(dwrr)
  lcd_regwrite(0x31,0xef); // display window bottom register(dwbr)
  lcd_regwrite(0x41,0x00); // display window left register(dwlr)
  lcd_regwrite(0x51,0x00); // display window top register(dwtr)
  lcd_regwrite(0x20,0x27); // active window right register(awrr)
  lcd_regwrite(0x30,0xef); // active window bottom register(awbr)
  lcd_regwrite(0x40,0x00); // active window left register(awlr)
  lcd_regwrite(0x50,0x00); // active window top register(awtr)
  lcd_regwrite(0x60,0x00); // cursor position x register(cpxr)
  lcd_regwrite(0x61,0x00); // begin segment position register(bgsg)
  lcd_regwrite(0x70,0x00); // cursor position y register(cpyr)
  lcd_regwrite(0x71,0x00); // shift action range,begin commom register(bgcm)
  lcd_regwrite(0x72,0xef); // shift action range,end commom register(edcm)
  lcd_regwrite(0x80,0xaa); // blink time register(btr)
  lcd_regwrite(0x81,0x00); // frame rate polarity change at common_fa register(fdca)
  lcd_regwrite(0x91,0x00); // frame rate polarity change at common_fb register(fdcb)
  lcd_regwrite(0x90,0x06); // shift clock control register(sccr)
  lcd_regwrite(0xa0,0x11); // interrupt setup & status register(frcb)
  lcd_regwrite(0xa1,0x00); // key scan control register(kscr)
  lcd_regwrite(0xa2,0x00); // key scan data register(ksdr)
  lcd_regwrite(0xa3,0x00); // key scan data expand register(kser)
  lcd_regwrite(0xb0,0x27); // interrupt column setup register(intx)
  lcd_regwrite(0xb1,0xef); // interrupt row setup register(inty)
  lcd_regwrite(0xc0,0x00); // touch panel control register(tpcr)
  lcd_regwrite(0xc1,0x0a); // adc status register(adcs)
  lcd_regwrite(0xc8,0x80); // touch panel segment high byte data register(tpxr)
  lcd_regwrite(0xc9,0x80); // touch panel common high byte data register(tpyr)
  lcd_regwrite(0xca,0x00); // touch panel segment/common low byte data register(tpzr)
  lcd_regwrite(0xd0,0x80); // lcd contrast control register (lccr)
  lcd_regwrite(0xe0,0x00); // pattern data register(pdr)
  lcd_regwrite(0xf0,0xa0); // font control register(fcr)
  lcd_regwrite(0xf1,0x0f); // font size control register
}
//.............................................
void lcd_clear(void) small
{                   //清屏
  uchar reg_rddata;
  lcd_regwrite(0xe0,0x00);
  reg_rddata = lcd_regread(0xf0);
  reg_rddata |= 0x08;
  lcd_regwrite(0xf0,reg_rddata);
}
//.............................................
void lcd_photo(uchar code *pho) small
{                          //显示图形
  uchar i,j,k;
  uchar code *pp;
  gotoxy(0,0);
  for(k=0;k<4;k++)
  {
    pp=pho;
    for(j=0;j<60;j++)
    {
      for(i=0;i<40;i++)
      {
        lcd_datawrite(*pp);
        ++pp; 
      }
    }
  }
}
//.............................................
void lcd_lattice(uchar data1,uchar data2) small
{                                    //显示点阵
  uchar i,j;
  gotoxy(0,0);
  for(j=0;j<60;j++)
  {
    for(i=0;i<80;i++)
    {
      lcd_datawrite(data1);
    }
    for(i=0;i<80;i++)
    {
      lcd_datawrite(data2);
    }
  }
}
//.............................................
void lcd_character(uchar code *cha,int count) small
{                                    //显示中文或字符
  int i;
  for(i=0;i<count;i++)
  {
    lcd_datawrite(*cha);
    ++cha;
  }
}
//.............................................
extern void gotoxy(uchar x,uchar y) small
{                                //定坐标
  lcd_regwrite(0x60,x); // active window top register(awtr)
  lcd_regwrite(0x70,y); // active window top register(awtr)
}
//=============================================
void main (void)
{
  lcd_reset();
  lcd_initial();
  lcd_clear();
  
  
  lcd_regwrite(0x00,0xc5);
   lcd_photo(tab2);
  while(1)
  {
/*    lcd_regwrite(0x10,0x2b);
    lcd_regwrite(0x00,0xcd);
    gotoxy(0x00,0x00);
    lcd_character(tab1,600);
    delay1(3000);
    
    lcd_regwrite(0x00,0xc5);
    lcd_lattice(0xcc,0xcc);
    delay1(3000);
    lcd_lattice(0x33,0x33);
    delay1(3000);
    
    lcd_regwrite(0x10,0x3b);
    lcd_regwrite(0x00,0xcd);
    gotoxy(0x00,0x00);
    lcd_character(tab1,600);
    delay1(3000);
    
    lcd_regwrite(0x00,0xc5);
    lcd_lattice(0xcc,0x33);
    delay1(3000);
    
    lcd_photo(tab2);
    delay1(3000);	*/
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -