# Scrolling Text on Basys2 Board Seven Segment Display

Status
Not open for further replies.

#### yttuncel

##### Junior Member level 3
Hello,

Though I'm a newbie at VHDL I managed to write a keyboard interface ( though it is only unidirectional, it is a success) for my board and am correctly displaying the letters on SSD. Now I am thinking of going one step further, that is to say I want to extend the borders of SSD. But I can not think of any simple way to do so, I need some advice here. I don't like using already written code blocks, so please, even if you share any, do explain it because I will need the knowledge. Primarily I need the idea, so if you have any sources about "scrolling text on Seven Segment Display", I will be glad. I'm writing in VHDL by the way.

All I can think of is, I will need an enable signal to activate each SSD up to 4 letters. But then things start to mess up, when I press the next button, for example the second S letter in BASY"S", the SSD should show ASYS. Then, after accomplishing this, I am thinking of scrolling the text from right to left. Any help is appreciated already! Thank you!

P.S. I can include my codes in the next message if someone wants to see them to help me.

#### erginatalar

##### Newbie level 1
I like newbies! Magnificent! :-D:-D

#### BlackHelicopter

##### Full Member level 2
How are you setting up the Hex letters for the SSD's?

Have you tried creating a register file and instantiating it with your constants?

For example:

Code VHDL - [expand]1
2
subtype reg is std_logic_vector(6 downto 0);
type reg_array is array (0 to 4) of reg; -- B(0)A(1)S(2)Y(3)S(4), where each letter represents a 7-bit slv

If you have the seven segment display 'controller' working properly then you can just index through each of the values in the register array and direct it to the proper SSD. Or use a circular buffer.

#### yttuncel

##### Junior Member level 3
I have been reading about the seven segment display and how to mux it to show different characters in each segment. I think I have a proper seven segment display "controller" now. I designed it according to the tables and images provided here(Without the DP, since I deal with words not numbers.) Now I have some questions in my mind. Firstly, I have 32 characters ( numbers + displayable characters in 7 segment display), so I will have 32 possible cases and I have to use 5bit inputs for the mux right? Also, I think I will have to use a shift register, that holds the scancodes of the pressed keys on the keyboard right? Then that sreg will shift the scancodes so the mux inputs will change and therefore the text will scroll right? Any help will be appreciated.

#### yttuncel

##### Junior Member level 3
Hello again,

Please ignore my last post, I have some invaild thoughts about the topic there, now I think I finally understood most part of the design.

I've completed writing a seven segment controller that will arrange the simultaneous working of the seven segment display digits. Now I'm stuck at transmitting the scancodes to that controller. As far as I know, I have to collect the scancodes in an array of std_logic_vectors and then shift those vectors so that the input of the seven segment constantly changes, am I right? But I don't know how to write a shift register in vhdl or where to I use it (do I need any other modules for it, or can I just store the scancodes in an array in keyboard interface module?), so if you have any good documents or anything else you think that will help me, please provide them to me. Or you can briefly explain what I have to do as well, if you have some time.

Thank you

Status
Not open for further replies.