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

📄 ht1622.h

📁 2片显示驱动芯片HT1622的C51底层程序
💻 H
字号:
/*****************************************************************************
                              2片HT1622液晶显示模块底层函数
/*****************************************************************************/
#ifndef __LCD_bottom_function_H__
#define __LCD_bottom_function_H__
/*******************************************************************************/
//LCD显示底层函数部分  
#define CMDOFF   0                  //控制器掉电(控制字)
#define CMDON    1                  // 控制器上电(控制字)
#define LCDOFF   2                  // 控制器液晶关闭(控制字)
#define LCDON    3                  //控制器液晶显示(控制字)
#define EXT32    0x1c               //控制器液晶模式显示(控制字)

#define LCD_CS1  P2_4
#define LCD_CS2  P2_3
#define LCD_WR   P2_1
#define LCD_RD   P2_2
#define LCD_DAT  P2_0

#define LCD_wbit(dat)\
  LCD_DAT=dat;\
  LCD_WR=1;\
  LCD_WR=0;\
  LCD_WR=1;

//*******************************写入显示数据**********************************
void LCDWD(unsigned char dat,unsigned char dat_addr)       
{
  unsigned char count,addr;

  if(dat_addr>31){LCD_CS2=0;addr=(dat_addr-32)<<1;}
  else           {LCD_CS1=0;addr=dat_addr<<1;     }

  LCD_wbit(1);
  LCD_wbit(0);
  LCD_wbit(1);
  
  for(count=0;count<6;count++)
   {
	LCD_wbit((bit)(addr&(0x20>>count)));
   }

  for(count=0;count<8;count++)
   {
	LCD_wbit((bit)(dat&(0x01<<count)));
   }
  LCD_DAT=1;
  LCD_CS1=1;
  LCD_CS2=1;
}
/*********************************************************************/
//读数据
unsigned char LCDRD(unsigned char dat_addr)
{
  unsigned char count,addr,dat;

  if(dat_addr>31){LCD_CS2=0;addr=(dat_addr-32)<<1;}
  else           {LCD_CS1=0;addr=dat_addr<<1;     }

  LCD_wbit(1);
  LCD_wbit(1);
  LCD_wbit(0); 

  for(count=0;count<6;count++)
   {
	LCD_wbit((bit)(addr&(0x20>>count)));
   }

 for(count=0;count<8;count++)
  {
   dat>>=1;
   LCD_RD=1;
   LCD_RD=0;
   LCD_RD=1;
   if(LCD_DAT)dat|=0x80;
  }
 LCD_CS1=1;
 LCD_CS2=1;
 return dat;
}
//*************************送控制字函数*********************************
void LCDWC(unsigned char dat)           
{
 unsigned char count;

 LCD_CS1=0;
 LCD_CS2=0;
 LCD_wbit(1);
 LCD_wbit(0);
 LCD_wbit(0);
 for(count=0;count<8;count++)
   {
	LCD_wbit((bit)(dat&(0x80>>count)));
   }
 LCD_wbit(0);
 LCD_DAT=1;
 LCD_CS1=1;
 LCD_CS2=1;
}
//*********************控制器复位函数******************************
void LCD_reset()          
{
  LCDWC(CMDOFF);
  LCDWC(LCDOFF);
  LCDWC(CMDON);
  LCDWC(LCDON);
  LCDWC(EXT32); 
}
//***********************显示高层函数部分***************************
void LcdInit()
{ 
  unsigned char count;
  LCD_reset();
  for(count=0;count<64;count++)
      {
       LCDWD(0x00,count);
  	  }
}


#endif

⌨️ 快捷键说明

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