?? vfd.h
字號:
#include "I2C.H"
unsigned char code vfd[]={0xEE,0x48,0xD6,0xDA,0x78,0xBA,0xBE,0xC8,0xFE,0xFA,0};
unsigned char code vfd2[]={0x3F,0x14,0x5B,0x5D,0x74,0x6D,0x6F,0x1C,0x7F,0x7D,0};
/////////////////////
#define dat P2_6
#define clk P2_7
#define stb P1_5
uchar shi=12,fen=0,miao=0;
uchar bdata die=1;
sbit dot3=die^3;
bit off_duty=0;
bit AM;
////////////////
tx_1bit(bit i)
{
clk=0;
dat=i;
clk=1;
}
////////////////
tx_6bit(uchar i)
{
uchar k;
delay(2);
for (k=0;k<6;k++)
{
clk=0;
dat=i&1;
clk=1;
i>>=1;
}
clk=1;
dat=1;
}
////////////////
tx_7bit(uchar i)
{
uchar k;
delay(2);
for (k=0;k<7;k++)
{
clk=0;
dat=i&1;
clk=1;
i>>=1;
}
clk=1;
dat=1;
}
/////////////////txd 1 byte //////////////
tx_1byte(uchar i)
{ uchar k;
delay(2);
for (k=0;k<8;k++)
{
clk=0;
dat=i&1;
clk=1;
i>>=1;
}
clk=1;
dat=1;
}
////////////////////////
uchar r_key_val()
{
uchar i,op=0;
stb=0;
tx_1byte(0x42);// DATA SETTING COMMANDS
delay(1);
for(i=0;i<8;i++)
{
op<<=1;
clk=0;
_nop_();
clk=1;
op|=dat;
}
stb=1;
return op;
}
///////////
/*uchar r_key_val(uchar *key_val)
{ uchar p;
stb=0;
tx_1byte(0x42);// DATA SETTING COMMANDS
delay(1);
for(p=0;p<15;p++)
{
;
}
p=rx_1byte();
stb=1;
return p;
} */
////////////////////////init
void init_vfd()
{
delay(5);
stb=0;
tx_1byte(2);// DISPLAY MODE SETTING COMMANDS
stb=1;
delay(1);
stb=0;
tx_1byte(0x40);// DATA SETTING COMMANDS
stb=1;
delay(5);
stb=0;
tx_1byte(0x8f);//DISPLAY CONTROL COMMANDS
stb=1;
}
///////////////////////////
display()
{ uchar h,i;
init_vfd() ;
for(h=0;h<10;h++)
{
stb=0;
tx_1byte(0xc0); //ADDRESS SETTING COMMANDS
delay(1);
tx_1bit(1);
if(off_duty==1)
{
tx_1byte(255);//1
tx_6bit(255);
tx_1bit(1);
}
else
{
tx_1byte(0);//1
tx_6bit(0);
tx_1bit(0);
}
tx_1byte(0);//2
tx_1byte(0);
tx_1bit(0);
tx_1byte(vfd[miao/10]);//3
tx_7bit (vfd2[miao%10]);
tx_1bit(0);
tx_1byte(vfd[fen%10]);//4
tx_6bit(0);
tx_1bit(AM);
tx_1bit(0);
tx_1byte((vfd[shi%10])|0x1);//5
tx_7bit (vfd2[fen/10]);
tx_1bit(0);
i= shi/10;
if(i==0)i=10;
tx_1byte(vfd[i]);//6
tx_6bit(die&7);
tx_1bit(dot3);
stb=1;
}
}
//////////////////////////////
test_display()
{ uchar k;
init_vfd() ;
stb=0;
tx_1byte(0xc0); //ADDRESS SETTING COMMANDS
delay(1);
for(k=0;k<12;k++)
{
tx_1byte(255);
delay(1);
}
stb=1;
delay(30000);
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -