📄 lzdtn.h
字号:
#ifndef __VFD_R_H
#define __VFD_R_H
//ZHX 081603
#define VFD_7SEG_SC (1<<7)
#define VFD_7SEG_SG (1<<6)
#define VFD_7SEG_SB (1<<5)
#define VFD_7SEG_SA (1<<4)
#define VFD_7SEG_SD (1<<3)
#define VFD_7SEG_SE (1<<2)
#define VFD_7SEG_SF (1<<1)
#include "user_init.h"
#include "vfd_7seg.h"
#include "macro.h"
#include "fs9660.h"
#define VFD_DOT_DVD (16)
#define VFD_DOT_VCD (17)
#define VFD_DOT_CD (18)
#define VFD_DOT_MP3 (19)
#define VFD_DOT_PAUSE (26)
#define VFD_DOT_PLAY (27)
#define VFD_DOT_PBC (126)
#define VFD_DOT_REPEAT (127)
#define VFD_DOT_MINSEC (104)
#define VFD_DOT_HUNDRED (25)
#define VFDA_P0 4
#define VFDA_P1 6
#define VFDA_M0 9
#define VFDA_M1 11
#define VFDA_S0 13
#define VFDA_S1 14
const BYTE vfd_dance[] = {24,32,48,72,88,116};
const BYTE vfd_light[] = {3,11,10,9,8};
const BYTE vfd_disc[] = {60,64,65,66,67,63,62,61};
const BYTE vfd_addr[6] = {4, 6, 9, 11, 13, 14};
void vfd_mem_clear(void);
void print_vfd_digital(BYTE no,BYTE data)
{
if(no==5) {
vfd_mem[14]&=(~0xe0);
vfd_mem[14]|=((vfd_digit[data]<<4)&0xe0);
vfd_mem[15]&=(~0x0f);
vfd_mem[15]|=((vfd_digit[data]>>4)&0x0f);
}
else {
vfd_mem[vfd_addr[no]]&=(~0x0e);
vfd_mem[vfd_addr[no]]|=(vfd_digit[data]&0x0e);
vfd_mem[vfd_addr[no]+1]&=(~0x0f);
vfd_mem[vfd_addr[no]+1]|=((vfd_digit[data]>>4)&0x0f);
}
}
void vfd_disc_turn(BYTE mode)
{
static BYTE j=0;
static BYTE light=0;
static BYTE dance=0;
int i=0;
int d=0;
if (mode==2)
{
vfd_mem[7]|=0xf0;
vfd_mem[8]|=0x0f;
vfd_dot(VFD_DOT_OFF,vfd_disc[j]);
vfd_dot(VFD_DOT_OFF,vfd_disc[j+4]);
j++;
if(j>3) j=0;
light ++;
if(light>5) light=0;
for(i=0;i<6;i++)
vfd_dot(1, vfd_light[i]);
vfd_dot(0, vfd_light[light]);
dance ++;
if(dance>3) dance=0;
for(d=0;d<7;d++)
vfd_dot(1, vfd_dance[d]);
vfd_dot(0, vfd_dance[dance]);
vfd_dot(0, vfd_dance[dance+3]);
}
else if (mode==1)
{
for(i=0;i<6;i++)
vfd_dot(0, vfd_light[i]);
for(d=0;d<7;d++)
vfd_dot(0, vfd_dance[d]);
vfd_mem[7]|=0xf0;
vfd_mem[8]|=0x0f;
}
else
{
for(i=0;i<6;i++)
vfd_dot(0, vfd_light[i]);
for(d=0;d<7;d++)
vfd_dot(0, vfd_dance[d]);
vfd_mem[7]&=0xf0;
vfd_mem[8]&=0x0f;
}
return;
}
void vfd_cdtype(BYTE cd_types)
{
switch(cd_types)
{
case CDVCD10:
case CDVCD11:
case CDVCD20:
case CDVCD30:
vfd_dot(VFD_DOT_ON,VFD_DOT_VCD);
break;
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)
{
print_vfd_digital(1,12);
print_vfd_digital(2,21);
print_vfd_digital(3,24);
print_vfd_digital(4,28);
print_vfd_digital(5,14);
vfd_dot(VFD_DOT_OFF,VFD_DOT_MINSEC);
}
void vfd_nodisc(void)
{
print_vfd_digital(0,23);
print_vfd_digital(1,24);
print_vfd_digital(2,13);
print_vfd_digital(3,18);
print_vfd_digital(4,28);
print_vfd_digital(5,12);
}
void vfd_open(void)
{
print_vfd_digital(2,24);
print_vfd_digital(3,25);
print_vfd_digital(4,14);
print_vfd_digital(5,23);
}
void vfd_show_time(void)
{
static BYTE cd_time_ss=0xff;//0; wyf 2-4-1 15:57
#ifdef VFDVOL_DISPLAY
if(!volFlag)
#endif
{
if((cd_type_loaded == CDROM)&&(CheckUIState(VCD_STATE_STOP)))
return;
if(cd_disp_ss!=cd_time_ss) {
cd_time_ss= cd_disp_ss;
if((cd_disp_trk > 99)&&(cd_disp_trk < 200)) {
vfd_dot(VFD_DOT_ON, VFD_DOT_HUNDRED);
print_vfd_digital(0, (cd_disp_trk-100)/10);
print_vfd_digital(1, (cd_disp_trk-100)%10);
}
else {
vfd_dot(VFD_DOT_OFF, VFD_DOT_HUNDRED);
print_vfd_digital(0, cd_disp_trk/10);
print_vfd_digital(1, cd_disp_trk%10);
}
print_vfd_digital(2, cd_disp_mm/10);
print_vfd_digital(3, cd_disp_mm%10);
print_vfd_digital(4,cd_disp_ss/10);
print_vfd_digital(5,cd_disp_ss%10);
vfd_dot(VFD_DOT_OFF,VFD_DOT_MINSEC);
}
else
vfd_dot(VFD_DOT_ON,VFD_DOT_MINSEC);
}
}
#ifdef VFDVOL_DISPLAY
void vfd_vol_display(BYTE volNum)
{
vfd_dot(VFD_DOT_OFF, VFD_DOT_HUNDRED);
vfd_dot(VFD_DOT_OFF,VFD_DOT_MINSEC);
print_vfd_digital(0, volNum/10);
print_vfd_digital(1, volNum%10);
#ifdef VFDECHO_DISPLAY
if(VfdFlag==1) {
if(IsKYSetup()) {
print_vfd_digital(2, 13);
print_vfd_digital(3, 14);
print_vfd_digital(4, 21);
print_vfd_digital(5, 35);
}
else {
if(!vcx_echo){
print_vfd_digital(0, 24);
print_vfd_digital(1, 15);
}
else if(vcx_echo==1) {
print_vfd_digital(0, 24);
print_vfd_digital(1, 23);
}
print_vfd_digital(2, 14);
print_vfd_digital(3, 12);
print_vfd_digital(4, 17);
print_vfd_digital(5, 24);
}
}
else if(VfdFlag==2) {
print_vfd_digital(2, 13);
print_vfd_digital(3, 14);
print_vfd_digital(4, 12);
print_vfd_digital(5, 35);
}
else
#endif
{
print_vfd_digital(2, 30);
print_vfd_digital(3, 37);
print_vfd_digital(4, 21);
print_vfd_digital(5, 35);
}
}
#endif
void vfd_pause(void)
{
#if 1
static BYTE flash_play = 0;
flash_play ++;
if(flash_play > 3) flash_play = 0;
vfd_dot(VFD_DOT_ON,VFD_DOT_PLAY);
if(flash_play/2)
vfd_dot(VFD_DOT_ON,VFD_DOT_PAUSE);
else
vfd_dot(VFD_DOT_OFF,VFD_DOT_PAUSE);
#else
vfd_dot(VFD_DOT_OFF,VFD_DOT_PLAY);
vfd_dot(VFD_DOT_ON,VFD_DOT_PAUSE);
#endif
vfd_dot(VFD_DOT_ON,VFD_DOT_MINSEC);
vfd_disc_turn(1);
#ifdef VFDVOL_DISPLAY
if(volFlag) {
volFlag = 0;
cd_disp_ss ++;
vfd_show_time();
}
#endif
}
void vfd_audio(void)
{
}
void vfd_format(void)
{
}
void vfd_playmode(void)
{
if(cd_type_loaded==CDROM||cd_type_loaded==CDDA) //wyf 2-6-25 9:02.
{
vfd_dot(VFD_DOT_OFF,VFD_DOT_PBC);
return;
}
else
{
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:
case REPEAT_DISC:
vfd_dot(VFD_DOT_ON,VFD_DOT_REPEAT);
break;
default: //repeat cancel
vfd_dot(VFD_DOT_OFF,VFD_DOT_REPEAT);
break;
}
}
void vfd_refresh(void)
{
vfd_playmode();
vfd_format();
vfd_cdtype(cd_type_loaded);
vfd_audio();
}
void vfd_normal_state(void)
{
if(cd_type_loaded!=CDNODISK)
{
if(Gmem.gmp3.gifsFunc!=FS_FUNC_JPEG)
{
vfd_disc_turn(2);
vfd_show_time();
}
vfd_dot(VFD_DOT_ON,VFD_DOT_PLAY);
vfd_dot(VFD_DOT_OFF,VFD_DOT_PAUSE);
}
else
{
vfd_mem_clear();
vfd_nodisc();
}
return;
}
void vfd_stop(void)
{
vfd_disc_turn(1);
vfd_show_time();
vfd_dot(VFD_DOT_OFF,VFD_DOT_PBC);
vfd_dot(VFD_DOT_OFF,VFD_DOT_PLAY);
vfd_dot(VFD_DOT_OFF,VFD_DOT_PAUSE);
vfd_dot(VFD_DOT_OFF,VFD_DOT_REPEAT);
if(cd_type_loaded==CDROM) {
vfd_dot(VFD_DOT_OFF, VFD_DOT_HUNDRED);
vfd_dot(VFD_DOT_OFF, VFD_DOT_MINSEC);
print_vfd_digital(0, 25);
print_vfd_digital(1, 3);
print_vfd_digital(2, 0);
print_vfd_digital(3, Gmem.gmp3.iso9660_file_cnt/100);
print_vfd_digital(4, (Gmem.gmp3.iso9660_file_cnt%100)/10);
print_vfd_digital(5, Gmem.gmp3.iso9660_file_cnt%10);
} //ZHX 062103 Display total file number of stop
}
void vfd_game(void)
{
print_vfd_digital(0, (GetCmdSrc(sys_cmd)/10));
print_vfd_digital(1, (GetCmdSrc(sys_cmd)%10));
print_vfd_digital(2, 0);
print_vfd_digital(3, 0);
print_vfd_digital(4, 0);
print_vfd_digital(5, 0);
}
void vfd_game_clear(void)
{
vfd_disc_turn(2);
vfd_refresh();
vfd_dot(VFD_DOT_ON, VFD_DOT_MINSEC);//ZHX 062103 for gun
print_vfd_digital(0, 0);
print_vfd_digital(1, 0);
print_vfd_digital(2, 0);
print_vfd_digital(3, 0);
print_vfd_digital(4, 0);
print_vfd_digital(5, 0);
}
void vfd_mem_clear(void)
{
BYTE i=0;
for(i=0;i<16;i++)
{
vfd_mem[i] = 0;
}
}
#endif/*__VFD_R_H*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -