News:

Let's find out together what makes a PIC Tick!

Main Menu

Column cathode - Row anode dot matrix display

Started by RGV250, Oct 08, 2022, 07:13 PM

Previous topic - Next topic

RGV250

Hi,
I am trying to reuse an old dot matrix display, it uses column cathode - row anode LED matrix.
https://html.alldatasheet.com/html-pdf/286266/CHINASEMI/CSM-57442S/984/2/CSM-57442S.html

I think I have traced out all the logic signals but this display is a bit different to what I was expecting. I have been thinking about it and think I will need 2 data tables for each character, one for the columns and the other for the rows.
The columns are via shift registers and the rows directly from outputs. I think I will need to shift a column out and then turn the respective rows on and then the next column and so on. I hope to use an 8 bit PIC but wonder if I will need a 16 bit PIC to do it without flicker.

I wondered if it will be on the lines of "Lots of LEDS" shields.

Bob

top204

An 8-bit device will be more than adequate Bob.

As long as the multiplexing is approx 20Hz or over, it will not flicker. I still remember writing some code with one of those displays around about 1999 or 2000 and I was going to add it to my book I wrote back then. I've still got about 20 of those larger dot-matrix displays somewhere and they are bi-colour.

It can compfortably be performed within a Timer overflow interrupt, so it updates the display in the background.




RGV250

Hi Les,
The ones I have a just red. I don't suppose you still have the code, I don't need it to compile but it would give me a good example on how to get going.

Regards,
Bob

Pepe

this is an example with proteus simulaton

top204

#4
Sorry Bob. I do not have the code anymore. It was about 20 years ago I wrote it and I have had several hard-drive crashes over that time, and could not afford backup drives then.

I remember I used a PIC16F877 running at 20MHz, so it is more than possible with the newer devices.

There are a few ways of doing the code mechanism:

One is to make an array that matches the dot-matrix of the display, so each array element represents an LED in an 8x8 matrix so an array element holding 0 is the LED off, and any other value is the LED on, and perform all the display calculations on the array. i.e. Plot, Line, Circle, ASCII text etc. Then every X microseconds or milliseconds depending on the refresh rate required, transfer the whole array to the display via an interrupt. Also, create a Frame Sync bit or a double buffer, so the array is not written too while it is being transferred to the display itself. This will stop partial objects being displayed while it is being displayed and updated at the same time. Just like a display list area of RAM in the old 8-bit computers. :-)


Pepe

#6
another demo

RGV250

Hi Pepe,
Thanks for the example, I could not use the VSM as I only have PIC18 and it is an older version. Not to worry, I will study it and make the changes for my VSM and see how I get on.

Bob

Pepe