Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Scrolling Text on Basys2 Board Seven Segment Display

Status
Not open for further replies.

yttuncel

Junior Member level 3
Joined
Nov 18, 2012
Messages
30
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,286
Activity points
1,663
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.
 

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.
 

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.
 

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.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top