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

📄 fut166.vfd

📁 ESS3890+SL原代码(1*16内存)
💻 VFD
字号:
/* Copyright 1998, ESS Technology, Inc.					*//* SCCSID @(#)fut166.vfd	4.1 11/05/02 *//* Based on fut166.vfd	1.5 12/11/98	*//* * Futaba 9-BT-166GK * Application: VCD * * VFD controller: NEC 16311, NEC 16312, Panasonic 12510, Rohm 2872 */#ifdef VFD_FUT166/* Tell me about your icon's locations! */#define ICON_disc1      ANODE_G4P11#define ICON_disc2      ANODE_G4P13#define ICON_disc3      ANODE_G5P11#define ICON_disc4      ANODE_G6P13#define ICON_disc5      ANODE_G6P11#define ICON_circle_1    ANODE_G4P12#define ICON_circle_2    ANODE_G4P14#define ICON_circle_3    ANODE_G5P12#define ICON_circle_4    ANODE_G6P14#define ICON_circle_5    ANODE_G6P12#define ICON_plus_16     ANODE_G9P16#define ICON_calendar_1  ANODE_G8P1#define ICON_calendar_2  ANODE_G8P2#define ICON_calendar_3  ANODE_G8P3#define ICON_calendar_4  ANODE_G8P4#define ICON_calendar_5  ANODE_G8P5#define ICON_calendar_6  ANODE_G8P6#define ICON_calendar_7  ANODE_G8P7#define ICON_calendar_8  ANODE_G8P8#define ICON_calendar_9  ANODE_G8P9#define ICON_calendar_10  ANODE_G8P10#define ICON_calendar_11  ANODE_G8P11#define ICON_calendar_12  ANODE_G8P12#define ICON_calendar_13  ANODE_G8P13#define ICON_calendar_14  ANODE_G8P14#define ICON_calendar_15  ANODE_G8P15#define ICON_calendar_16  ANODE_G8P16#define ICON_program    ANODE_G1P1#define ICON_pbc        ANODE_G1P12#define ICON_pbc_on     ANODE_G1P13#define ICON_pbc_off    ANODE_G1P14#define ICON_l          ANODE_G9P13#define ICON_slash      ANODE_G9P14#define ICON_r          ANODE_G9P15#define ICON_play       ANODE_G1P5#define ICON_pause      ANODE_G1P7#define ICON_random     ANODE_G1P3#define ICON_colon2     ANODE_G6P9#define ICON_empty      ANODE_G3P1#define ICON_vcd        ANODE_G1P2#define ICON_repeat     ANODE_G1P2#define ICON_seta       ANODE_G1P9#define ICON_setb       ANODE_G1P11#define ICON_all        ANODE_G1P8#define ICON_min        ANODE_G4P10#define ICON_sec        ANODE_G6P10#define ICON_chapter    ICON_empty #define ICON_cdda       ICON_empty/* * Controller mode setting. This is determined by number of G/P and * the particular VFD controller that you are using. */unsigned int VFD_mode[] = {#ifdef BU2872    0x3a,				/* 6G,  16P			*/#endif#ifdef D16311    0x0B,                               /* 12G, 16P                     */#endif#ifdef D16312    0x02,				/* 6G,  16P			*/#endif#ifdef DSTC6311    0x10,#endif};unsigned int VFD_char_segment_size[] = { 8 };/* Internal GP to external GP mapping. */unsigned char VFD_refresh_address[] = {#ifdef D16311    ANODE_G1L,  ANODE_G1H,  ANODE_G2H,  ANODE_G3L,    ANODE_G4L,  ANODE_G4H,  ANODE_G5H,  ANODE_G6L,    ANODE_G7L,  ANODE_G7H,  ANODE_G8H,  ANODE_G9L,#endif#ifdef DSTC6311    ANODE_G1L, ANODE_G1H, ANODE_G2L, ANODE_G2H,    ANODE_G3L, ANODE_G3H, ANODE_G4L, ANODE_G4H,    ANODE_G5L, ANODE_G5H, ANODE_G6L, ANODE_G6H,    ANODE_G7L, ANODE_G7H, ANODE_G8L, ANODE_G8H,    ANODE_G9L, ANODE_G9H, #endif#if (BU2872 || D16312 || MN12510)    ANODE_G1L, ANODE_G1H, ANODE_G2L, ANODE_G2H,    ANODE_G3L, ANODE_G3H, ANODE_G4L, ANODE_G4H,    ANODE_G5L, ANODE_G5H, ANODE_G6L, ANODE_G6H#endif};/* G's to update when we changed calendar only */unsigned char VFD_refresh_calendar[] = {ANODE_G8L, ANODE_G8H};/* 7-segment definition (really 8 segments) for track/minute/second.	*/VFD_CHAR_SEGMENTS VFD_char_segments[] = {#if 1    {ANODE_G2P2,  ANODE_G2P3,  ANODE_G2P4,  ANODE_G2P5,          ANODE_G2P6,  ANODE_G2P7,  ANODE_G2P8,  ANODE_G2P9},  /* Track high */    {ANODE_G3P2, ANODE_G3P3, ANODE_G3P4, ANODE_G3P5,      ANODE_G3P6, ANODE_G3P7, ANODE_G3P8, ICON_empty},  /* Track low  */    {ANODE_G4P2, ANODE_G4P3, ANODE_G4P4, ANODE_G4P5,     ANODE_G4P6, ANODE_G4P7, ANODE_G4P8, ICON_empty},  /* Minute high*/    {ANODE_G5P2, ANODE_G5P3, ANODE_G5P4, ANODE_G5P5,     ANODE_G5P6, ANODE_G5P7, ANODE_G5P8, ICON_empty},  /* Minute low */    {ANODE_G6P2,  ANODE_G6P3,  ANODE_G6P4,  ANODE_G6P5,     ANODE_G6P6,  ANODE_G6P7,  ANODE_G6P8,  ICON_empty},  /* Second high*/    {ANODE_G7P2, ANODE_G7P3, ANODE_G7P4, ANODE_G7P5,     ANODE_G7P6, ANODE_G7P7, ANODE_G7P8, ICON_empty},  /* Second low */#else    {ANODE_G4P2, ANODE_G4P3, ANODE_G4P4, ANODE_G4P5,     ANODE_G4P6, ANODE_G4P7, ANODE_G4P8, ICON_empty},  /* Minute high*/    {ANODE_G5P2, ANODE_G5P3, ANODE_G5P4, ANODE_G5P5,     ANODE_G5P6, ANODE_G5P7, ANODE_G5P8, ICON_empty},  /* Minute low */    {ANODE_G6P2,  ANODE_G6P3,  ANODE_G6P4,  ANODE_G6P5,     ANODE_G6P6,  ANODE_G6P7,  ANODE_G6P8,  ICON_empty},  /* Second high*/    {ANODE_G7P2, ANODE_G7P3, ANODE_G7P4, ANODE_G7P5,     ANODE_G7P6, ANODE_G7P7, ANODE_G7P8, ICON_empty},  /* Second low */    {ANODE_G2P2,  ANODE_G2P3,  ANODE_G2P4,  ANODE_G2P5,          ANODE_G2P6,  ANODE_G2P7,  ANODE_G2P8,  ANODE_G2P9},  /* Track high */    {ANODE_G3P2, ANODE_G3P3, ANODE_G3P4, ANODE_G3P5,      ANODE_G3P6, ANODE_G3P7, ANODE_G3P8, ICON_empty},  /* Track low  */#endif                                                                          };/* Icons that belong to calendar */unsigned short VFD_calendar_table[] = {     ICON_empty, ICON_calendar_1, ICON_calendar_2, ICON_calendar_3,    ICON_calendar_4, ICON_calendar_5, ICON_calendar_6,    ICON_calendar_7, ICON_calendar_8, ICON_calendar_9,    ICON_calendar_10, ICON_calendar_11, ICON_calendar_12,    ICON_calendar_13, ICON_calendar_14, ICON_calendar_15,    ICON_calendar_16,};VFD_ICON VFD_iconmsg[] = {    /* Repeat AB related */    {"clear_ab",    {ICON_empty}, 		    {ICON_repeat, ICON_seta, ICON_setb}			},    {"seta",	    {ICON_repeat, ICON_seta},		    {ICON_setb}						},    {"setb",	    {ICON_repeat, ICON_seta, ICON_setb}, 		    {ICON_empty}					},    /* multi disc selection, but unavailable for this panel, so we use NULL */    {"disc1",       {ICON_disc1, ICON_circle_1},                     {ICON_empty} 					},    {"disc2",       {ICON_disc2, ICON_circle_2},                    {ICON_empty}					},    {"disc3",       {ICON_disc3, ICON_circle_3},                     {ICON_empty}					},    /* Disc selection, no need to turn off any disks */    {"disc1_on",    {ICON_disc1}, 		    {ICON_empty}					},    {"disc2_on",    {ICON_disc2}, 		    {ICON_empty}					},    {"disc3_on",    {ICON_disc3}, 		    {ICON_empty}					},        {"disc1_off",   {ICON_empty},                    {ICON_disc1}					},    {"disc2_off",   {ICON_empty},                    {ICON_disc2}					},    {"disc3_off",   {ICON_empty},                    {ICON_disc3}					},            {"disc_1_off",  {ICON_empty},                    {ICON_disc1, ICON_circle_1}				},    {"disc_2_off",  {ICON_empty},                    {ICON_disc2, ICON_circle_2}				},    {"disc_3_off",  {ICON_empty},                    {ICON_disc3, ICON_circle_3}				},    /* Audio selection */    {"mono_l",	    {ICON_l}, 		    {ICON_r, ICON_slash}				},    {"mono_r",	    {ICON_r}, 		    {ICON_l, ICON_slash}				},    {"stereo",	    {ICON_slash, ICON_l, ICON_r}, 		    {ICON_empty}					},    {"vocal_l",	    {ICON_l}, 		    {ICON_slash, ICON_r}				},    {"vocal_r",	    {ICON_r}, 		    {ICON_slash, ICON_l}				},    {"vocal_off",   {ICON_empty},                    {ICON_empty}	                		},    /* Play selection */    {"fb",	    {ICON_empty}, 		    {ICON_play, ICON_pause}				},    {"ff",	    {ICON_empty}, 		    {ICON_play, ICON_pause}				},    {"pause",       {ICON_pause}, 		    {ICON_play}						},    {"play",	    {ICON_play}, 		    {ICON_pause}					},    {"stop",        {ICON_colon2}, 		    {ICON_play, ICON_pause}    				},    /* PBC selection */    {"pbc_on",      {ICON_pbc, ICON_pbc_on},                     {ICON_program, ICON_random, ICON_pbc_off}		},    {"pbc_off",     {ICON_pbc_off, ICON_pbc},                     {ICON_pbc_on, ICON_program, ICON_random}		},    /* Intro/digest */    {"intro_on",    {ICON_empty}, 		    {ICON_empty}					},    {"intro_off",   {ICON_empty}, 		    {ICON_empty}					},    /* Number of tracks */    {"more_on",     {ICON_empty}, 		    {ICON_empty}					},    {"more_off",    {ICON_empty}, 		    {ICON_empty}					},    /* Mic. colon, track, hyphen etc */    {"colon_on",    {ICON_colon2}, 		    {ICON_empty}					},    {"colon_off",   {ICON_empty}, 		    {ICON_colon2}					},    {"track",       {ICON_chapter}, 		    {ICON_empty}					},    {"hyphen_on",   {ICON_empty}, 		    {ICON_empty}					},    {"hyphen_off",  {ICON_empty}, 		    {ICON_empty}					},    /* Play sequence */    {"program",	    {ICON_program}, 		    {ICON_random, ICON_pbc}				},    {"shuffle",	    {ICON_random}, 		    {ICON_program, ICON_pbc}				},    /* Play off sequence */    {"program_off", {ICON_empty},                    {ICON_program}                            		},    {"shuffle_off", {ICON_empty},                    {ICON_random}                           		},    /* Repeat related */    {"repeat_off",  {ICON_empty},                     {ICON_repeat, ICON_all}				},    {"repeat_one",  {ICON_repeat}, 		    {ICON_all}						},    {"repeat_all",  {ICON_repeat, ICON_all}, 		    {ICON_empty}					},    /* CD type */    {"vcd",	    {ICON_vcd},                     {ICON_empty}                              		},    {"cdda",        {ICON_empty},                    {ICON_empty}                                	},    /* TV type */    {"ntsc",	    {ICON_empty}, 		    {ICON_empty}					},    {"pal",	    {ICON_empty}, 		    {ICON_empty}	         			},    /* Key shift */    {"key_up",	    {ICON_empty}, 		    {ICON_empty}					},    {"key_down",    {ICON_empty}, 		    {ICON_empty}					},    {"key_resume",  {ICON_empty}, 		    {ICON_empty}					},    /* Initialization */    {"init_state",  {ICON_l, ICON_r},                    {ICON_empty}					},};/* * C-program will refer to a message by VFDMSG_xxx where xxx is the * name you assigned in column 1. */VFD_MSG VFD_msg[] = {    {"nodisc",  {CHAR_N, CHAR_O, CHAR_d, CHAR_I, CHAR_S, CHAR_C,		 CHAR_end}},    {"undisc",  {CHAR_U, CHAR_N, CHAR_d, CHAR_I, CHAR_S, CHAR_C,		 CHAR_end}},    {"chdisc",  {CHAR_C, CHAR_H, CHAR_d, CHAR_I, CHAR_S, CHAR_C, CHAR_end}},    {"open",    {CHAR_,  CHAR_, CHAR_O, CHAR_P, CHAR_E, CHAR_n,		 CHAR_end}},    {"close",   {CHAR_, CHAR_C, CHAR_L, CHAR_O, CHAR_S,		 CHAR_E, CHAR_end}},    {"vcd30",	{CHAR_E, CHAR_V, CHAR_d, CHAR_,  CHAR_3, CHAR_O, CHAR_end}},    {"clearall",{CHAR_,  CHAR_,  CHAR_,  CHAR_,  CHAR_,  CHAR_,  CHAR_end}},};unsigned short VFD_wheel[] = {};unsigned short VFD_ring[]  = {};/* * Display position of characters in VFD_msg. */unsigned char VFD_msg_position[] = {    VFD_TRACK,  VFD_TRACK+1,  VFD_MINUTE,     VFD_MINUTE+1, VFD_SECOND, VFD_SECOND+1};#ifdef MN12510/* 12510 programming sequence *//* Commands */unsigned char VFD_12510_cmd[] = {    0, 1, 2, 3, 4, 5, 6, 7, 8, 0xc, 0xd, 0xe}; /* Corresponding data */unsigned char VFD_12510_dat[] = {    0x01,       /* FLPCNT:                                              */    0x8e,       /* DGTCNT:  Specify digit: 9G, 15/16                    */    0x0f,       /* SEGCNT:  Specify segment: 16P                        */    0x1f,       /* P01CNT:  [G12,G11,G10,G9,P12,P11,P10,P9]             */    0x0f,       /* P2DIR:   P2x [o/i,o/i,o/i,o/i]                       */    0xff,       /* P2CNT:   [G16/P13,G15/P14,G14/P15,G13/P16,d,d,d,d]   */    0x10,       /* P3DIR:   P3x [o/i,o/i,o/i,o/i,o/i]                   */    0x10,       /* P3CNT:   [K4/P34,K3/P33,K2/P32,K1/P31,K0/P30]        */    0x15,       /* KEYCNT:  Key specification (6 keys)                  */    0x17,       /* P01DATA: P0x P1x [3H/3L,2H/2L,1H/1L,0H/0L, ...       */    0x00,       /* P2DATA:  P2x [3H/3L,2H/2L,1H/1L,0H/0L]               */    0x0f        /* P3DATA:  P3x [3H/3L,2H/2L,1H/1L,0H/0L]               */};#endif /* MN12510 */#endif

⌨️ 快捷键说明

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