?? vfd_51.c
字號:
vfd_b_stb = 0;
serial_out(VFD_B, COMMAND4 | DISPLAY_ON | duty_buf); //command 4, duty
vfd_b_stb = 1;
}
}
void display_init(void)
{
unsigned char wra;
vfd_a_stb = 0;
serial_out(VFD_A, COMMAND2 | INC_ADDR | W_DISP); //command 2
vfd_a_stb = 1;
delay_short(2);
vfd_a_stb = 0;
serial_out(VFD_A, COMMAND3 | 0x00); //command 3
for(wra=0; wra<2; wra++)
{
serial_out(VFD_A, 0x00); //data
}
vfd_a_stb = 1;
delay_short(2);
vfd_a_stb = 0;
serial_out(VFD_A, COMMAND1 | DIG5); //command 1, 8dig, 24seg
vfd_a_stb = 1;
delay_short(2);
vfd_a_stb = 0;
serial_out(VFD_A, COMMAND4 | DISPLAY_ON | duty_buf); //command 4, duty
vfd_a_stb = 1;
vfd_b_stb = 0;
serial_out(VFD_B, COMMAND2 | INC_ADDR | W_DISP); //command 2
vfd_b_stb = 1;
delay_short(2);
vfd_b_stb = 0;
serial_out(VFD_B, COMMAND3 | 0x00); //command 3
for(wra=0; wra<2; wra++)
{
serial_out(VFD_B, 0x00); //data
}
vfd_b_stb = 1;
delay_short(2);
vfd_b_stb = 0;
serial_out(VFD_B, COMMAND1 | DIG5); //command 1, 8dig, 24seg
vfd_b_stb = 1;
delay_short(2);
vfd_b_stb = 0;
serial_out(VFD_B, COMMAND4 | DISPLAY_ON | duty_buf); //command 4, duty
vfd_b_stb = 1;
delay_short(2);
vfd_a_stb = 0; //all display show
serial_out(VFD_A, COMMAND2 | INC_ADDR | W_DISP); //command 2
vfd_a_stb = 1;
delay_short(2);
vfd_a_stb = 0;
serial_out(VFD_A, COMMAND3 | 0x00); //command 3
for(wra=0; wra<2; wra++)
{
serial_out(VFD_A, 0xff); //data
}
vfd_a_stb = 1;
vfd_b_stb = 0; //all display show
serial_out(VFD_B, COMMAND2 | INC_ADDR | W_DISP); //command 2
vfd_b_stb = 1;
delay_short(2);
vfd_b_stb = 0;
serial_out(VFD_B, COMMAND3 | 0x00); //command 3
for(wra=0; wra<2; wra++)
{
serial_out(VFD_B, 0xff); //data
}
vfd_b_stb = 1;
delay_long(50000);
vfd_a_stb = 0; //all display dark
serial_out(VFD_A, COMMAND2 | INC_ADDR | W_DISP); //command 2
vfd_a_stb = 1;
delay_short(2);
vfd_a_stb = 0;
serial_out(VFD_A, COMMAND3 | 0x00); //command 3
for(wra=0; wra<2; wra++)
{
serial_out(VFD_A, 0x00); //data
}
vfd_a_stb = 1;
vfd_b_stb = 0; //all display dark
serial_out(VFD_B, COMMAND2 | INC_ADDR | W_DISP); //command 2
vfd_b_stb = 1;
delay_short(2);
vfd_b_stb = 0;
serial_out(VFD_B, COMMAND3 | 0x00); //command 3
for(wra=0; wra<2; wra++)
{
serial_out(VFD_B, 0x00); //data
}
vfd_b_stb = 1;
}
void display(void)
{
// unsigned char wra;
if(f_dispupdata)
{
f_dispupdata = 0;
switch (mode)
{
case 0x00:
vfd_b_stb = 0;
serial_out(VFD_B, COMMAND2 | FIX_ADDR | W_DISP); //command 2
vfd_b_stb = 1;
delay_short(2);
vfd_b_stb = 0;
serial_out(VFD_B, COMMAND3 | 0x00); //command 3
serial_out(VFD_B, 0xff); //data
vfd_b_stb = 1;
delay_short(2);
vfd_b_stb = 0;
serial_out(VFD_B, COMMAND3 | 0x03); //command 3
serial_out(VFD_B, 0x00); //data
vfd_b_stb = 1;
vfd_a_stb = 0;
serial_out(VFD_A, COMMAND2 | FIX_ADDR | W_DISP); //command 2
vfd_a_stb = 1;
delay_short(2);
vfd_a_stb = 0;
serial_out(VFD_A, COMMAND3 | 0x07); //command 3
serial_out(VFD_A, 0x00); //data
vfd_a_stb = 1;
delay_short(2);
vfd_a_stb = 0;
serial_out(VFD_A, COMMAND3 | 0x0a); //command 3
serial_out(VFD_A, 0xff); //data
vfd_a_stb = 1;
break;
case 0x01:
vfd_b_stb = 0;
serial_out(VFD_B, COMMAND2 | FIX_ADDR | W_DISP); //command 2
vfd_b_stb = 1;
delay_short(2);
vfd_b_stb = 0;
serial_out(VFD_B, COMMAND3 | 0x00); //command 3
serial_out(VFD_B, 0xff); //data
vfd_b_stb = 1;
delay_short(2);
vfd_b_stb = 0;
serial_out(VFD_B, COMMAND3 | 0x03); //command 3
serial_out(VFD_B, 0xff); //data
vfd_b_stb = 1;
//delay_short(2);
vfd_a_stb = 0;
serial_out(VFD_A, COMMAND2 | FIX_ADDR | W_DISP); //command 2
vfd_a_stb = 1;
delay_short(2);
vfd_a_stb = 0;
serial_out(VFD_A, COMMAND3 | 0x07); //command 3
serial_out(VFD_A, 0xff); //data
vfd_a_stb = 1;
delay_short(2);
vfd_a_stb = 0;
serial_out(VFD_A, COMMAND3 | 0x0a); //command 3
serial_out(VFD_A, 0xff); //data
vfd_a_stb = 1;
break;
case 0x02:
if(f_dispshow)
{
vfd_a_stb = 0;
vfd_b_stb = 0;
serial_out(VFD_B, COMMAND2 | FIX_ADDR | W_DISP); //command 2
vfd_b_stb = 1;
delay_short(2);
vfd_b_stb = 0;
serial_out(VFD_B, COMMAND3 | 0x00); //command 3
serial_out(VFD_B, 0xff); //data
vfd_b_stb = 1;
delay_short(2);
vfd_b_stb = 0;
serial_out(VFD_B, COMMAND3 | 0x03); //command 3
serial_out(VFD_B, 0xff); //data
vfd_b_stb = 1;
//delay_short(2);
vfd_a_stb = 0;
serial_out(VFD_A, COMMAND2 | FIX_ADDR | W_DISP); //command 2
vfd_a_stb = 1;
delay_short(2);
vfd_a_stb = 0;
serial_out(VFD_A, COMMAND3 | 0x07); //command 3
serial_out(VFD_A, 0xff); //data
vfd_a_stb = 1;
delay_short(2);
vfd_a_stb = 0;
serial_out(VFD_A, COMMAND3 | 0x0a); //command 3
serial_out(VFD_A, 0xff); //data
vfd_a_stb = 1;
}
else
{
vfd_b_stb = 0;
serial_out(VFD_B, COMMAND2 | FIX_ADDR | W_DISP); //command 2
vfd_b_stb = 1;
delay_short(2);
vfd_b_stb = 0;
serial_out(VFD_B, COMMAND3 | 0x00); //command 3
serial_out(VFD_B, 0x00); //data
vfd_b_stb = 1;
delay_short(2);
vfd_b_stb = 0;
serial_out(VFD_B, COMMAND3 | 0x03); //command 3
serial_out(VFD_B, 0x00); //data
vfd_b_stb = 1;
//delay_short(2);
vfd_a_stb = 0;
serial_out(VFD_A, COMMAND2 | FIX_ADDR | W_DISP); //command 2
vfd_a_stb = 1;
delay_short(2);
vfd_a_stb = 0;
serial_out(VFD_A, COMMAND3 | 0x07); //command 3
serial_out(VFD_A, 0x00); //data
vfd_a_stb = 1;
delay_short(2);
vfd_a_stb = 0;
serial_out(VFD_A, COMMAND3 | 0x0a); //command 3
serial_out(VFD_A, 0x00); //data
vfd_a_stb = 1;
}
break;
case 0x03:
if(f_mode3p1)
{
vfd_b_stb = 0;
serial_out(VFD_B, COMMAND2 | FIX_ADDR | W_DISP); //command 2
vfd_b_stb = 1;
delay_short(2);
vfd_b_stb = 0;
serial_out(VFD_B, COMMAND3 | 0x00); //command 3
serial_out(VFD_B, 0xff); //data
vfd_b_stb = 1;
delay_short(2);
vfd_b_stb = 0;
serial_out(VFD_B, COMMAND3 | 0x03); //command 3
serial_out(VFD_B, 0xff); //data
vfd_b_stb = 1;
//delay_short(2);
vfd_a_stb = 0;
serial_out(VFD_A, COMMAND2 | FIX_ADDR | W_DISP); //command 2
vfd_a_stb = 1;
delay_short(2);
vfd_a_stb = 0;
serial_out(VFD_A, COMMAND3 | 0x07); //command 3
serial_out(VFD_A, 0x00); //data
vfd_a_stb = 1;
delay_short(2);
vfd_a_stb = 0;
serial_out(VFD_A, COMMAND3 | 0x0a); //command 3
serial_out(VFD_A, 0x00); //data
vfd_a_stb = 1;
}
else
{
vfd_b_stb = 0;
serial_out(VFD_B, COMMAND2 | FIX_ADDR | W_DISP); //command 2
vfd_b_stb = 1;
delay_short(2);
vfd_b_stb = 0;
serial_out(VFD_B, COMMAND3 | 0x00); //command 3
serial_out(VFD_B, 0xff); //data
vfd_b_stb = 1;
delay_short(2);
vfd_b_stb = 0;
serial_out(VFD_B, COMMAND3 | 0x03); //command 3
serial_out(VFD_B, 0xff); //data
vfd_b_stb = 1;
//delay_short(2);
vfd_a_stb = 0;
serial_out(VFD_A, COMMAND2 | FIX_ADDR | W_DISP); //command 2
vfd_a_stb = 1;
delay_short(2);
vfd_a_stb = 0;
serial_out(VFD_A, COMMAND3 | 0x07); //command 3
serial_out(VFD_A, 0x00); //data
vfd_a_stb = 1;
delay_short(2);
vfd_a_stb = 0;
serial_out(VFD_A, COMMAND3 | 0x0a); //command 3
serial_out(VFD_A, 0x00); //data
vfd_a_stb = 1;
}
break;
default:
break;
}
}
}
void serial_out(unsigned char vfd_select, unsigned char s_data)
{
register unsigned char i;
switch(vfd_select)
{
case VFD_A:
{
for(i=0; i<8; i++)
{
vfd_a_din = (bit) (s_data & 0x01);
vfd_a_clk = 0;
vfd_a_clk = 1;
s_data = s_data >> 1;
vfd_a_din = 0;
vfd_a_clk = 0;
}
}
break;
case VFD_B:
{
for(i=0; i<8; i++)
{
vfd_b_din = (bit) (s_data & 0x01);
vfd_b_clk = 0;
vfd_b_clk = 1;
s_data = s_data >> 1;
vfd_b_din = 0;
vfd_b_clk = 0;
}
}
break;
default:
break;
}
}
/*
void hex2bcd(unsigned char hexdata)
{
bcd[2] = 0;
while (hexdata >= 100) {hexdata -= 100; bcd[2] = bcd[2] + 1;}
bcd[1] = hexdata / 10;
bcd[0] = hexdata % 10;
}
*/
void delay_short(register unsigned char delays_cnt)
{
while(delays_cnt--)
{
;
}
}
void delay_long(unsigned int delayl_cnt)
{
while(delayl_cnt--)
{
;
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -