📄 lcd.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 + -