📄 vfd_51.h
字号:
#ifndef __VFD_R_H
#define __VFD_R_H
/*
** 66666
** 4 5
** 4 5
** 33333
** 1 2
** 1 2
** 00000
*/
/* _________________________________________________________ */
/* | DVD dts SVCD DD (camer) PBC MP3 | */
/* | __ ___ ___ ___ ___ ___ ___ ___ | */
/* | / \ | | | | | |. | | | |.| | | | | */
/* || |-> || --- --- --- . --- --- . --- --- | */
/* | \_ / ALL <-| | | | | | | | | | | | | | | */
/* | --- --- --- --- --- --- --- | */
/* |________________________________________________________| */
/* wangbin creat it for VFD_511 */
/* CAUTION:In this VFD BIT-1(S0),display differential sequence. */
/* 03-01-03 */
#define VFD_7SEG_SG (0x08)
#define VFD_7SEG_SF (0x10)
#define VFD_7SEG_SE (0x02)
#define VFD_7SEG_SD (0x01)
#define VFD_7SEG_SC (0x04)
#define VFD_7SEG_SB (0x20)
#define VFD_7SEG_SA (0x40)
#include "vfd_7seg.h"
#include "macro.h"
#include "fs9660.h"
#define VFD_DOT_S 62
#define VFD_DOT_V 61
#define VFD_DOT_CD 60
#define VFD_DOT_MP3 14
#define VFD_DOT_REPALL 57
#define VFD_DOT_REP1 56
#define VFD_DOT_SEC 23// :sec
#define VFD_DOT_MIN 39// :min
#define VFD_DOT_PAUSE 58
#define VFD_DOT_PLAY 59
#define VFD_DOT_PBC 15
#define VFD_DOT_REP1 56
#define VFD_DOT_DOLBY 47//two" D" sign.
#define VFD_DOT_DTS 63
#define VFD_DOT_DVD 79
#define VFD_DOT_CAMER 31
#define VFDA_T1 6
#define VFDA_P0 5
#define VFDA_P1 4
#define VFDA_M0 3
#define VFDA_M1 2
#define VFDA_S0 1
#define VFDA_S1 0
const BYTE vfd_addr[7] =
{VFDA_T1, VFDA_P0, VFDA_P1, VFDA_M0, VFDA_M1, VFDA_S0, VFDA_S1};
void print_vfd_digital(BYTE no, BYTE data)
{
if(no == 5)//"S0" differential sequence.wangbin 03-01-03
{
vfd_mem[VFDA_S0] &= (0xc0);
vfd_mem[VFDA_S0] |= (vfd_digit[data]>>1);
switch(data)
{
case 0:
case 2:
case 3:
case 5:
case 6:
case 8:
case 9:
vfd_dot(VFD_DOT_ON, 7);
break;
default:
vfd_dot(VFD_DOT_OFF, 7);
}
}
else
{
vfd_mem[vfd_addr[no]] &= (0x80);
vfd_mem[vfd_addr[no]] |= (vfd_digit[data]);
}
}
void vfd_disc_turn(BYTE mode)
{
static BYTE i = 7;
if(i < 2)
i = 7;
if(mode)
{
vfd_mem[8] = 0xfc;
vfd_mem[9] = 0x7f;
vfd_mem[8] &= (~(1 << (i % 8)));
vfd_mem[9] &= (~(1 <<((i%8)-1)));
}
else
{
vfd_mem[8] = 0xfc;
vfd_mem[9] = 0x7f;
}
i--;
}
void vfd_cdtype(BYTE cd_types)
{
switch (cd_types)
{
case CDCVD:
case CDSVCD:
vfd_dot(VFD_DOT_ON, VFD_DOT_S);
case CDVCD10:
case CDVCD11:
case CDVCD20:
case CDVCD30:
vfd_dot(VFD_DOT_ON, VFD_DOT_V);
case CDDA:
vfd_dot(VFD_DOT_ON, VFD_DOT_CD);
break;
case CDROM:
vfd_dot(VFD_DOT_ON, VFD_DOT_MP3);
break;
}
}
void vfd_close(void)
{
vfd_mem[4] = 0x53;//C
vfd_mem[3] = 0x13;//L
vfd_mem[2] = 0x77;//O
vfd_mem[1] = 0x2e;//S
vfd_mem[0] = 0xdb;//E
}
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_open(void)
{
vfd_mem[3] = 0x77;//O
vfd_mem[2] = 0x7a;//P
vfd_mem[1] = 0x2d;//E
vfd_mem[0] = 0xf6;//n
}
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(0, cd_disp_trk / 10);
print_vfd_digital(1, cd_disp_trk % 10);
print_vfd_digital(3, cd_disp_mm / 10);
print_vfd_digital(4, cd_disp_mm % 10);
print_vfd_digital(5, cd_disp_ss / 10);
print_vfd_digital(6, cd_disp_ss % 10);
vfd_dot(VFD_DOT_OFF,VFD_DOT_SEC);
vfd_dot(VFD_DOT_OFF,VFD_DOT_MIN);
}
else
{//modified 02/12/24
vfd_dot(VFD_DOT_ON,VFD_DOT_SEC);
}
}
void vfd_pause(void)
{
vfd_dot(VFD_DOT_ON, VFD_DOT_PAUSE);
vfd_dot(VFD_DOT_OFF, VFD_DOT_PLAY);
}
void vfd_play(void)
{
vfd_dot(VFD_DOT_OFF, VFD_DOT_PAUSE);
vfd_dot(VFD_DOT_ON, VFD_DOT_PLAY);
}
void vfd_playmode(void)
{
if(IsPBCOn())
vfd_dot(VFD_DOT_ON, VFD_DOT_PBC);
else
vfd_dot(VFD_DOT_OFF, VFD_DOT_PBC);
}
void vfd_repeat(void)
{
switch (rep_mode)
{
case REPEAT_TRACK:
{
vfd_dot(VFD_DOT_OFF, VFD_DOT_REPALL);
vfd_dot(VFD_DOT_ON, VFD_DOT_REP1);
}
break;
case REPEAT_DISC:
{
vfd_dot(VFD_DOT_ON, VFD_DOT_REPALL);
vfd_dot(VFD_DOT_OFF, VFD_DOT_REP1);
}
break;
default:
{
vfd_dot(VFD_DOT_OFF, VFD_DOT_REPALL);
vfd_dot(VFD_DOT_OFF, VFD_DOT_REP1);
}
break;
}
}
void vfd_refresh(void)
{
vfd_playmode();
vfd_cdtype(cd_type_loaded);
}
void vfd_set_pgm(BYTE method)
{
}
//modified 02/12/24
void vfd_normal_state(void)
{
if(cd_type_loaded!=CDNODISK)
{
if(Gmem.gmp3.gifsFunc!=FS_FUNC_JPEG)
{
vfd_disc_turn(1);
vfd_show_time();
}
vfd_dot(VFD_DOT_ON,VFD_DOT_PLAY);
vfd_dot(VFD_DOT_OFF,VFD_DOT_PAUSE);
}
else
{
init_vfd_clear(0);
vfd_nodisc();
}
}
void vfd_stop(void)
{
vfd_dot(VFD_DOT_ON,VFD_DOT_SEC);
vfd_dot(VFD_DOT_OFF,VFD_DOT_PLAY);
vfd_dot(VFD_DOT_OFF,VFD_DOT_PAUSE);
vfd_dot(VFD_DOT_OFF,VFD_DOT_REP1);
vfd_dot(VFD_DOT_OFF,VFD_DOT_REPALL);
}
//end modified 02/12/24
void flash_pause(void)//for flash pause state PP.wangbin 03-01-04.
{
static BYTE flash;
flash++;
if(flash == 4)
flash = 0;
if(flash >= 2)
{
vfd_mem[6] &=0x80;
vfd_mem[5] &=0x80;
}
else
{
print_vfd_digital(0, cd_disp_trk / 10);
print_vfd_digital(1, cd_disp_trk % 10);
}
}
void vfd_Clear(void)
{
BYTE i;
for(i = 0;i < 12;i++)
vfd_mem[i] = 0x00;
}
void vfd_game_clear(void)
{
}
void vfd_game(void)
{
}
void vfd_format(void)
{
}
void vfd_audio(void)
{
}
void vfd_jpeg_disp(void)
{//ok!
init_vfd_clear(0);
print_vfd_digital(3,cd_disp_trk/1000);
print_vfd_digital(4,(cd_disp_trk / 100) % 10);
print_vfd_digital(5,(cd_disp_trk / 10) % 10);
print_vfd_digital(6,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 + -