vfd_turnkey2.h
来自「代码有点长,需细心阅读,仅供影音视听类产品的开发人员参考」· C头文件 代码 · 共 662 行 · 第 1/2 页
H
662 行
#ifndef __VFD_R_H
#define __VFD_R_H
#include "gpio.h"
/*
** 777777
** 2 6
** 2 6
** 555555
** 2 4
** 1 4
** 000000
*/
/* LCD pin map
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
COM1 1D 1C 2D 2C DISC HEAD INTRO LOCK 3D 3C 4D 4C 5D 5C 6D 6C 7D 7C 8D 8C 9D 9C U4
COM2 1E 1G 2E 2G DIR 对比 RANDOM 手动 3E 3G 4E 4G 5E 5G 6E 6G 7E 7G 8E 8G 9E 9G U3
COM3 1F 1B 2F 2B RD RA PROG MIC 3F 3B 4F 4B 5F 5B 6F 6B 7F 7B 8F 8B 9F 9B U2
COM4 CD 1A R1 2A MP3 WMA 自动 VCD BAT 3A BAT1 4A BAT2 5A BAT3 6A COL 7A U 8A U5 9A U1
a
----
f | g | b
----
e | | c
----
d
*/
#define VFD_7SEG_SG (1<<5)
#define VFD_7SEG_SF (1<<2)
#define VFD_7SEG_SE (1<<1)
#define VFD_7SEG_SD (1<<0)
#define VFD_7SEG_SC (1<<4)
#define VFD_7SEG_SB (1<<6)
#define VFD_7SEG_SA (1<<7)
#include "vfd_7seg.h"
#include "macro.h"
#define VFD_DOT_MIC1 (255)
#define VFD_DOT_MIC2 (255)
//#define VFD_DOT_MP3 (56)
#define VFD_DOT_SVCD (255)
//#define VFD_DOT_VCD (31)
//#define VFD_DOT_CD (30)
#define VFD_DOT_MINUS (255)
#define VFD_DOT_PAL (255)
#define VFD_DOT_NTSC (255)
#define VFD_DOT_MEM (255)
#define VFD_DOT_PLAYB (255)
#define VFD_DOT_PLAYA (255)
#define VFD_DOT_REPALL 16 //(255)
#define VFD_DOT_REP1 11 // (30)
//#define VFD_DOT_REPEAT (31)
//#define VFD_DOT_COLON (48)
#define VFD_DOT_DASH (255)
#define VFD_DOT_RESUME (255)
#define VFD_DOT_REMAIN (255)
#define VFD_DOT_PAUSE (255)
#define VFD_DOT_PLAY (255)
//#define VFD_DOT_RAN (70)
//#define VFD_DOT_PGM (0)
#define VFD_DOT_VCD20 (255)
#define VFD_DOT_OVER (255)
#define VFD_DOT_2R (255)
#define VFD_DOT_1L (255)
#define VFD_DOT_TIME (255)
#define VFD_DOT_SPACE (255)
//#define VFD_DOT_INTRO (9)
#define VFD_DOT_CD (3)
//#define VFD_DOT_REP 255//(11)
//#define VFD_DOT_DISC 255//(16)
#define VFD_DOT_DIRR (17)
#define VFD_DOT_DIR (18)
#define VFD_DOT_MP3 (19)
#define VFD_DOT_HEAD (20)
#define VFD_DOT_COMP (21)
#define VFD_DOT_ALL (22)
#define VFD_DOT_WMA (23)
#define VFD_DOT_INTRO (24)
#define VFD_DOT_RAN (25)
#define VFD_DOT_PGM (26)
#define VFD_DOT_AM (27)
#define VFD_DOT_LOCK (28)
#define VFD_DOT_FM (29)
#define VFD_DOT_MIC (30)
#define VFD_DOT_VCD (31)
#define VFD_DOT_BAT (35)
#define VFD_DOT_BAT1 (43)
#define VFD_DOT_BAT2 (51)
#define VFD_DOT_BAT3 (59)
#define VFD_DOT_COLON (67)
#define VFD_DOT_U (75)
#define VFD_DOT_U5 (83)
#define VFD_DOT_U4 (88)
#define VFD_DOT_U3 (89)
#define VFD_DOT_U2 (90)
#define VFD_DOT_U1 (91)
#define VFD_DOT_PBC (255)
//#define VFDA_P0 1
//#define VFDA_P1 0
//#define VFDA_M0 5
//#define VFDA_M1 4
//#define VFDA_S0 7
//#define VFDA_S1 6
extern BYTE Select_Dir_flag; //zhg 2002/09/26 13:50
const BYTE vfd_addr[9] = { 0, 1, 4, 5, 6, 7, 8, 9, 10 };
void print_vfd_digital(BYTE no, BYTE data)
{
if(no < 9)
{
vfd_mem[vfd_addr[no]] &= (~0xf7);
vfd_mem[vfd_addr[no]] |= (vfd_digit[data]);
}
else
{
vfd_mem[vfd_addr[no - 9]] &= (~0xf7);
}
}
void vfd_disc_turn(BYTE mode)
{
static BYTE i = 7;
if(ircmd_5s_timer) ////jasing 02-09-25-sentence
return;
if(i < 2)
i = 7;
if(mode == 2)
{
//vfd_mem[1]=0xfe;
//vfd_mem[1]&=(~(1<<(i%8)));
i--;
switch (i)
{
case 1:
vfd_dot(VFD_DOT_ON, VFD_DOT_COLON);
break;
case 4:
vfd_dot(VFD_DOT_OFF, VFD_DOT_COLON);
default:
break;
}
}
else if(mode == 1)
{
//vfd_mem[1]=0xfe;
vfd_dot(VFD_DOT_ON, VFD_DOT_COLON);
}
else if(mode == 0)
{
//vfd_mem[1]=0xfe;
vfd_dot(VFD_DOT_OFF, VFD_DOT_COLON);
}
}
void vfd_cdtype(BYTE cd_types)
{
switch (cd_types)
{
// case CDCVD:
// case CDSVCD:
// vfd_dot(VFD_DOT_ON,VFD_DOT_SVCD);
// break;
case CDVCD10:
case CDVCD11:
case CDVCD20:
vfd_dot(VFD_DOT_ON, VFD_DOT_VCD);
break;
case CDDA:
vfd_dot(VFD_DOT_ON, VFD_DOT_CD);
break;
case CDVCD30:
break;
case CDROM:
vfd_dot(VFD_DOT_ON, VFD_DOT_MP3);
vfd_dot(VFD_DOT_ON, VFD_DOT_DIRR);
vfd_dot(VFD_DOT_ON, VFD_DOT_U);
break;
}
}
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_readtoc(void)
{
//int i;
init_vfd_clear(0);
vfd_disc_turn(0);
//for(i=0;i<7;i++)
// vfd_mem[vfd_addr[i]]|=VFD_7SEG_SG;
print_vfd_digital(5, 27);
print_vfd_digital(6, 14);
print_vfd_digital(7, 10);
print_vfd_digital(8, 13);
}
void vfd_nodisc(void)
{
print_vfd_digital(2, 23);
print_vfd_digital(3, 24);
print_vfd_digital(5, 13);
print_vfd_digital(6, 18);
print_vfd_digital(7, 28);
print_vfd_digital(8, 12);
}
void vfd_open(void)
{
print_vfd_digital(5, 24);
print_vfd_digital(6, 25);
print_vfd_digital(7, 14);
print_vfd_digital(8, 23);
}
void vfd_show_time(void)
{
static BYTE cd_time_ss = 0xff; //0; wyf 2-4-1 15:57
if(ircmd_5s_timer) //jasing 02-09-25-sentence
return;
if(cd_disp_ss != cd_time_ss)
{
if(cd_type_loaded == CDROM) //zhg 2002/09/25 16:04
{
print_vfd_digital(0, Gmem.gmp3.mp3_dir_now / 10);
print_vfd_digital(1, Gmem.gmp3.mp3_dir_now % 10);
print_vfd_digital(2, Gmem.gmp3.mp3_trk_now / 100);
print_vfd_digital(3, (Gmem.gmp3.mp3_trk_now % 100) / 10);
print_vfd_digital(4, (Gmem.gmp3.mp3_trk_now % 100) % 10);
}
cd_time_ss = cd_disp_ss;
if(cd_type_loaded != CDROM) //zhg 2002/09/25 16:04
{
print_vfd_digital(2, cd_disp_trk / 100);
print_vfd_digital(3, cd_disp_trk / 10);
print_vfd_digital(4, cd_disp_trk % 10);
}
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);
}
// else
if((IsNMIntro()) || (Select_Dir_flag & 0x02)) //zhyf 2-10-25 14:56
vfd_dot(VFD_DOT_ON, VFD_DOT_INTRO);
else if(IsKYRand())
vfd_dot(VFD_DOT_ON, VFD_DOT_RAN);
else
{
vfd_dot(VFD_DOT_OFF, VFD_DOT_RAN);
vfd_dot(VFD_DOT_OFF, VFD_DOT_INTRO);
}
}
void vfd_pause(void)
{
vfd_dot(VFD_DOT_ON, VFD_DOT_PAUSE);
vfd_dot(VFD_DOT_OFF, VFD_DOT_PLAY);
}
void vfd_audio(void)
{
switch (audio_channel)
{
case CH_LR:
vfd_dot(VFD_DOT_ON, VFD_DOT_1L);
vfd_dot(VFD_DOT_ON, VFD_DOT_2R);
break;
#ifdef VOCAL_CANCEL
case CH_AUTO_L:
#endif
case CH_LL:
vfd_dot(VFD_DOT_ON, VFD_DOT_1L);
vfd_dot(VFD_DOT_OFF, VFD_DOT_2R);
break;
#ifdef VOCAL_CANCEL
case CH_AUTO_R:
#endif
case CH_RR:
vfd_dot(VFD_DOT_OFF, VFD_DOT_1L);
vfd_dot(VFD_DOT_ON, VFD_DOT_2R);
break;
#ifdef VOCAL_CANCEL
case CH_AUTO_LR:
vfd_dot(VFD_DOT_ON, VFD_DOT_1L);
vfd_dot(VFD_DOT_ON, VFD_DOT_2R);
break;
#endif
}
}
void vfd_format(void)
{
if(tv_format == TV_NTSC)
{
vfd_dot(VFD_DOT_ON, VFD_DOT_NTSC);
vfd_dot(VFD_DOT_OFF, VFD_DOT_PAL);
}
else if(tv_format == TV_PAL)
{
vfd_dot(VFD_DOT_ON, VFD_DOT_PAL);
vfd_dot(VFD_DOT_OFF, VFD_DOT_NTSC);
}
}
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);
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?