binary to hex display decoder

Discussion in 'General Electronics Chat' started by Robin Mitchell, Jan 12, 2011.

  1. Robin Mitchell

    Thread Starter Well-Known Member

    Oct 25, 2009
    734
    200
    Are there any four bit to hex display chips for seven seg displays?
    There are none in the 4000 series so....any around?
     
  2. blueroomelectronics

    AAC Fanatic!

    Jul 22, 2007
    1,758
    98
    The very old and expensive TIL311 was the closest thing I found. There was a discussion here awhile back on using a PIC.
     
  3. Robin Mitchell

    Thread Starter Well-Known Member

    Oct 25, 2009
    734
    200
    what retard in the electornics industry decided to make EVERY BLOODY seven seg decoder not use HEX....its the most bloody used thing!
     
  4. Markd77

    Senior Member

    Sep 7, 2009
    2,803
    594
  5. tom66

    Senior Member

    May 9, 2009
    2,613
    214
    The guy who said, "This chip needs to be fast, and low cost. We can omit hex, because very few people count hex."
     
  6. Robin Mitchell

    Thread Starter Well-Known Member

    Oct 25, 2009
    734
    200
    Z80!!!! All processors!!! Assembly!!!!!
    We all need hex!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     
  7. SgtWookie

    Expert

    Jul 17, 2007
    22,182
    1,728
  8. spinnaker

    AAC Fanatic!

    Oct 29, 2009
    4,887
    1,017
    Just use a shift register. That us what I did. I have code for a PIC. Just let me know if you are interested.
     
  9. blueroomelectronics

    AAC Fanatic!

    Jul 22, 2007
    1,758
    98
    The MAX6954 is an SPI to seven segment driver. The OP wants binary.
     
  10. Markd77

    Senior Member

    Sep 7, 2009
    2,803
    594
    There are a couple of results if you search for MC14495 on ebay
    Bit pricey, but does the job.
     
  11. Robin Mitchell

    Thread Starter Well-Known Member

    Oct 25, 2009
    734
    200
    I just made a PIC program where it can drive up to 16 seven seg diplays. It needs four IO ports (A to D) and you have the following:
    Port A - 8 bit binary number
    Port B - The address to save the number / the other four pins are control
    Port C - The address selector ( selects which dispaly you want to drive)
    Port D - The seven seg out

    the trick is to split the 8 bit number into two four bit numbers and then save the first fourbit number into address (x) and the second number into address(x+1)

    So when it displays the hex you get an 8 bit number into two hex displays :D
    What do ya think...its also my first free product :D for the PIC18F45K20
     
  12. tom66

    Senior Member

    May 9, 2009
    2,613
    214
    It seems you started liking microcontrollers after you fixed all of your problems with the PICkit 3... :)
     
  13. Robin Mitchell

    Thread Starter Well-Known Member

    Oct 25, 2009
    734
    200
    yup...thanks tom :D
     
  14. spinnaker

    AAC Fanatic!

    Oct 29, 2009
    4,887
    1,017


    So that is 24 pins??? Yikes!

    I would think you could do better with POV. You would probably want t a decoder chip or two to select each of the displays.
     
  15. Robin Mitchell

    Thread Starter Well-Known Member

    Oct 25, 2009
    734
    200
    but its a damn good chip :D
    I could use a tiny pic which would take a single Hex number in and drive a single display...this one is for use with cpus like z80 so seeing the data is easier...
     
  16. MMcLaren

    Well-Known Member

    Feb 14, 2010
    759
    116
    Sorry for the late reply but I just wanted to mention that this old design works quite well... Use two of them to display a 16-bit number (example silkscreen below)...

    Regards, Mike

    [​IMG]
    [​IMG]

    Code ( (Unknown Language)):
    1. ;
    2. ;  // psuedo C code program example
    3. ;
    4. ;  char DigSel = 0;                     // digit select, 0 or 128
    5. ;
    6. ;  char SegData [] = { 0b00111111,      // "0"   -|-|F|E|D|C|B|A
    7. ;                      0b00000110,      // "1"   -|-|-|-|-|C|B|-
    8. ;                      0b01011011,      // "2"   -|G|-|E|D|-|B|A
    9. ;                      0b01001111,      // "3"   -|G|-|-|D|C|B|A
    10. ;                      0b01100110,      // "4"   -|G|F|-|-|C|B|-
    11. ;                      0b01101101,      // "5"   -|G|F|-|D|C|-|A
    12. ;                      0b01111101,      // "6"   -|G|F|E|D|C|-|A
    13. ;                      0b00000111,      // "7"   -|-|-|-|-|C|B|A
    14. ;                      0b01111111,      // "8"   -|G|F|E|D|C|B|A
    15. ;                      0b01101111,      // "9"   -|G|F|-|D|C|B|A
    16. ;                      0b01110111,      // "A"   -|G|F|E|-|C|B|A
    17. ;                      0b01111100,      // "b"   -|G|F|E|D|C|-|-
    18. ;                      0b00111001,      // "C"   -|-|F|E|D|-|-|A
    19. ;                      0b01011110,      // "d"   -|G|-|E|D|C|B|-
    20. ;                      0b01111001,      // "E"   -|G|F|E|D|-|-|A
    21. ;                      0b01110001 };    // "F"   -|G|F|E|-|-|-|A
    22. ;
    23. ;  void Main()
    24. ;  { char temp = porta;                 // sample input
    25. ;    CMCON = 7;                         // turn comparator off
    26. ;    TRISA = 255;                       // Port A all inputs
    27. ;    TRISB = 0;                         // Port B all outputs
    28. ;    while(1)                           // loop forever
    29. ;    { if(DigSel.b7)                    // if left (hi) digit
    30. ;        temp /= 16;                    // use hi nibble, 0..15
    31. ;      else                             // otherwise
    32. ;        temp &= 15;                    // use lo nibble, 0..15
    33. ;      temp = SegData[temp];            // get segment data
    34. ;      temp |= DigSel;                  // pick up digit select bit
    35. ;      PORTB = temp;                    // update display
    36. ;      DelayUS(8000-23);                // delay 8-msecs total
    37. ;      DigSel ^= 128;                   // toggle digit select bit
    38. ;    }
    39. ;  }
    40. ;
    41.  
     
    Last edited: Feb 14, 2013
Loading...