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

📄 lcd.h

📁 用51单片机实现IR解码
💻 H
字号:
/**********************************************************************
*File		Name		:	vfd.h
*Creat		Time		:	2002/02/11
*Program	Author		:	mqli
*File		Discreption	:	
************************************************************************/
#ifndef _VFD_H
#define _VFD_H


#define LCD_COMS_IN_ONE_SEGMENT         4

#define GET_SEGMENT_POSITION_IN_DISPLAY_BUFFER(seg,com)   (seg-1)*LCD_COMS_IN_ONE_SEGMENT+com-1




/******************************************************************************
* define the LCD for JCW1031
*****************************************************************/
#define DISPLAY_ONE_FREM_MAX_CHARS      8
/* Here define the LCD Segment Mapping */
typedef enum
{  
        	SEG_P1= GET_SEGMENT_POSITION_IN_DISPLAY_BUFFER(4,3) ,
       SEG_MUTE = GET_SEGMENT_POSITION_IN_DISPLAY_BUFFER(4,4) , 


         	SEG_RDS = GET_SEGMENT_POSITION_IN_DISPLAY_BUFFER(8,4) ,
       SEG_P2= GET_SEGMENT_POSITION_IN_DISPLAY_BUFFER(8,3) ,

	SEG_P3 = GET_SEGMENT_POSITION_IN_DISPLAY_BUFFER(12,3) , 
	SEG_FM= GET_SEGMENT_POSITION_IN_DISPLAY_BUFFER(12,4) ,
	
	SEG_P4 = GET_SEGMENT_POSITION_IN_DISPLAY_BUFFER(16,3) ,
      	SEG_AM = GET_SEGMENT_POSITION_IN_DISPLAY_BUFFER(16,4) ,


	SEG_P5 = GET_SEGMENT_POSITION_IN_DISPLAY_BUFFER(20,3) ,
          SEG_P8= GET_SEGMENT_POSITION_IN_DISPLAY_BUFFER(20,4) ,
          
      	       SEG_P6 = GET_SEGMENT_POSITION_IN_DISPLAY_BUFFER(24,3) ,

      
       SEG_P7= GET_SEGMENT_POSITION_IN_DISPLAY_BUFFER(28,3) ,
       
		

          ICON_STEREO=0xFE,
         ICON_AM=SEG_AM	,
	ICON_FM=SEG_FM	,
	ICON_LW=SEG_AM	,
	ICON_MW=SEG_AM	,
      
  	
        EMPTY_ICON=0xFE	
}LCD_SEGMENTSNAME;


 /*define the char segment position,you must define  according to the followed font*/
/*
 * 14 segment:
 *
 *	          a         
 *	   __________
                
 *  f |    \ h |  j/      | b
 *    |     \  i   /        |
 *	  __g__    __k__
 * e |      / |  \         | c
 *    |   n/  m    \l     |
 *	  ___________
 *	        d
 *
 *Please fill the char segment position*/
#define GET_POSITION_IN_INT(x)		1<<(x-1)
 
#define SEG14_A  	GET_POSITION_IN_INT(5)
#define SEG14_B		GET_POSITION_IN_INT(13)
#define SEG14_C		GET_POSITION_IN_INT(14)
#define SEG14_D		GET_POSITION_IN_INT(12)
#define SEG14_E		GET_POSITION_IN_INT(4)
#define SEG14_F		GET_POSITION_IN_INT(1)
#define SEG14_G		GET_POSITION_IN_INT(3)
#define SEG14_H		GET_POSITION_IN_INT(2)
#define SEG14_I		GET_POSITION_IN_INT(6)
#define SEG14_J		GET_POSITION_IN_INT(9)
#define SEG14_K		GET_POSITION_IN_INT(10)
#define SEG14_L		GET_POSITION_IN_INT(11)
#define SEG14_M		GET_POSITION_IN_INT(7)
#define SEG14_N		GET_POSITION_IN_INT(8)



#define CHAR_BODY			(SEG14_A | SEG14_B | SEG14_C | SEG14_D | SEG14_E | SEG14_F | SEG14_G  | SEG14_H| SEG14_I | SEG14_J | SEG14_K | SEG14_L| SEG14_M | SEG14_N   )
#define CHAR_NEIGHBOURS	~(CHAR_BODY)	

/*Define the char font*/

#define	CHAR_A	(SEG14_A | SEG14_B | SEG14_C | SEG14_E | SEG14_F | SEG14_G | SEG14_K)
#define	CHAR_B	(SEG14_A | SEG14_B | SEG14_C | SEG14_D | SEG14_K | SEG14_M | SEG14_I)
#define	CHAR_C	(SEG14_A | SEG14_F | SEG14_E | SEG14_D)
#define	CHAR_D	(SEG14_A | SEG14_B | SEG14_C | SEG14_D | SEG14_I| SEG14_M)
#define	CHAR_E	(SEG14_A | SEG14_F | SEG14_E | SEG14_D | SEG14_G  | SEG14_K)
#define	CHAR_F	(SEG14_A | SEG14_E | SEG14_F | SEG14_G| SEG14_K )
#define	CHAR_G	(SEG14_A | SEG14_C | SEG14_D | SEG14_E | SEG14_F | SEG14_K)
#define	CHAR_H	(SEG14_B | SEG14_C | SEG14_E | SEG14_F | SEG14_G | SEG14_K)
#define	CHAR_I	(SEG14_A | SEG14_D | SEG14_I | SEG14_M)
#define	CHAR_J	(SEG14_B | SEG14_C | SEG14_D | SEG14_E)
#define	CHAR_K	(SEG14_J | SEG14_L | SEG14_G | SEG14_F | SEG14_E)
#define	CHAR_L	(SEG14_F | SEG14_E | SEG14_D)
#define	CHAR_M	(SEG14_F | SEG14_E | SEG14_H | SEG14_J | SEG14_B | SEG14_C)
#define	CHAR_N	(SEG14_F | SEG14_E | SEG14_B | SEG14_C | SEG14_H | SEG14_L)
#define	CHAR_O	(SEG14_A | SEG14_B | SEG14_C | SEG14_D | SEG14_E | SEG14_F)
#define	CHAR_P	(SEG14_A | SEG14_B | SEG14_F | SEG14_E | SEG14_G | SEG14_K)
#define	CHAR_Q	(SEG14_A | SEG14_B | SEG14_C | SEG14_D | SEG14_E | SEG14_F | SEG14_L)
#define	CHAR_R	(SEG14_A | SEG14_B | SEG14_F | SEG14_E | SEG14_L | SEG14_G | SEG14_K)
#define 	CHAR_S	(SEG14_A | SEG14_F | SEG14_G | SEG14_K| SEG14_C | SEG14_D)
#define 	CHAR_T	(SEG14_A | SEG14_I | SEG14_M)
#define 	CHAR_U	(SEG14_B | SEG14_C | SEG14_D | SEG14_E | SEG14_F)
#define 	CHAR_V	(SEG14_F | SEG14_J| SEG14_E| SEG14_N)
#define 	CHAR_W	(SEG14_F | SEG14_E | SEG14_B | SEG14_C | SEG14_N| SEG14_L)
#define 	CHAR_X	(SEG14_H | SEG14_J | SEG14_L | SEG14_N)
#define 	CHAR_Y	(SEG14_H | SEG14_J | SEG14_M)
#define 	CHAR_Z	(SEG14_A | SEG14_J | SEG14_N | SEG14_D)

#define 	CHAR_STAR	(SEG14_H | SEG14_I | SEG14_J | SEG14_G | SEG14_K | SEG14_N |SEG14_M |SEG14_L)
#define 	CHAR_INCLIND (SEG14_K | SEG14_G)             
#define 	CHAR__	     (SEG14_D )
#define 	CHAR_			0x00
#define 	CHAR_PLUS 	(SEG14_I | SEG14_K | SEG14_G | SEG14_M)
#define 	CHAR_MINUS 	(SEG14_G | SEG14_K)
#define 	CHAR_0	CHAR_O
#define 	CHAR_1	(SEG14_B | SEG14_C)
#define 	CHAR_2	(SEG14_A | SEG14_B | SEG14_G | SEG14_K | SEG14_E | SEG14_D)
#define 	CHAR_3	(SEG14_A | SEG14_B | SEG14_G | SEG14_K | SEG14_C | SEG14_D)
#define 	CHAR_4	(SEG14_F | SEG14_G | SEG14_K | SEG14_B | SEG14_C)
#define 	CHAR_5	CHAR_S
#define 	CHAR_6	(SEG14_A | SEG14_F | SEG14_E | SEG14_G | SEG14_C | SEG14_D | SEG14_K)
#define 	CHAR_7	(SEG14_A | SEG14_B | SEG14_C)
#define 	CHAR_8	(SEG14_A | SEG14_B | SEG14_C | SEG14_D | SEG14_E | SEG14_F | SEG14_G | SEG14_K)
#define 	CHAR_9	(SEG14_A | SEG14_B | SEG14_C | SEG14_D                  | SEG14_F | SEG14_G | SEG14_K)





#define 	CHAR_SIGNLE_QUOTATION 	(SEG14_J)

#define 	CHAR_excalmatory_mark			(SEG14_H| SEG14_I | SEG14_J | SEG14_M )

#define 	CHAR_decline (SEG14_H | SEG14_L )
#define 	CHAR_reverse_decline (SEG14_J | SEG14_N )
#define 	CHAR_double_quotation	(SEG14_I | SEG14_B )  /*"*/
		
#define 	CHAR_persen	(SEG14_F | SEG14_H| SEG14_G | SEG14_J | SEG14_N | SEG14_K| SEG14_L| SEG14_C  )	/*%*/
#define 	CHAR_and	(SEG14_G| SEG14_E| SEG14_N | SEG14_J | SEG14_L ) 	/*&*/

#define 	CHAR_left_bracket	CHAR_C 	/*(*/
#define 	CHAR_right_bracket	(SEG14_A | SEG14_B| SEG14_C | SEG14_D )  	/*)*/
	
#define 	CHAR_comma	(SEG14_N )		/*,*/

#define 	CHAR_point	(SEG14_L)	/*.*/
		
#define 	CHAR_colon	( SEG14_H  | SEG14_N )	/*:*/
#define 	CHAR_semicolon	( SEG14_N | SEG14_I )	/*;*/
#define 	CHAR_small	( SEG14_G| SEG14_J|SEG14_L )		/*<*/
#define 	CHAR_equel	(SEG14_G | SEG14_K | SEG14_D  )		/*=*/
#define 	CHAR_large	(SEG14_H | SEG14_K |SEG14_N )				/*>*/
#define 	CHAR_problem	(SEG14_A | SEG14_B| SEG14_K | SEG14_M )			/*?*/
#define 	CHAR_at		(SEG14_G | SEG14_E | SEG14_N | SEG14_M | SEG14_K | SEG14_L  )		/*@*/
#define 	CHAR_large_left_bracket		CHAR_left_bracket          /*[*/
#define 	CHAR_large_right_bracket		CHAR_right_bracket           /*]*/
#define 	CHAR_UP		(SEG14_N |SEG14_L  )		/*^*/
#define 	CHAR_reverse_quotation		(SEG14_H )		/*`*/



#endif

typedef enum
{  
		SYS_DIS =0x00,     //Turn off both system oscillator and LCD bias generator
		SYS_EN=0x01 ,         //Turn on system oscillator
		LCD_OFF=0x02,             // Turn off LCD bias generator Yes
		LCD_ON=0x03,               // Turn on LCD bias generator
		TIMER_DIS=0x04,		// Disable time base output
		WDT_DIS=0x05, 		// Disable WDT time-out flag output
		TIMER_EN=0x06,		//Enable time base output
		WDT_EN=0x07,		//Enable WDT time-out flag output	
		TONE_OFF=0x08, 		//Turn off tone outputs Yes
		TONE_ON=0x09,		// Turn on tone outputs
		CLR_TIMER=0x0c,		//Clear the contents of time base generator
		CLR_WDT=0x0e,		//Clear the contents of WDT stage
		XTAL_32K=0x14,		//System clock source, crystal oscillator
		RC_256K=0x18,			//System clock source, on-chip RC oscillator Yes
		EXT_256K=0x1c,			//System clock source, external clock source
		
		BIAS_1_2_COMS_2=0x20,			/*LCD 1/2 bias option  ab=00: 2 commons option*/
		BIAS_1_2_COMS_3=0x24,			//ab=01: 3 commons option
		BIAS_1_2_COMS_4=0x28,	             //ab=10: 4 commons option  
		
		BIAS_1_3_COMS_2=0x21,			/*	LCD 1/3 bias option ab=00: 2 commons option*/
		BIAS_1_3_COMS_3=0x25,			//			ab=01: 3 commons option
		BIAS_1_3_COMS_4=0x29,			//			ab=10: 4 commons option
		
		TONE_4K=0x40,				// Tone frequency, 4kHz
		TONE_2K=0x60,				//Tone frequency, 2kHz
		IRQ_DIS=0x80,					//Disable IRQ output Yes
		IRQ_EN=0x88,						//Enable IRQ output
		F1_COMMAND=0xA0,			/*Time base/WDT clock output:1Hz
								The WDT time-out flag after: 4s*/
		F2_COMMAND=0xA1,			/*Time base/WDT clock output:2Hz
									The WDT time-out flag after: 2s*/
		F4_COMMAND=0xA2,			/*Time base/WDT clock output:4Hz
									The WDT time-out flag after: 1s*/
		F8_COMMAND=0xA3,			/*Time base/WDT clock output:8Hz
									The WDT time-out flag after: 1/2s*/
		F16_COMMAND=0xA4,			/*Time base/WDT clock output:16Hz
									The WDT time-out flag after: 1/4s*/
		F32_COMMAND=0xA5,			/*Time base/WDT clock output:32Hz
									The WDT time-out flag after: 1/8s*/
		F64_COMMAND=0xA6,			/*Time base/WDT clock output:64Hz
									The WDT time-out flag after: 1/16s*/
		F128_COMMAND=0xA7,			/*Time base/WDT clock output:128Hz
									The WDT time-out flag after: 1/32s*/

		TEST_COMMAND=0xE0,			/* Test mode, user don't use.*/
		NORMAL_COMMAND=0xE3		/*Normal mode*/
}HT1621_COMMAND;



#define    SET_LCD_DATA_HIGH				LCD_DATA=1
#define    SET_LCD_DATA_LOW				      LCD_DATA=0

#define    SET_LCD_WRITE_HIGH			LCD_WRITE=1
#define    SET_LCD_WRITE_LOW			LCD_WRITE=0

#define    SET_LCD_CS_HIGH					LCD_CS=1
#define    SET_LCD_CS_LOW					LCD_CS=0


void  CLear_LCD_Text_Line_Icons(void);
void Clear_LCD_Text_Line();
void  LCD_Display_String(U8 position, U8 *string);
void Tuner_Icons_Display();
void Update_LCD_Display();
 void  LCD_Icon_Display_Control(U8 icon_id,U8 on_off);
 void Display_RDS_Time();
 void LCD_Display_Char(U8 position,U8 temp_char);
 void Init_LCD_COtrollor();
 
void Refresh_LCD_One_Byte(U8 start_byte);
void Send_LCD_Controllor_Command(U8 command);
   void Stop_Scroll_LCD_String();
    void Start_Scrolling_Text(U8 *   input_string);
 void Scrolling_Chars();
 void Display_Temp_String(char *temp_string);
 void Display_Number(ULONG  temp_number);
 void Scroll_Promote_Information(U8 * input_string,U8 var);

⌨️ 快捷键说明

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