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

📄 lcd_drv.c

📁 HGO12864液晶驱动程序
💻 C
字号:
#include "LCD_drv.h"

#include "LCD_ziku.h"


unsigned char  flag;    /*可位寻址的*/
unsigned int *p;

/*************************************************/
 /*延时*/
/*************************************************/
void delay(void)    
 {unsigned char i,j;
   for(i=32;i>0;i--)
    for(j=255;j>0;j--);
 }

/*************************************************/
//初始化
/*************************************************/
void lcd_init(void)
{//初始化端口方向
  
   CS1_SEL &= ~CS1_BIT;
   RST_SEL &= ~RST_BIT;
   A0_SEL &= ~A0_BIT;
   SCLK_SEL &= ~SCLK_BIT;
   DI_SEL &= ~DI_BIT;
  
   CS1_DIR |= CS1_BIT;
   RST_DIR |= RST_BIT;
   A0_DIR |= A0_BIT;
   SCLK_DIR |= SCLK_BIT;
   DI_DIR |= DI_BIT;
  
  rst=0;
  delay();
  rst=1;
  delay();
  wcom(0xa3);       //LCD BIAS SET ( A2 1/8;A3 1/65DUTY)
  wcom(0xa0);       //ADC  select,NORMAL   0-->127
  wcom(0xaf);       // DISPLAY ON/OFF
  wcom(0x2f);        //power control(VB,VR,VF=1,1,1)
  wcom(0x23);        // VOLT REGULATOR RADIO SET 
  wcom(0x81);       //ELECTRONIC VOLUME mode setting 100B 对比度命令
  wcom(0x28);       //REFERENCE VOLT REG  set
  wcom(0xc0);        //SHL SELECT
  wcom(0xaf);        //DISPLAY ON/OFF
  wcom(0x40);        // DISPLAY START LINE SET
  


  nop();
  nop();
}



/*************************************************/
//写命令
/*************************************************/

void wcom(unsigned char com)
 { 
   cs1=0;
   nop();
   a0=0;
   nop();
   write(com);
   nop();
   nop(); 
   cs1=1;
}

/*************************************************/
//写数据
/*************************************************/

void wdata(unsigned char dat)
 {
   cs1=0;
   nop();
   a0=1;
   nop();
   write(dat);  
   nop();
   nop(); 
   cs1=1;
}
/**************************************************/
//串口移位输出
/*************************************************/

void write(unsigned char dat)
 {  unsigned char s,temp;
    int i;
    sclk=0;
    s=dat;

    for(i=8;i>0;i--)
      {sclk=0;
       nop();
       nop();
       temp=s & 0x80;
       if(temp)
            {di=1;}
       else {di=0;}

       sclk=1;   
       s=s<<1;  
      }
 } 




void dispLargeNum_2424(unsigned char page,unsigned char seg,unsigned char cod,unsigned char dot)
{
  unsigned char i,j;
  unsigned char num;
  num = cod * 3;
  wcom(0xaf);//开显示
  for(i = 0;i <3;i++)
  {
      wcom(0xb0+page+i);   //设定页地址                                          
      wcom(0x10+(0x0f&(seg>>4))); //设定列地址 ,高四位
      wcom(0x00+(0x0f&seg)); //设定列地址 ,低四位
      for(j = 0;j<24;j++)
      {
         
          wdata(LargeNum1[num+i][j]);
        
      } 
  }
  if(dot)////如果要显示小数点
  {
    seg += 13;
    wcom(0x10+(0x0f&(seg>>4))); //设定列地址 ,高四位
    wcom(0x00+(0x0f&seg)); //设定列地址 ,低四位
    for(j = 0;j<3;j++)
    {
       wdata(0x07);
    }
  }
}
//显示数字0-9,:
void dispLargeNum_1616(unsigned char page,unsigned char seg,unsigned char cod)
{
  
  unsigned char i,j;
  unsigned char num;
  num = cod * 2;
  wcom(0xaf);//开显示
  for(i = 0;i <2;i++)
  {
      wcom(0xb0+page+i);   //设定页地址                                          
      wcom(0x10+(0x0f&(seg>>4))); //设定列地址 ,高四位
      wcom(0x00+(0x0f&seg)); //设定列地址 ,低四位
      for(j = 0;j<16;j++)
      {
         
          wdata(LargeNum2[num+i][j]);
        
      } 
  }
 /* if(dot)////如果要显示小数点
  {
    seg += 13;
    wcom(0x10+(0x0f&(seg>>4))); //设定列地址 ,高四位
    wcom(0x00+(0x0f&seg)); //设定列地址 ,低四位
    for(j = 0;j<3;j++)
    {
       wdata(0x07);
    }
  }*/
}


   

/*************************************************/
//写disdate_a数据
/*************************************************/
void disdate_a(unsigned char dat_a,unsigned char dat_b)
{
   int seg;
   unsigned char page;
   for(page=0xb0;page<0xb9;page++)                     //写页地址共9页  0xb8----0xb9
      { wcom(page);                                    //如下汉字可改
        wcom(0x10); 
        wcom(0x00); 
                   
        for(seg=0;seg<64;seg++)
           { wdata(dat_a);
             wdata(dat_b);
           }
      } 
   wcom(0xaf); /*开显示指令*/          
}





	  

⌨️ 快捷键说明

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