📄 pt6311.c
字号:
PD6311_WRITE(vfd_tvip[1][1]);
em86xx_gpio_write(PD6311_STB,1);
break;
case VFD_DISPLAY_VGA_480:
tv_mode =4;
delay_ms(100);
em86xx_gpio_write(PD6311_STB,0);
PD6311_WRITE(DIGITS4_L|0xc0);
delay_ms(100);
PD6311_WRITE(vfd_vgamode[0][0]);
em86xx_gpio_write(PD6311_STB,1);
delay_ms(100);
em86xx_gpio_write(PD6311_STB,0);
PD6311_WRITE(DIGITS4_H|0xc0);
delay_ms(100);
PD6311_WRITE(vfd_vgamode[0][1]);
em86xx_gpio_write(PD6311_STB,1);
delay_ms(100);
em86xx_gpio_write(PD6311_STB,0);
PD6311_WRITE(DIGITS3_L|0xc0);
delay_ms(100);
PD6311_WRITE(vfd_vgaip[0][0]);
em86xx_gpio_write(PD6311_STB,1);
delay_ms(100);
em86xx_gpio_write(PD6311_STB,0);
PD6311_WRITE(DIGITS3_H|0xc0);
delay_ms(100);
PD6311_WRITE(vfd_vgaip[0][1]);
em86xx_gpio_write(PD6311_STB,1);
break;
case VFD_DISPLAY_VGA_600:
tv_mode =4;
delay_ms(100);
em86xx_gpio_write(PD6311_STB,0);
PD6311_WRITE(DIGITS4_L|0xc0);
delay_ms(100);
PD6311_WRITE(vfd_vgamode[1][0]);
em86xx_gpio_write(PD6311_STB,1);
delay_ms(100);
em86xx_gpio_write(PD6311_STB,0);
PD6311_WRITE(DIGITS4_H|0xc0);
delay_ms(100);
PD6311_WRITE(vfd_vgamode[1][1]);
em86xx_gpio_write(PD6311_STB,1);
delay_ms(100);
em86xx_gpio_write(PD6311_STB,0);
PD6311_WRITE(DIGITS3_L|0xc0);
delay_ms(100);
PD6311_WRITE(vfd_vgaip[0][0]);
em86xx_gpio_write(PD6311_STB,1);
delay_ms(100);
em86xx_gpio_write(PD6311_STB,0);
PD6311_WRITE(DIGITS3_H|0xc0);
delay_ms(100);
PD6311_WRITE(vfd_vgaip[0][1]);
em86xx_gpio_write(PD6311_STB,1);
break;
case VFD_DISPLAY_VGA_768:
tv_mode =6;
delay_ms(100);
em86xx_gpio_write(PD6311_STB,0);
PD6311_WRITE(DIGITS4_L|0xc0);
delay_ms(100);
PD6311_WRITE(vfd_vgamode[2][0]);
em86xx_gpio_write(PD6311_STB,1);
delay_ms(100);
em86xx_gpio_write(PD6311_STB,0);
PD6311_WRITE(DIGITS4_H|0xc0);
delay_ms(100);
PD6311_WRITE(vfd_vgamode[2][1]);
em86xx_gpio_write(PD6311_STB,1);
delay_ms(100);
em86xx_gpio_write(PD6311_STB,0);
PD6311_WRITE(DIGITS3_L|0xc0);
delay_ms(100);
PD6311_WRITE(vfd_vgaip[2][0]);
em86xx_gpio_write(PD6311_STB,1);
delay_ms(100);
em86xx_gpio_write(PD6311_STB,0);
PD6311_WRITE(DIGITS3_H|0xc0);
delay_ms(100);
PD6311_WRITE(vfd_vgaip[2][1]);
em86xx_gpio_write(PD6311_STB,1);
break;
case VFD_DISPLAY_VGA_1024:
tv_mode =5;
delay_ms(100);
em86xx_gpio_write(PD6311_STB,0);
PD6311_WRITE(DIGITS4_L|0xc0);
delay_ms(100);
PD6311_WRITE(vfd_vgamode[3][0]);
em86xx_gpio_write(PD6311_STB,1);
delay_ms(100);
em86xx_gpio_write(PD6311_STB,0);
PD6311_WRITE(DIGITS4_H|0xc0);
delay_ms(100);
PD6311_WRITE(vfd_vgamode[3][1]);
em86xx_gpio_write(PD6311_STB,1);
delay_ms(100);
em86xx_gpio_write(PD6311_STB,0);
PD6311_WRITE(DIGITS3_L|0xc0);
delay_ms(100);
PD6311_WRITE(vfd_vgaip[1][0]);
em86xx_gpio_write(PD6311_STB,1);
delay_ms(100);
em86xx_gpio_write(PD6311_STB,0);
PD6311_WRITE(DIGITS3_H|0xc0);
delay_ms(100);
PD6311_WRITE(vfd_vgaip[1][1]);
em86xx_gpio_write(PD6311_STB,1);
break;
case VFD_DISPLAY_VGA_1200:
tv_mode =4;
delay_ms(100);
em86xx_gpio_write(PD6311_STB,0);
PD6311_WRITE(DIGITS4_L|0xc0);
delay_ms(100);
PD6311_WRITE(vfd_vgamode[4][0]);
em86xx_gpio_write(PD6311_STB,1);
delay_ms(100);
em86xx_gpio_write(PD6311_STB,0);
PD6311_WRITE(DIGITS4_H|0xc0);
delay_ms(100);
PD6311_WRITE(vfd_vgamode[4][1]);
em86xx_gpio_write(PD6311_STB,1);
delay_ms(100);
em86xx_gpio_write(PD6311_STB,0);
PD6311_WRITE(DIGITS3_L|0xc0);
delay_ms(100);
PD6311_WRITE(vfd_vgaip[0][0]);
em86xx_gpio_write(PD6311_STB,1);
delay_ms(100);
em86xx_gpio_write(PD6311_STB,0);
PD6311_WRITE(DIGITS3_H|0xc0);
delay_ms(100);
PD6311_WRITE(vfd_vgaip[0][1]);
em86xx_gpio_write(PD6311_STB,1);
break;
case VFD_DISPLAY_576I:
tv_mode =3;
delay_ms(100);
em86xx_gpio_write(PD6311_STB,0);
PD6311_WRITE(DIGITS4_L|0xc0);
delay_ms(100);
PD6311_WRITE(vfd_vgamode[5][0]);
em86xx_gpio_write(PD6311_STB,1);
delay_ms(100);
em86xx_gpio_write(PD6311_STB,0);
PD6311_WRITE(DIGITS4_H|0xc0);
delay_ms(100);
PD6311_WRITE(vfd_vgamode[5][1]);
em86xx_gpio_write(PD6311_STB,1);
delay_ms(100);
em86xx_gpio_write(PD6311_STB,0);
PD6311_WRITE(DIGITS3_L|0xc0);
delay_ms(100);
PD6311_WRITE(vfd_tvip[3][0]);
em86xx_gpio_write(PD6311_STB,1);
delay_ms(100);
em86xx_gpio_write(PD6311_STB,0);
PD6311_WRITE(DIGITS3_H|0xc0);
delay_ms(100);
PD6311_WRITE(vfd_tvip[3][1]);
em86xx_gpio_write(PD6311_STB,1);
break;
}
/////////////////////////////////////////////////////////
delay_ms(100);
em86xx_gpio_write(PD6311_STB,0);
PD6311_WRITE(0x0b);
em86xx_gpio_write(PD6311_STB,1);
delay_ms(100);
em86xx_gpio_write(PD6311_STB,0);
PD6311_WRITE(0x8e);
em86xx_gpio_write(PD6311_STB,1);
}
void VFD_DisplayTime(unsigned char hour,unsigned char min,unsigned char sec)
{
int min_high, min_low, sec_high, sec_low;
int tvmode = tv_mode;
min_high = min/10;
min_low = min%10;
sec_high = sec/10;
sec_low = sec%10;
em86xx_gpio_setdirection(PD6311_STB,1);
em86xx_gpio_setdirection(PD6311_DIN,1);
em86xx_gpio_setdirection(PD6311_CLK,1);
delay_ms(200);
em86xx_gpio_write(PD6311_STB,0);
PD6311_WRITE(0x44);
em86xx_gpio_write(PD6311_STB,1);
/////////////////////////////////////////////////////////
delay_ms(100);
em86xx_gpio_write(PD6311_STB,0);
PD6311_WRITE(0x00|0xc0);
delay_ms(100);
PD6311_WRITE((vfd_hour[hour][0]|vfd_min_high[min_high][0]));
em86xx_gpio_write(PD6311_STB,1);
delay_ms(100);
em86xx_gpio_write(PD6311_STB,0);
PD6311_WRITE(0x01|0xc0);
delay_ms(100);
PD6311_WRITE((vfd_hour[hour][1])|(vfd_min_high[min_high][1]));
em86xx_gpio_write(PD6311_STB,1);
delay_ms(100);
em86xx_gpio_write(PD6311_STB,0);
PD6311_WRITE(0x03|0xc0);
delay_ms(100);
PD6311_WRITE((vfd_min_low[min_low][0])|(vfd_sec_high[sec_high][0]));
em86xx_gpio_write(PD6311_STB,1);
delay_ms(100);
em86xx_gpio_write(PD6311_STB,0);
PD6311_WRITE(0x04|0xc0);
delay_ms(100);
PD6311_WRITE((vfd_min_low[min_low][1]|vfd_sec_high[sec_high][1]));
em86xx_gpio_write(PD6311_STB,1);
delay_ms(100);
em86xx_gpio_write(PD6311_STB,0);
PD6311_WRITE(0x06|0xc0);
delay_ms(100);
PD6311_WRITE((vfd_sec_low[sec_low][0]|vfd_tvip[tvmode][0]));
em86xx_gpio_write(PD6311_STB,1);
delay_ms(100);
em86xx_gpio_write(PD6311_STB,0);
PD6311_WRITE(0x07|0xc0);
delay_ms(100);
PD6311_WRITE((vfd_sec_low[sec_low][1]|vfd_tvip[tvmode][1]));
em86xx_gpio_write(PD6311_STB,1);
/////////////////////////////////////////////////////////
delay_ms(100);
em86xx_gpio_write(PD6311_STB,0);
PD6311_WRITE(0x0b);
em86xx_gpio_write(PD6311_STB,1);
delay_ms(100);
em86xx_gpio_write(PD6311_STB,0);
PD6311_WRITE(0x8e);
em86xx_gpio_write(PD6311_STB,1);
}
void PD6311_Init(void)
{
int i=0;
em86xx_gpio_setdirection(PD6311_STB,1);
em86xx_gpio_setdirection(PD6311_DIN,1);
em86xx_gpio_setdirection(PD6311_CLK,1);
vfd_delay_ms(200);
em86xx_gpio_write(PD6311_STB,0);
PD6311_WRITE(0x40);
em86xx_gpio_write(PD6311_STB,1);
vfd_delay_ms(100);
em86xx_gpio_write(PD6311_STB,0);
PD6311_WRITE(0xc0);
vfd_delay_ms(100);
for(i=0;i<48;i++)
{
vfd_delay_ms(100);
PD6311_WRITE(0x00);
}
em86xx_gpio_write(PD6311_STB,1);
vfd_delay_ms(100);
em86xx_gpio_write(PD6311_STB,0);
PD6311_WRITE(0x0b);
em86xx_gpio_write(PD6311_STB,1);
vfd_delay_ms(100);
em86xx_gpio_write(PD6311_STB,0);
PD6311_WRITE(0x8e);
em86xx_gpio_write(PD6311_STB,1);
}
void PD6311_SetSW(void)
{
//int i=0;
em86xx_gpio_setdirection(PD6311_STB,1);
em86xx_gpio_setdirection(PD6311_DIN,1);
em86xx_gpio_setdirection(PD6311_CLK,1);
delay_ms(200);
em86xx_gpio_write(PD6311_STB,0);
PD6311_WRITE(0x41); //commod 2
delay_ms(100);
if(vfd_ON_OFF == 0)
{
PD6311_WRITE(0x00);
vfd_ON_OFF = 1;
}
else
{
PD6311_WRITE(0x01);
vfd_ON_OFF = 0;
}
em86xx_gpio_write(PD6311_STB,1);
}
void PD6311_OFF(unsigned int On_Off)
{
//int i=0;
em86xx_gpio_setdirection(PD6311_STB,1);
em86xx_gpio_setdirection(PD6311_DIN,1);
em86xx_gpio_setdirection(PD6311_CLK,1);
delay_ms(200);
em86xx_gpio_write(PD6311_STB,0);
PD6311_WRITE(0x41); //commod 2
delay_ms(100);
if(On_Off== 1)
PD6311_WRITE(0x00);
else
PD6311_WRITE(0x01);
em86xx_gpio_write(PD6311_STB,1);
}
void Check_Playing(void)
{
#if 0
em86xx_gpio_write(3,1);
#endif
}
void Check_Stop(void)
{
#if 0
em86xx_gpio_write(3,0);
#endif
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -