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

📄 ht1622.c

📁 HT1622 单片机驱动 LCD显示驱动新片的单片机控制方法
💻 C
字号:
/*
#define CS_1622 P14.0
#define SK_1622 P3.0
#define DI_1622 P3.1
#define DO_1622 P3.2
*/
#define CS_1622 P1.0
#define SK_1622 P1.1
#define DI_1622 P1.2

#include "config.h"

/**********************************************************************
/*Name: Reset_1621() */
/*Function: */
/**********************************************************************/
void Reset_1622(void)
{
 CS_1622=1;
 SK_1622=1;
 DI_1622=1;
 Delay(10);
 CS_1622=0; 
 CS_1622=0; 
 SK_1622=0; 
 SK_1622=0; 
}

/***********************************************************************/
/*Name: SendBit_HT1622() */
/*Function:  */
/**********************************************************************/
void SendBit_HT1622(unsigned char op_data,unsigned char num)
{
 unsigned char temp1;
 for(temp1=0;temp1<num;temp1++)
 {
 	if( (op_data&0X80)==00 )
 		{DI_1622=0;}
 	else{DI_1622=1;}
 	SK_1622=1; SK_1622=1; SK_1622=1; SK_1622=1;
 	SK_1622=0;
 	op_data=op_data<<1;
 }
}

/*********************************************************************
A
*********************************************************************/
void SENDCOMA(unsigned char command)
{
 Reset_1622();
 SendBit_HT1622(0x080,4); 		/*ID=100 0*/
 SendBit_HT1622(command,8); 	/* send command*/
}

/*********************************************************************
B
*********************************************************************/
void SENDCOMB(unsigned char address)
{
 Reset_1622();
 Delay(10);					/*delay 10us*/
 SendBit_HT1622(0xA0,4); 	/*ID=101 0*/
 SendBit_HT1622(address,5); /* send address*/
}

/*********************************************************************
C
*********************************************************************/
void SENDCOMC(unsigned char command)
{
 Reset_1622();
 SendBit_HT1622(0x90,4); 		/*ID=100 1*/
 SendBit_HT1622(command,8); 	/* send command*/
}

/*---------------------------------------------------------------------------*/
/*		Name:	EXLCDWRITE                                                  	 */
/* 		Func:	write *write_data size of data_length to LCD              	 */
/*		Date:	2005/04/27                                                   */
/*---------------------------------------------------------------------------*/
unsigned char LCDWRITE_1622(unsigned char *write_data, unsigned char data_length)
{
 unsigned char i;

 /* set address point 0*/
 SENDCOMB(0x00);
 /*writes data continuously*/
 for(i=0;i<data_length;i++)
	{
		SendBit_HT1622(*write_data++, 8);	
	}
	

 CS_1622=1;
 return(1);
}

/*-------------------------------------------------------------------------------+
/*  name        : initHT1622()
/*  function    : initial LCD controller / driver (HT1622)
+-------------------------------------------------------------------------------*/
void initLCD_1622(void)
{

 SENDCOMA(LCD_1622_BIAS); 	/*set*/
 SENDCOMA(LCD_1622_RC256);	/*set*/
 SENDCOMA(LCD_1622_SYSEN); 	/*oscillator ON*/

 SENDCOMA(LCD_1622_LCDON); 	/*Display ON*/
 SENDCOMA(LCD_1622_TIMERDIS); /*Disable Timer Output*/

}

/*-------------------------------------------------------------------------------+
+-------------------------------------------------------------------------------*/
void DISP_ALL(unsigned char data)
{
 register char i;
 unsigned char str[16], *p;
 
 for(i = 0, p = str; i < 16; i++)
 	*p++ = data;

 LCDWRITE_1622(str, 16);
}

⌨️ 快捷键说明

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