Continue to Site

Welcome to our site!

Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

  • Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

Programmable LED dot matrix display system

Status
Not open for further replies.

cwt

New Member
Hi there! I am currently working on a final semester project. My project title is programmable LED dot matrix display system. I am not going to use PIC in my project. :!:

I am going to use a RS232 cable , RS232 port and MAX232 in my project. So are there any components i need to complete this project?UART? :?:

Do i need an interfacing program to communicate with the external circuit? Any suggestion? :roll:

:)
 
Sorry for not giving more information about my project.
Ok..my project work like this.

My project requires user to enter words into a textfile(eg. notepad) then the dot matrix display will read and show the appropriate output.

So is it necessary for me to write an interfacing program to handle that(convertion of each characters into equivalent group of bits)?

Currently i am collecting info and ideas on how to build my project without using a PIC. Even microcontroller is out of my plan! Am i possible to complete my project without using those?
 
cwt said:
Sorry for not giving more information about my project.
Ok..my project work like this.

My project requires user to enter words into a textfile(eg. notepad) then the dot matrix display will read and show the appropriate output.

So is it necessary for me to write an interfacing program to handle that(convertion of each characters into equivalent group of bits)?

Currently i am collecting info and ideas on how to build my project without using a PIC. Even microcontroller is out of my plan! Am i possible to complete my project without using those?

It's certainly possible to do it without micro-controllers, but as to it being practical or not is a different question!.

Using micro-controllers you could simply sent the ASCII text data outt he serial port, and the micro's do everything else. If you're wanting no micro-controllers you will have to do everything in the PC software, and use loads of chips to shift and store the LED data.

What resolution are you looking for on the display?.
 
Resolution? You mean the design of dot matrix display? I plan to use 8x8 dot matrix display. Maybe i'll use 5 pieces of those. Are there any better suggestions?

My project didnt include the usage of PIC and microcontroller due to the fact that i want to build a circuit using all basic logic chips (eg. AND,OR,NOT) and shift registers. The reason behind is i hope my circuitry design can be dope into a single silicon chip. So that, in future (i hope) this will simplify the contruction of a LED dot matrix display system.

Hope you can help me to achieve my goal.
 
cwt said:
Resolution? You mean the design of dot matrix display? I plan to use 8x8 dot matrix display. Maybe i'll use 5 pieces of those. Are there any better suggestions?

My project didnt include the usage of PIC and microcontroller due to the fact that i want to build a circuit using all basic logic chips (eg. AND,OR,NOT) and shift registers. The reason behind is i hope my circuitry design can be dope into a single silicon chip. So that, in future (i hope) this will simplify the contruction of a LED dot matrix display system.

It's certainly possible, but I wouldn't attempt it - it's a pretty pointless exercise, it's exactly the type of project micro-controllers are designed for.
Certainly the costs involved with a custom IC are huge, you would require a massive market to make it viable - and it would probably still be cheaper and simpler to use a micro.

Personally I'd probably use a PIC 16F876 for each display, it has plenty of I/O to feed an 8x8 dot matrix, plus a few left over for serial in and serial out. This way you could simply stack as many (or as few) modules together as you want - with the serial data chained from one to the next.

You could just use one PIC and shift registers, but multiple PIC's would make the design simpler and more easily extended.
 
You can try FPGA. It's short for Field-Programmable Gate Array. A type of logic chip that can be programmed. An FPGA is similar to a PLD, but whereas PLDs are generally limited to hundreds of gates, FPGAs support thousands of gates.
 
Since the FPGA is a programmable logic chip, is it means that it requires a special burner to program the particular chip?

By the way, is there any serial to parallel register other than UART? I would be glad to know that if there is a chip which only does the SIPO task. :wink:
 
a 4094 is a serial shift register, you could try to use it to shift the data in (and output it parallel) , but you need to generate a clock wich starts on the start pulse and runs at same speed as you serial output (9600 /s for example)...

I would just go for a micro, you would need way too much logic for such a trivial task, it's what micro's were invented for in the first place...

You said that you would like the circuit converted to a chip when it works. Do know that no company will make a chip specially for you, unless you're willing to pay enourmous amounts of money.
If you produce your project using a pic, and you need it mass produced you can always ask microchip to mask program pics with your code, it would be much cheaper...

But they won't do it if you only need a couple of 1000.
 
Hi Exo, thanks for your suggestion on SIPO shift register. :p

You said that you would like the circuit converted to a chip when it works. Do know that no company will make a chip specially for you, unless you're willing to pay enourmous amounts of money.
If you produce your project using a pic, and you need it mass produced you can always ask microchip to mask program pics with your code, it would be much cheaper...

I am not going to ask a company to convert the circuit into a chip for me. Moreover, that is just my view. :D For now, i need not to worry about that. What am i worry now is how to construct a circuit without PIC and microP. :cry: sigh~~

Anyone know where to get the information about dot matrix display?(eg. the construction of it, how does the bits are being shifted?, how to connect it?)
Thanks for your help...
 
It just requires a download cable. I think it fits your requriement. You just need draw the logic circuit, compile it and download it to the chip. It likes making a chip by yourself. You can get some information from https://www.burched.biz/links.html
 

Attachments

  • fpga.gif
    fpga.gif
    21.9 KB · Views: 2,671
Hi jerryc, thanks for the diagram. But what is it used for?i really cant understand the diagram. Is it all about the FPGA stuffs??

There is one thing you should know about me, i totally have no ideas about FPGA stuff. :oops: Sorry~~
But it sounds interesting to me, since it'll make my circuit more tidy and smaller. I am so curious about it. Please tell me more. :shock:

If i really want to use FPGA in my project, am i going to need a FPGA software?a FPGA burner?

Currenty i am using a simulation software (MultiSim) to construct my circuit. Can i download my simulation circuit into the FPGA chips?Or i need to download the circuit via a FPGA software?

In other words, can i say that FPGA also can act as a custom PIC or maybe a custom microcontroller??
 
It's a way to use the FPGA. I use Quartus II to develop( it can be downloaded from http://www.altera.com/support/software/download/altera_design/quartus_we/dnl-quartus_we.jsp). It has a Block Diagram Editor. After I design the circuit with the Block Diagram Editor, I compile it and download it to FPGA. Then I can test the circuit board.

If you want to use it. you need a FPGA development board and the development software. I only used it for couple months. I don't know whether it can use your simulation circuit.

From the result, it likes microcontroller. They both are used to realize the complex function. The microcontroller focuses on software and the FPGA focuses on hardware. For FPGA, you don't need to write any code ( but you can write the code, it uses vhdl), just design the circuit that likes you did with MultiSim.

Check this web site: **broken link removed**
 
I don't know whether it can use your simulation circuit.

The FPGA stuff is quite interesting, but since you are not sure whether is it compatible to MultiSim, i dont think i'll use that in my project. If i go and learn all those development software, it may comsume loads of my time. As a result, i may not complete my project. So i am sorry i cant include your suggestion in my project. :oops: ~disappointed~
However, i am very glad that you spend your time providing me information about FPGA. Thanks!!! :D
 
I have some questions to ask about parallel out serial shift register.

If i am going to input a serial data (eg. 10110, where the leading 1 is a MSB and the last 0 is a LSB, into a SIPO shift register) how am i going to take the equivalent output from each of the output pins (eg. D0 = 0, D1 = 1, D2 = 1, D3 = 0, D4 = 1)?:roll:

How am i going to design a circuit to make sure that i extract the right parallel bits?? :?
 
wouldn't it be better to try with the parallel port :? ...

the serial ports is most commonly used in 8N1 setup, that is 8 databits, 1 stopbit and no paritiy... and it runs at a certain speed, for example 9600 baud (wich means, for serial port anyway, 9600 bits per second)
There is a startpulse wich comes ahead of the 8 databits...

so what you need to do is first create a timer circuit, the serial shift register will read in a bit when it gets a clock pulse, you should build a circuit that generates a clock at same speed as the pc (9600 /s) to feed your serial shift register with...

When you detect a start pulse you wait until is gone again and start running your timer, and make it generate 8 pulses, when all is properly timed the 8 databits are read into the shift register and available on the 8 output pins (you can ignore the stop bits), you can use the 8 signals to drive the first row of your 8x8 matrix, then repeat the whole operation and use the result to drive the second row, and so on until were back at the beginning...

over all, a pretty pointless exercise wich will probabely be anything but fun to construct :roll:
probabely won't be very reliable as you cannot add some form of error detection (at least not without adding even more chips)...
 
Thanks Exo!

But i still have some questions.

How am i going to detect the start pulse? And how am i going to ignore the stop bit? :?

A timer circuit can be controlled to generate a desired number of pulses?! :shock: (eg. 8 pulses) All this while i though it can only used to generate a continuous pulse train. If can, can you provide me that timer circuit? Please... :cry:

There is one thing i really want to be very sure. Its about the output of SIPO shift register. i know what are you talking about but i need to know how to extract the correct parallel bits. :?:

Is it there is a 'special' circuit behind the SIPO shift register before we can take the final parallel bits? :idea:

For example, if i had a serial bits of 10110000, where the leading 1 is MSB, going into the SIPO shift register. After 8 pulses, the output will be at the correct parallel bits, right? But before those 8 pulses, how am i going to managed all those 'incorrect' parallel bits? I think there should be a 'special' circuit behind the SIPO shift register that block all those incorrect bits, right? So that what we get at last is the correct parallel bits. Agree?
 
cwt said:
Thanks Exo!

But i still have some questions.

How am i going to detect the start pulse? And how am i going to ignore the stop bit?
It's the first bit that comes in after a pause. between every byte sent there is a little pause wich is detectable.

cwt said:
A timer circuit can be controlled to generate a desired number of pulses?! :shock: (eg. 8 pulses) All this while i though it can only used to generate a continuous pulse train. If can, can you provide me that timer circuit? Please... :cry:
Of course a timer can be constructed to generate 8 clocks and then stop, It's just adding some more logic chips to the pile you're already going to need. I don't have a circuit handy, I would need to design one and i don't have time for that, I use pic's to do things like this would solve the entire circuit in 1 day...

cwt said:
There is one thing i really want to be very sure. Its about the output of SIPO shift register. i know what are you talking about but i need to know how to extract the correct parallel bits. :?:

Is it there is a 'special' circuit behind the SIPO shift register before we can take the final parallel bits? :idea:

For example, if i had a serial bits of 10110000, where the leading 1 is MSB, going into the SIPO shift register. After 8 pulses, the output will be at the correct parallel bits, right? But before those 8 pulses, how am i going to managed all those 'incorrect' parallel bits? I think there should be a 'special' circuit behind the SIPO shift register that block all those incorrect bits, right? So that what we get at last is the correct parallel bits. Agree?

If your timer circuit starts clocking 8 times right after the startbit and then stops then your shift register will have read the 8 databits, no incorrect bits will be read...
 
[Exo wrote]If your timer circuit starts clocking 8 times right after the startbit and then stops then your shift register will have read the 8 databits, no incorrect bits will be read...[/quote]

Erm..what i need to know is the output of the serial shift register. :?
How am i going to take the correct parallel bits out of the serial data? :?:

If 1011 0110 --> going into the shift register,
At first clock pulse, the SIPO output will be 0xxx xxxx.(where x is an unknow state)
At second clock pulse, parallel output is 10xx xxxx.
At third clock pulse, parallel output is 110x xxxx.
At fourth clock pulse, parallel output is 0110 xxxx.
.....
.....
At eighth clock pulse, parallel output is 1011 0110.

Agree with those?? :roll:

So if i want to make 1011 0110 parallel output available at the dot matrix array, what should i do to prevent those previous 7 incorrect parallel bits from entering the dot matrix column? Is it there should be a 'special' circuit that only allow the correct parallel bits to go through?? Will a D latch do the job?

I apologise if i have offended you. :cry: :oops:
 
cwt said:
I have some questions to ask about parallel out serial shift register.

If i am going to input a serial data (eg. 10110, where the leading 1 is a MSB and the last 0 is a LSB, into a SIPO shift register) how am i going to take the equivalent output from each of the output pins (eg. D0 = 0, D1 = 1, D2 = 1, D3 = 0, D4 = 1)?:roll:

How am i going to design a circuit to make sure that i extract the right parallel bits?? :?

parallel port may be a lot easyer you have plenty of i/o pins if you use the full parallel interface, the normal pc register for the data port (D0-D7) is 0378H the other two are 0378H +1 & +2

blue pins are output red are input
you can get a dll to allow port acces for visual basic under most operating systems
set your data on port D0-D7 pulse the strobe pin (C0) to tell your circuit that 8 bits are ready to be moved into the latchyou could then pull down S7 to tell the pc to send the next byte
 

Attachments

  • pinout_938.gif
    pinout_938.gif
    6.4 KB · Views: 864
cwt said:
Exo said:
If your timer circuit starts clocking 8 times right after the startbit and then stops then your shift register will have read the 8 databits, no incorrect bits will be read...

Erm..what i need to know is the output of the serial shift register. :?
How am i going to take the correct parallel bits out of the serial data? :?:

If 1011 0110 --> going into the shift register,
At first clock pulse, the SIPO output will be 0xxx xxxx.(where x is an unknow state)
At second clock pulse, parallel output is 10xx xxxx.
At third clock pulse, parallel output is 110x xxxx.
At fourth clock pulse, parallel output is 0110 xxxx.
.....
.....
At eighth clock pulse, parallel output is 1011 0110.

Agree with those?? :roll:

So if i want to make 1011 0110 parallel output available at the dot matrix array, what should i do to prevent those previous 7 incorrect parallel bits from entering the dot matrix column? Is it there should be a 'special' circuit that only allow the correct parallel bits to go through?? Will a D latch do the job?

I apologise if i have offended you. :cry: :oops:

Well, the 8 leds of the column you are driving any moment have one side connected to the 8 outputs of the shift register, the other sides of the 8 leds are all connected togheter as a 'common'. when you are clocking the data in on the shift register you don't drive this 'common' so the leds will not light, once you've got your 8 databits you turn the 'common' on and the leds will show the pattern.

It's a common multiplexing technique, when done fast enough it seems like a steady image...

I'm curious, how are you going to write the software for this?

and indeed, like p3t3rv said, have you considered the parallel port? it's a lot easyer...
 
Status
Not open for further replies.

Latest threads

New Articles From Microcontroller Tips

Back
Top