📄 vfd_269gk1.h
字号:
#ifndef __VFD_R_H
#define __VFD_R_H
/*
** 777777
** 2 6
** 2 6
** 111111
** 3 5
** 3 5
** 444444
*/
#define VFD_7SEG_SG (1<<3)
#define VFD_7SEG_SF (1<<2)
#define VFD_7SEG_SE (1<<5)
#define VFD_7SEG_SD (1<<6)
#define VFD_7SEG_SC (1<<4)
#define VFD_7SEG_SB (1<<1)
#define VFD_7SEG_SA (1<<0)
#include "vfd_7seg.h"
#define VFD_DOT_MIC1 (16)
#define VFD_DOT_MIC2 (17)
#define VFD_DOT_VCD (45)
#define VFD_DOT_MINUS (19)
#define VFD_DOT_L (78)
#define VFD_DOT_R (76)
#define VFD_DOT_STEREO (77)
#define VFD_DOT_MEM (26)
#define VFD_DOT_PLAYB (41)
#define VFD_DOT_PLAYA (42)
#define VFD_DOT_REPALL (40)
#define VFD_DOT_REP1 (43)
#define VFD_DOT_REPEAT (47)
#define VFD_DOT_MINSEC (32)
#define VFD_DOT_MIN (40)
#define VFD_DOT_SEC (56)
#define VFD_DOT_SVCD (46)
#define VFD_DOT_CD (31)
#define VFD_DOT_COLON (71)
#define VFD_DOT_MP3 (47)
#define VFD_DOT_RESUME (64)
#define VFD_DOT_REMAIN (65)
#define VFD_DOT_PAUSE (74)
#define VFD_DOT_PLAY (75)
#define VFD_DOT_TITLE (15)
#define VFD_DOT_PBC (79)
#define VFD_DOT_RAN (72)
#define VFD_DOT_PGM (94)
#define VFD_DOT_VCD20 (72)
#define VFD_DOT_OVER (73)
#define VFD_DOT_2R (74)
#define VFD_DOT_1L (75)
#define VFD_DOT_TIME (76)
#define VFD_DOT_SPACE (77)
#define VFD_DOT_INTRO (79)
#define VFD_DOT_PGM01 (92)
#define VFD_DOT_PGM02 (93)
#define VFD_DOT_PGM03 (94)
#define VFD_DOT_PGM04 (95)
#define VFD_DOT_PGM05 (88)
#define VFD_DOT_PGM06 (89)
#define VFD_DOT_PGM07 (90)
#define VFD_DOT_PGM08 (91)
#define VFD_DOT_PGM09 (84)
#define VFD_DOT_PGM10 (85)
#define VFD_DOT_PGM11 (86)
#define VFD_DOT_PGM12 (87)
#define VFD_DOT_PGM13 (80)
#define VFD_DOT_PGM14 (81)
#define VFD_DOT_PGM15 (82)
#define VFD_DOT_PGM16 (83)
#define VFDA_P0 1
#define VFDA_P1 0
#define VFDA_M0 5
#define VFDA_M1 4
#define VFDA_S0 7
#define VFDA_S1 6
const BYTE vfd_addr[12] = { 1, 0, 3, 2, 4, 6, 8, 11, 10, 0, 0, 0 };
void print_vfd_digital(BYTE no, BYTE data)
{
switch (no)
{
case 0:
case 2:
case 7:
vfd_mem[vfd_addr[no]] &= (~0x3f);
vfd_mem[vfd_addr[no] - 1] &= (~0x80);
if(vfd_digit[data] & 0x01)
vfd_mem[vfd_addr[no] - 1] |= (0x80);
vfd_mem[vfd_addr[no]] |= (vfd_digit[data] >> 1);
break;
default:
vfd_mem[vfd_addr[no]] &= (~0x7f);
vfd_mem[vfd_addr[no]] |= (vfd_digit[data]);
break;
}
}
void vfd_disc_turn(BYTE mode)
{
static BYTE i = 0;
if(i > 5)
i = 0;
if(mode)
{
vfd_mem[7] = 0x7f;
vfd_mem[7] &= (~(1 << (i % 8)));
}
else
{
vfd_mem[7] = 0x7f;
}
i++;
switch (i)
{
case 1:
vfd_dot(VFD_DOT_ON, VFD_DOT_COLON);
break;
case 4:
vfd_dot(VFD_DOT_OFF, VFD_DOT_COLON);
break;
case 3:
case 6:
vfd_mem[VFD_DOT_PLAY / 8] |= (1 << (VFD_DOT_PLAY % 8));
vfd_mem[VFD_DOT_PAUSE / 8] &= (~(1 << (VFD_DOT_PAUSE % 8)));
if(IsPBCOn())
vfd_dot(VFD_DOT_ON, VFD_DOT_PBC);
else
vfd_dot(VFD_DOT_OFF, VFD_DOT_PBC);
break;
case 2:
case 5:
if(IsKYRand())
vfd_dot(VFD_DOT_ON, VFD_DOT_RAN);
else
vfd_dot(VFD_DOT_OFF, VFD_DOT_RAN);
if(IsKYProg())
vfd_dot(VFD_DOT_ON, VFD_DOT_PGM);
else
vfd_dot(VFD_DOT_OFF, VFD_DOT_PGM);
default:
break;
}
}
void vfd_cdtype(BYTE cd_types)
{
switch (cd_types)
{
case CDCVD:
case CDSVCD:
vfd_dot(VFD_DOT_ON, VFD_DOT_SVCD);
case CDVCD10:
case CDVCD11:
case CDVCD20:
vfd_dot(VFD_DOT_ON, VFD_DOT_VCD);
case CDDA:
vfd_dot(VFD_DOT_ON, VFD_DOT_CD);
break;
case CDVCD30:
break;
case CDROM:
vfd_dot(VFD_DOT_ON, VFD_DOT_MP3);
break;
}
vfd_audio();
vfd_dot(VFD_DOT_ON, VFD_DOT_TITLE);
print_vfd_digital(0, cd_total_trk() / 10);
print_vfd_digital(1, cd_total_trk() % 10);
}
void vfd_close(void)
{
print_vfd_digital(4, 12);
print_vfd_digital(5, 21);
print_vfd_digital(6, 24);
print_vfd_digital(7, 28);
print_vfd_digital(8, 14);
}
void vfd_open(void)
{
print_vfd_digital(4, 24);
print_vfd_digital(5, 25);
print_vfd_digital(6, 14);
print_vfd_digital(7, 23);
}
void vfd_show_time(void)
{
static BYTE cd_time_ss = 0xff;
if(cd_disp_ss != cd_time_ss)
{
cd_time_ss = cd_disp_ss;
print_vfd_digital(2, cd_disp_trk / 10);
print_vfd_digital(3, cd_disp_trk % 10);
print_vfd_digital(4, 20); //show space
print_vfd_digital(5, cd_disp_mm / 10);
print_vfd_digital(6, cd_disp_mm % 10);
print_vfd_digital(7, cd_disp_ss / 10);
print_vfd_digital(8, cd_disp_ss % 10);
}
}
void vfd_audio(void)
{
switch (audio_channel)
{
case CH_LR: //STEREO
vfd_dot(VFD_DOT_ON, VFD_DOT_L);
vfd_dot(VFD_DOT_ON, VFD_DOT_R);
vfd_dot(VFD_DOT_ON, VFD_DOT_STEREO);
break;
#ifdef VOCAL_CANCEL
case CH_AUTO_L:
#endif
case CH_LL:
vfd_dot(VFD_DOT_ON, VFD_DOT_L);
vfd_dot(VFD_DOT_OFF, VFD_DOT_R);
vfd_dot(VFD_DOT_ON, VFD_DOT_STEREO);
break;
#ifdef VOCAL_CANCEL
case CH_AUTO_R:
#endif
case CH_RR:
vfd_dot(VFD_DOT_OFF, VFD_DOT_L);
vfd_dot(VFD_DOT_ON, VFD_DOT_R);
vfd_dot(VFD_DOT_ON, VFD_DOT_STEREO);
break;
}
}
void vfd_format(void)
{
}
void vfd_playmode(void)
{
}
void vfd_pause(void)
{
vfd_dot(VFD_DOT_ON, VFD_DOT_PAUSE);
vfd_dot(VFD_DOT_OFF, VFD_DOT_PLAY);
}
void vfd_repeat(void)
{
switch (rep_ab_mode)
{
case REPEAT_FIND_A:
vfd_dot(VFD_DOT_ON, VFD_DOT_PLAYA);
vfd_dot(VFD_DOT_OFF, VFD_DOT_PLAYB);
break;
case REPEAT_FIND_B:
vfd_dot(VFD_DOT_ON, VFD_DOT_PLAYA);
vfd_dot(VFD_DOT_ON, VFD_DOT_PLAYB);
break;
default:
vfd_dot(VFD_DOT_OFF, VFD_DOT_PLAYA);
vfd_dot(VFD_DOT_OFF, VFD_DOT_PLAYB);
}
switch (rep_mode)
{
case REPEAT_TRACK:
vfd_dot(VFD_DOT_ON, VFD_DOT_REP1);
vfd_dot(VFD_DOT_OFF, VFD_DOT_REPALL);
break;
case REPEAT_DISC:
vfd_dot(VFD_DOT_ON, VFD_DOT_REP1);
vfd_dot(VFD_DOT_ON, VFD_DOT_REPALL);
break;
default: //repeat cancel
vfd_dot(VFD_DOT_OFF, VFD_DOT_REP1);
vfd_dot(VFD_DOT_OFF, VFD_DOT_REPALL);
break;
}
}
void vfd_game(void)
{
print_vfd_digital(2, GetCmdSrc(sys_cmd) / 10);
print_vfd_digital(3, GetCmdSrc(sys_cmd) % 10);
print_vfd_digital(5, 0);
print_vfd_digital(6, 0);
print_vfd_digital(7, 0);
print_vfd_digital(8, 0);
}
void vfd_game_clear(void)
{
print_vfd_digital(2, 0);
print_vfd_digital(3, 0);
}
void vfd_refresh(void)
{
vfd_playmode();
vfd_cdtype(cd_type_loaded);
}
void vfd_readtoc(void)//display"---:--:--" and turn on disc all dot .wangbin
{
init_vfd_clear(0);
vfd_disc_turn(0);
vfd_mem[6] = 0x08;
vfd_mem[5] = 0x08;
vfd_mem[4] = 0x88;
vfd_mem[3] = 0x08;
vfd_mem[2] = 0x88;
vfd_mem[1] = 0x04;
vfd_mem[0] = 0X08;
}
void vfd_nodisc(void)
{
vfd_mem[6] = 0x76;//n
vfd_mem[5] = 0x77;//O
vfd_mem[3] = 0x2f;//d
vfd_mem[2] = 0x24;//I
vfd_mem[1] = 0x2e;//S
vfd_mem[0] = 0xd3;//C
}
void vfd_jpeg_disp(void)
{//ok!
init_vfd_clear(0);
print_vfd_digital(5,cd_disp_trk/1000);
print_vfd_digital(6,(cd_disp_trk / 100) % 10);
print_vfd_digital(7,(cd_disp_trk / 10) % 10);
print_vfd_digital(8,cd_disp_trk % 10);
vfd_dot(VFD_DOT_ON,VFD_DOT_PLAY);
vfd_dot(VFD_DOT_OFF,VFD_DOT_PAUSE);
}
#endif/*__VFD_R_H*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -