AY0438 Display Driver


Closed Thread
Results 1 to 14 of 14

Hybrid View

  1. #1
    Join Date
    Aug 2009
    Posts
    16


    Did you find this post helpful? Yes | No

    Default AY0438 Display Driver

    Its a 7 seg LCD that has a Microchip AY0438 driver with it.

    Terry

  2. #2
    Join Date
    Jan 2009
    Location
    Miami, Florida USA
    Posts
    699


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by tallen View Post
    Its a 7 seg LCD that has a Microchip AY0438 driver with it.

    Terry
    Then, you need to look at the datasheet of the LCD with the AY0438 in it. Look at figure 4 of the AY0438 datasheet. This figure shows you how to control the 32 segments. If I remember correctly, you have to connect the LCD(Phi) to the clocking signal for it to work. How many digits does the LCD have?


    Name:  Fig-4.JPG
Views: 1252
Size:  27.5 KB

    Robert

  3. #3


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by tallen View Post
    Its a 7 seg LCD that has a Microchip AY0438 driver with it.

    Terry
    Terry,

    Try this code. It is for a 4 digit seven segment display.

    Mark
    Attached Files Attached Files

  4. #4
    Join Date
    Aug 2009
    Posts
    16


    Did you find this post helpful? Yes | No

    Default

    i'm struggling with this code. It is a 4 digit 7 segment display. The display just seems to roll continiously very fast. I put in a pause to slow it down. I removed the "IF Total = 9999 then Temp = 0" and the "Temp=Temp+1. I put it TEMP = 1234 hoping to dispaly 1234, but all I see is just jumbled up numbers. I put in TEMP = 1 and see PPP. As you can Tell I don't understand this lookup and shiftout code. Any Ideas?

    Thanks,

    Terry

  5. #5
    Join Date
    Jan 2009
    Location
    Miami, Florida USA
    Posts
    699


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by tallen View Post
    i'm struggling with this code. It is a 4 digit 7 segment display. The display just seems to roll continiously very fast. I put in a pause to slow it down. I removed the "IF Total = 9999 then Temp = 0" and the "Temp=Temp+1. I put it TEMP = 1234 hoping to dispaly 1234, but all I see is just jumbled up numbers. I put in TEMP = 1 and see PPP. As you can Tell I don't understand this lookup and shiftout code. Any Ideas?

    Thanks,

    Terry
    Did you wire the 7-segment LCD display to the AY0438 chip? If they came together as you said earlier, do you have the datasheet for this part? More than likely, the wiring that mark_s used in his program is different than the way you are wiring it. You need to know how the segment pins in the AY0438 are connected to the segments in the LCD display. You need the part datasheet.

    Robert

  6. #6
    Join Date
    Aug 2009
    Posts
    16


    Did you find this post helpful? Yes | No

    Default

    Yes, the display is already wired to the driver chip. I will check the data sheets for both. I have the data sheet for the driver, but I will have to find the one for the LCD.

    This display and driver chip was on an old product that i did not design (obviously). We have tons of these new prewire display boards that I was hoping to use on a new design. I have the original asm code for the old product, but since I'm not very good with asm, I was trying to use it with purely basic code.

    Thanks,

    Terry

  7. #7


    Did you find this post helpful? Yes | No

    Default

    Terry,
    Try taking the "0" out of each of these lines. Then try your Temp = 1234

    'SEVEN SEG LOOKUP
    LookUp ONES,[63,6,91,79,102,109,124,7,127,103,0],LCD_THOU
    LookUp TENS,[63,6,91,79,102,109,124,7,127,103,0],LCD_HUNS
    LookUp HUNS,[63,6,91,79,102,109,124,7,127,103,0],LCD_TENS
    LookUp THOU,[63,6,91,79,102,109,124,7,127,103,0],LCD_ONES

    I did this a long tme ago so I don't remember why I added the 0. Hope you get it going.

    Regards Mark

    Add:Like Robert said the LCD may be connected different than my code.
    I used LCD segment A, Digit 1 = Segment 1 Pin 39 AY0438 and
    LCD seg B = Segment 2 pin 38 AY0438 and so on.
    Post your asm code, we can probably see how its connected by the look up tables at
    the bottom of the listing.
    Last edited by mark_s; - 26th April 2010 at 21:11.

  8. #8
    Join Date
    Aug 2009
    Posts
    16


    Did you find this post helpful? Yes | No

    Default

    Mark & Robert,

    You were correct that the wiring was different. I was able to pull the old asm code from the original C code to put in my basic code. Now thats a little confusing. I got the asm code to work for the most part, but I still have not got a good understanding on how it works. I just wrote a small basic program to count from 1-100 and roll to test it. It counts correctly on the display, but it shows up as the following:

    001, 002, 003, 004, ...

    I would like to get rid of the leading zero's if possible. Any ideas on this. I would like it to look like the following:

    1, 2, 3, 4, ...


    Thanks again for the help.

    Terry
    Attached Files Attached Files

Members who have read this thread : 0

You do not have permission to view the list of names.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts