EmbDev.net

Forum: FPGA, VHDL & Verilog 8*8 Matrix / shift register 74HC595 / VHDL code


von Rick Brown (Guest)


Rate this post
0 useful
not useful
Hello,

I am a beginner in VHDL programming. I would like to program a 8x8 
LEDmatrix using the 75HC595 shiftregister. So i have 3 inputs for my 
register: a ST (store) input, SH (shift) input, DT(data) input. The 
program has to do the following things: display a counter counting from 
0 to 9 with 1 second delay.

von Route_66 H. (route_66)


Rate this post
0 useful
not useful
Do it!
Any questions? I can't see them.

von -gb- (Guest)


Rate this post
0 useful
not useful
Greetings!

- decide if you want to output one line per shift register or one column 
or a mixture. e. g. if you want to make the letter not 8x8 pixels but 
6x10.
- write a hdl or software with a lut for each letter/number.
- write hdl which shifts out 64 bits to the daisy chained registers. you 
shift one bit per clock of the srclk and after the 64 bit transfer you 
pulse the rclk one time for the output register.

You may use my code for a 8 bit shift, with just one external shift 
register IC. so you have to modifiy the description or you have to send 
8 times one byte with the unmodified code.

https://www.mikrocontroller.net/attachment/highlight/444954

von Lothar M. (lkmiller) (Moderator)


Rate this post
0 useful
not useful
Rick Brown wrote:
> I am a beginner in VHDL programming.
Did you do the usual beginners jobs like a flashing LED and a chasing 
light (with variable speed and patterns) first in the simulator and then 
on real hardware?
If no: do so.
If so: congrats, you have a general idea about FPGA design.

> I would like to program a 8x8 LEDmatrix using the 75HC595 shiftregister.
Thats a nice advandced beginners exercise.

> So i have 3 inputs for my register: a ST (store) input, SH (shift) input,
> DT(data) input.
And how are those 8x8 LEDs connected to the shift registers? Are there 8 
shift registers, each one per line? Or are there 2 shift registers, one 
to select the line and one to drive the column?

> The program has to do the following things: display a
> counter counting from 0 to 9 with 1 second delay.
To sort things out: you can simply use 4 LEDs out of that 64 LEDs and 
display a binary pattern from "----" (all off like binary 0000) to 
"#-#-" (like binary 1010) on them? Or do you have to display a human 
readable number on that display?

> The program has to do the following things: display a
> counter counting from 0 to 9 with 1 second delay.
So split up the job:
1. implement a couter, that counts up by 1 per second.
2. display the counters value on the LED

Exercise 2 can be split up to
a. prepare the data that must be shown on the LEDs (i.e. select a pixel 
pattern from a ROM)
b. prepare the data for multiplexing (if necessary, depends on the 
hardware)
c. send the data to the shift registers


A hint:
First debug the whole design in the simulator. And then go on 
hardware.

Reply

Entering an e-mail address is optional. If you want to receive reply notifications by e-mail, please log in.

Rules — please read before posting

  • Post long source code as attachment, not in the text
  • Posting advertisements is forbidden.

Formatting options

  • [c]C code[/c]
  • [avrasm]AVR assembler code[/avrasm]
  • [vhdl]VHDL code[/vhdl]
  • [code]code in other languages, ASCII drawings[/code]
  • [math]formula (LaTeX syntax)[/math]




Bild automatisch verkleinern, falls nötig