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

📄 ht1621.txt

📁 HT1621显示驱动程序
💻 TXT
字号:


#if 1
#define LCD_SYS_DIS		0x00	/*turn on system oscillator*/

#define LCD_SYS_EN		0x01	/*turn on system oscillator*/
#define LCD_LCD_ON		0x03	/*trun on LCD bias generator*/
#define LCD_LCD_OFF		0x02
#define LCD_RC_256		0x18	/*on-chip RC oscillator*/
#define LCD_IRQ_DIS		0x80	/*disable IRQ output*/
#define LCD_BIAS        	0x29	/*4COM & LCD 1/3 bias option */

//#define LCD_TIMER_DIS           0x04	/*disable time base output*/
//#define LCD_WDT_DIS		0x05	/*disable WDT time_out flag output*/

#define LCD_TONE_OFF	        0x08	/*turn off tone output*/
#define LCD_TONE_ON	        0x09	/*turn on tone output*/

#define LCD_NORMAL		0xe3	/*normal mode*/
#define LCD_COMMAND		0x04		/*write command id to 1621*/
#define LCD_WRITE		0x05		/*write date/addr id to 1621*/

#endif

void WriteLcdCmd(void)
{
	LCD_objectSendcommand(LCD_SYS_EN);   /* only init one time */
	LCD_objectSendcommand(LCD_LCD_ON);
    LCD_objectSendcommand(LCD_RC_256);

	LCD_objectSendcommand(LCD_IRQ_DIS);
	LCD_objectSendcommand(LCD_BIAS);
  
}






void	WriteLcdDriver(unsigned char lcd_on)
{
	if(lcd_on)
		_nop_();
#ifdef NO_PANEL_FALLDN_KEY //lzw 071010
	WriteLcdCmd();
#endif
	LCD_objectSenddata();
}

#if 1//#ifdef  HT1621
void LCD_sendcmd(int cmd)
{
    int i;
    P_LCD_CE = 0;
    for(i = 0;i<3;i++)
    	{
		lcd_wait();
		P_LCD_CL = 0;
		lcd_wait();

        if(cmd & 0x01)
	   		P_LCD_DO = 1;
		else
	   		P_LCD_DO = 0;
        
        cmd>>=1;
        lcd_wait();
		P_LCD_CL = 1;
        lcd_wait();

     	}
}


void LCD_objectSendcommand(int command)
{
    int i,j= 0x01;
    LCD_sendcmd(j);
    j = command;
    for(i = 0;i<8;i++)
	    {
		lcd_wait();
		P_LCD_CL = 0;;
		lcd_wait();
	    if(j & 0x80)
		   P_LCD_DO = 1;
		else
		   P_LCD_DO = 0;
	        
        j<<=1;
        lcd_wait();
		P_LCD_CL = 1;
	    lcd_wait();

	     }
     lcd_wait();
     P_LCD_CL = 0;
     lcd_wait();

     P_LCD_DO = 0;
     lcd_wait();
     P_LCD_CL = 1;
     lcd_wait();

   	 P_LCD_CE = 1;
}

void LCD_objectSenddata() 
{
	unsigned char i,j;
    unsigned char wrdata;
    LCD_sendcmd(LCD_WRITE);
	wrdata = 0;
    for(i=0; i<6; i++) 
	   {
	   lcd_wait();
	   P_LCD_CL = 0;
       lcd_wait();
       if(wrdata & 0x20) 
		P_LCD_DO = 1;
	   else
		P_LCD_DO = 0;
       
 	   lcd_wait();
       wrdata <<= 1;
	   P_LCD_CL = 1;
       lcd_wait();

       }

#if 1  
        for(i=0; i<8; i++) {
        	lcd_wait();
		P_LCD_CL = 0;
              lcd_wait();

                if(data & 0x80) {
			 P_LCD_DO = 1;
		} else{
			 P_LCD_DO = 0;
                }
	        lcd_wait();
	 	P_LCD_CL = 1;
        lcd_wait();

                data <<= 1;
	}
        P_LCD_CE = 1;
#else
    for (j=0;j<LCD_BUFF_MAX;j++)
    	{
    	wrdata = LCD_Buffer_Top[j];
		for(i=0; i<8; i++) 
			{
			lcd_wait();
		    P_LCD_CL = 0;
			lcd_wait();

			if(wrdata & 0x01) 
			   P_LCD_DO = 1;
		    else
			  P_LCD_DO = 0;
				   
			lcd_wait();
		    P_LCD_CL = 1;
		    lcd_wait();

			wrdata >>= 1;
	   		}
    	}
	
	   P_LCD_CE = 1;

#endif
}

#endif // HT1621

⌨️ 快捷键说明

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