CCS C Software and Maintenance Offers
FAQFAQ   FAQForum Help   FAQOfficial CCS Support   SearchSearch  RegisterRegister 

ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

CCS does not monitor this forum on a regular basis.

Please do not post bug reports on this forum. Send them to CCS Technical Support

multiplexing techniques with two 74HC595

 
Post new topic   Reply to topic    CCS Forum Index -> General CCS C Discussion
View previous topic :: View next topic  
Author Message
atoo



Joined: 31 Jan 2014
Posts: 32

View user's profile Send private message Send e-mail

multiplexing techniques with two 74HC595
PostPosted: Sun Mar 02, 2014 1:47 am     Reply with quote

someone could help me

still do not know how to send a byte
with two 74HC595 in a 8x8 matrix

74HC595 row and 74hc595 column Wink Question
temtronic



Joined: 01 Jul 2010
Posts: 9226
Location: Greensville,Ontario

View user's profile Send private message

PostPosted: Sun Mar 02, 2014 6:26 am     Reply with quote

Controlling the 8by8 matrix LED can be broken down into simpler parts. A 'row' driver(595) and a 'column' driver(595). For any LED to be on the 'row' must be high( '1') and the column' must be low( '0').

Start with one 595 and connect 8 LEDs(and resistors) in common cathode configuration.
Using the CCS supplied example,cut code to turn on the LEDS in various patterns.

WHEN that works fine then

Use the other 595 and connect 8 LEDs(and resistors) in common ANODE configuration
Using the CCS supplied example,cut code to turn on the LEDS in various patterns.be SURE to EDIT the code as now what was 'on' is now 'off'.

It really helps to use graph paper to 'see' the bit patterns and logic necessary to control the LEDs.
The 'trick' or 'key' is to start small,build upon knwoledge you gain by observing what works(and doesn't).As for the 'bit' patterns to make characters, again graph paper is very,very helpful is determining the 'mask'(actual data to 595) needed to display whatever you want.
For resistors, I'd use 8 - 100r in series with the anodes(rows) AND 8 - 100r in series with the cathodes(columns).This ensures there's always a current limit though 8 - 200r in either row or col would work as well.


hth
jay


You can simply the project if your PIC has 2 8 bit ports available. This eliminates the 595s.
Mike Walne



Joined: 19 Feb 2004
Posts: 1785
Location: Boston Spa UK

View user's profile Send private message

PostPosted: Sun Mar 02, 2014 9:24 am     Reply with quote

Giv us some idea of:-

1) Your schematic.
2) Your code.

Is your circuit something like this?
Code:

    ----------------------------
   |                            |
   |                PIC16F84    |   
   | RB0 RB1 RB2                |   
    ----------------------------
     |   |   |
     |   |   |
     |   |   |   -------           -----------------
     |   |    --|DATA Q7|---WWW---| o o o o o o o o |
     |   |  0V--|OE   Q6|---WWW---| o o o o o o o o |
     |   |  5V--|MR   Q5|---WWW---| o o o o o o o o |
     |   |      |     Q4|---WWW---| o o o o o o o o |
     |----------|CK   Q3|---WWW---| o o o o o o o o |
     |   |      |     Q2|---WWW---| o o o o o o o o |
     |   |------|EN   Q1|---WWW---| o o o o o o o o |
     |   |    --|Q7S  Q0|---WWW---| o o o o o o o o |
     |   |   |   -------           -----------------
     |   |   |    '595              | | | | | | | |
     |   |   |                      | | | | | | | | 
     |   |   |   -------            | | | | | | | |
     |   |    --|DATA Q7|-----------  | | | | | | |
     |   |  0V--|OE   Q6|-------------  | | | | | |
     |   |  5V--|MR   Q5|---------------  | | | | |
     |   |      |     Q4|-----------------  | | | |
      ----------|CK   Q3|-------------------- | | |
         |      |     Q2|---------------------  | |
          ------|EN   Q1|-----------------------  |
                |     Q0|-------------------------
                 -------                                 
                  '595


If it is then do as Mt T suggests.

a) Work with 1st '595 only.
b) Use CCS provided code for one off '595.
c) Get system to work by connecting one only matrix column to supply rail.
(Which rail depends on whether you've got CA or CC columns.)

Mike
atoo



Joined: 31 Jan 2014
Posts: 32

View user's profile Send private message Send e-mail

Atoo
PostPosted: Sun Mar 02, 2014 9:51 am     Reply with quote

I would make some code to delete the byte using output toggling. Can Be?

Or any other technique an array of bitwise be cool?

Or rather, would only be possible with some simple matrix and FOR loops?

Suggest what kind of suggestion ?


something without bookstore 74HC595

independente

Atoo
Charles PB
Ttelmah



Joined: 11 Mar 2010
Posts: 19512

View user's profile Send private message

PostPosted: Sun Mar 02, 2014 10:40 am     Reply with quote

It depends totally on how your code needs to be designed.
One approach would be to have a timer tick, and then have this on every 'tick' output the next pattern on the column, and every eight ticks change rows, doing nothing else.
Your main code can then just specify what needs to be output, and the tick will keep on doing this at the designed rate, so ensuring the display keeps operating whatever else is going on.
The key point is that you need to get the control of the chips working _first_, and then work out the timings you need, and work out how to provide these.

Best Wishes
Mike Walne



Joined: 19 Feb 2004
Posts: 1785
Location: Boston Spa UK

View user's profile Send private message

Re: Atoo
PostPosted: Sun Mar 02, 2014 11:05 am     Reply with quote

atoo wrote:
I would make some code to delete the byte using output toggling. Can Be?

Or any other technique an array of bitwise be cool?

Or rather, would only be possible with some simple matrix and FOR loops?

Suggest what kind of suggestion ?


something without bookstore 74HC595

independente

Atoo
Charles PB
You're trying to run before you can walk.

There are now three of us saying the same thing.

Start simple. Get things to works, in small steps, one at a time.

If you are really stuck, show us a schematic and your code, then we'll help.

Mike

PS What does this mean? "bookstore 74HC595"
asmboy



Joined: 20 Nov 2007
Posts: 2128
Location: albany ny

View user's profile Send private message AIM Address

PostPosted: Sun Mar 02, 2014 11:57 am     Reply with quote

in the era of ubiquitous, and cheap LCD character displays -
is there a reason you must use multiplexed LEDS?

in my case it only took ONE experience with using a mux'd display in
a small ( supposed to be ) very high audio quality FM transmitter exciter design, to learn my lesson. the mux switching process was costing almost
6 db of nasty noise floor trash in the recovered audio, unless a lot of extra $$ were to be dumped into extra power supply cleaning.

An LCD with blue-led backlit display made the design cheaper, and very well accepted by the customer to boot.

do you HAVE to have an LED matrix ??
atoo



Joined: 31 Jan 2014
Posts: 32

View user's profile Send private message Send e-mail

ATOO impossivel não é mais é dificil !!
PostPosted: Mon Mar 03, 2014 5:18 am     Reply with quote

Code:

//MELHORANDO CODIGO

//SEGUINDO CORRETAMENTE

// CHARLES FRANCES

//joão pessoa pb

 queria fazer um quadrado mais não estou conseguindo

wanted to make a square with two 74HC595 row and column
this is my code and was unable to form a square !!!

and thus mastering two hc595
const unsigned char Code[]=
That is my mistake keeps repeating and disrupts
send the byte

My error is the while(true)?

{
   0x00,0x08,   //   X=8
   0x00,0x08,   //   Y=8
   0xFF,   //   ########
   0x81,   //   #......#
   0x81,   //   #......#
   0x81,   //   #......#
   0x81,   //   #......#
   0x81,   //   #......#
   0x81,   //   #......#
   0xFF    //   ########
};

 

Shocked Bummed Out


Last edited by atoo on Mon Mar 03, 2014 9:59 am; edited 2 times in total
temtronic



Joined: 01 Jul 2010
Posts: 9226
Location: Greensville,Ontario

View user's profile Send private message

PostPosted: Mon Mar 03, 2014 6:16 am     Reply with quote

Please, use the CCS supplied '595 driver code that's in the 'examples' folder.You'll get better support and your project working faster if you do.
The code you show is too 'messy' to follow but I 'think' it's trying to control the 595 using the matrix data.I'm NOT about to waste any more time on it, the CCS example code does work!
Also you do not tell us the pin assignments ,that's very very important and should be in the first 10-15 lines of code.

hth
jay
atoo



Joined: 31 Jan 2014
Posts: 32

View user's profile Send private message Send e-mail

PostPosted: Mon Mar 03, 2014 6:49 am     Reply with quote

this right
eu entendo

I'll try
Mike Walne



Joined: 19 Feb 2004
Posts: 1785
Location: Boston Spa UK

View user's profile Send private message

PostPosted: Mon Mar 03, 2014 11:25 am     Reply with quote

You're making it difficult to help you.

You've editted a post after getting a response, that makes it impossible to follow the thread.

Please:-

1) Show us your circuit. We need to know which way round your display is connected.
2) As suggested, use the CCS example to start with. The CCS code is known to work, will prove your circuit operates, and you will get a feel for how to drive the display.
3) Keep your code simple and show us complete compilable code when you get stuck.

Mike
atoo



Joined: 31 Jan 2014
Posts: 32

View user's profile Send private message Send e-mail

Atoo
PostPosted: Thu Mar 06, 2014 12:50 pm     Reply with quote

Mike Walne


Thank you for listening
Has Helped me a lot from start to finish

I managed to complete without the used library conssegui six-pin
I discovered there are many possibilities to do this
problem solved! looks like the design of the array you posted!
Thank resolved


Idea with the drawing above you complete with loops
Display posts from previous:   
Post new topic   Reply to topic    CCS Forum Index -> General CCS C Discussion All times are GMT - 6 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group