Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
09/21/11 11:35
Read: times


 
#183830 - code
Responding to: ???'s previous message
Sure. I post the code here.I exactly define flickering means like something that is not continuosly displays.Like ,like starts twinkles at night.Their lights are not consistant.Same way when I display something on VFD it displays completly i.e when I send code for 0 it displays 0 at defined address.but it is not consistent.I have datasheet but it is physical copy so that I can't show you.The Intention of controlling the GRID voltage is to pass current for display.If you make continuosly high to GRID it will demage.If you continuously make it low display doesn't glow.So you have to make high & low the GRID line to make display on.


#include <c:c51incstdio.h>
#include <c:c51increg52.h>
#include <c:c51incintrins.h>

#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long int

#define CS      P24
#define CLK     P25
#define DATA    P26
#define GRID    P20

uchar   ms100,
        datareg,
        data_buffer1,
        vfdcounter;

uint    ms10;

bit     firsttime;

int     init_vfd(),        
        write_vfd1(),
        data2vfd(),
        display();

init_vfd()
{
CS = 0;

data_buffer1 = 0x05;    //9 digit & 13 segment selection
data2vfd();

CS = 1;
}

write_vfd1()
{
CS = 0;

data_buffer1 = 0x44;    //fix address type
data2vfd();

CS = 1;

_nop_();
_nop_();

CS = 0;

data_buffer1 = 0xc0;   //dispaly address 0
data2vfd();

data_buffer1 = datareg; //actual data to write
data2vfd();

CS = 1;

_nop_();
_nop_();

CS = 0;

data_buffer1 = 0x8f;    //display on & pulsewidth = 14/16
data2vfd();             

CS = 1;
}

data2vfd()
{
vfdcounter = 0x08;
while(vfdcounter != 0)
        {        
        CLK = 0;

        DATA = data_buffer1 & 0x01;

        CLK = 1;

        --vfdcounter;

        data_buffer1 = data_buffer1 >> 1;       //left shift
        }
}                                   

void main(void)
{
SP = 0xa0;

TMOD = 0x01;    //0000 0001

TR0 = 1;

TH0 = 0xec;
TL0 = 0x78;

P0 = 0xff;
P1 = 0xff;
P2 = 0xff;
P3 = 0xff;

init_vfd();

P37 = 0;                        //Not the part of VFD program

firsttime = 1;

IE = 0x82;

for(;;);        
}

timecalc() interrupt 1 using 1
{
TH0 = 0xfc;
TL0 = 0x17;

GRID = 1;
++ms100;
if(ms100 == 15)
        {
        GRID = 0;
        ms100 = 0;
        display();
        }
}

display()
{
if(firsttime)
        {
        datareg = 0x3f; //code for 0
        write_vfd1();
        firsttime = 0;
        }
}




List of 25 messages in thread
TopicAuthorDate
How to control Grid voltage of VFD            01/01/70 00:00      
   what You mean?            01/01/70 00:00      
   bought as module or built by you?            01/01/70 00:00      
      voltage is steady            01/01/70 00:00      
         RE: "I purchase it from market"            01/01/70 00:00      
   I have            01/01/70 00:00      
   how            01/01/70 00:00      
   code            01/01/70 00:00      
      GO OUT FROM INTERRUPT            01/01/70 00:00      
   filament power ?            01/01/70 00:00      
      ISR changed, FILAMENT IS...            01/01/70 00:00      
   Link about VFD            01/01/70 00:00      
      what i should read there?            01/01/70 00:00      
         Same problem with modified code            01/01/70 00:00      
   Work on hardware            01/01/70 00:00      
      show pictures            01/01/70 00:00      
      DC connection            01/01/70 00:00      
         Near to solution            01/01/70 00:00      
            just a thought            01/01/70 00:00      
               Thanks            01/01/70 00:00      
                  Modified program            01/01/70 00:00      
                     make report            01/01/70 00:00      
                        about Filament            01/01/70 00:00      
                           RE:about filament            01/01/70 00:00      
                              PWM            01/01/70 00:00      

Back to Subject List