Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Lcd programming with the controller

Status
Not open for further replies.

shaswat

Advanced Member level 4
Full Member level 1
Joined
Jul 2, 2013
Messages
115
Helped
1
Reputation
2
Reaction score
1
Trophy points
18
Visit site
Activity points
963
I want to interface this LCD with my controller. I want to know how to write a code for this LCD. I tried to search on web about this but I didn't get the relevant results. How these com's means and what are these number written on the different segments? I have attached the LCD which I want to interface. I have stuck in this situation from the last one week and still now i didn't get the solution.
Any idea would be really appreciated.....
Thanxx
 

Attachments

  • LCD_Glass.pdf
    205.1 KB · Views: 103
Last edited:

While the basic principles of interfacing and driving a multi segmented LCD display are simplistic, the actual implementation can be a challenge.

Your LCD display consists of 8 digits total, 6 digits with a height of 9.8mm and 2 digits with a height of 4.8mm, the remainder of the segments comprised various custom symbols, words, decimal points, etc, along with four COM pins.

Each digit is comprised of 7 segments, which are sequentially numbered, with 1st digit on the far left, as follows:

1 digit => (1A, 1B, 1C, 1D, 1E, 1F, 1G)
2 digit => (2A, 2B, 2C, 2D, 2E, 2F, 2G)
...
...
...
8 digit => (8A, 8B, 8C, 8D, 8E, 8F, 8G)

The LCD display requires 25 I/O pins which must be multiplexed at a fast enough rate to ensure steady illumination, no flicker, of all the segments, the active COM pin determines which row is updated.

Typically an external controller specifically designed to drive such a LCD display is employed, which diminishes the number of required I/O pins and processing overhead required from the microcontroller.

However, a series of daisy chained shift registers, 74HC595s, can be employed to control the LCD display, diminishing the number of required I/O pins from microcontroller, while still required the microcontroller to carry the processing overhead.

It should also be mentioned, these LCD display typically require an AC signal to drive each segment, this is accomplished by generating a series of pulses (PWM) and implementing a voltage divider on all COMs.

The following appnote details such a design:

AN202 LOW PIN COUNT LCD INTERFACE

PSoC 4 Segment LCD Direct Drive


After studying the requirements to implement a viable design, you soon realize why there are microcontrollers specifically designed to handle such a task.


BigDog
 

Each digit is comprised of 7 segments, which are sequentially numbered, with 1st digit on the far left, as follows:

1 digit => (1A, 1B, 1C, 1D, 1E, 1F, 1G)
2 digit => (2A, 2B, 2C, 2D, 2E, 2F, 2G)
...
...
...
8 digit => (8A, 8B, 8C, 8D, 8E, 8F, 8G)

As you mentioned the digit is comprised on 7 segments viz.
for 1 digit> 1A ,1B ,1C ,1D ,1E ,1G ,1F,1H
and so on.........

Are these segments arranged in the order that I mentioned or these are arranged in some other ways.
Means that this arrangement might be possible
for 1 digit> 1A ,1B ,1C ,1D ,1H,1G ,1F,1E
If I want to display 2 or 3 then what is the sequence??? I tried and I put the value 0xFF but assigning this value didn't display all the segment but it display first four segments in one digit and the other 4 segments in other digit. What it means??
I thought that directly assigning 0xFF would glow all the segments of the segments but I was wrong. Could you please guide me what to do to glow the LcD.
 

Are these segments arranged in the order that I mentioned or these are arranged in some other ways.
Means that this arrangement might be possible
for 1 digit> 1A ,1B ,1C ,1D ,1H,1G ,1F,1E

The exact arrangement of the segments cannot be determined by the datasheet provided. It is most likely similar to that of an LED 7 segment digit.

If I want to display 2 or 3 then what is the sequence??? I tried and I put the value 0xFF but assigning this value didn't display all the segment but it display first four segments in one digit and the other 4 segments in other digit. What it means??
I thought that directly assigning 0xFF would glow all the segments of the segments but I was wrong. Could you please guide me what to do to glow the LcD.

You could not be more incorrect.

Firstly, the display in question is NOT a 7-segment LED which glows when an appropriate DC voltage with current limiting is apply to a segment, as I have previously mentioned it is an LCD and requires an AC signal to polarize the segment rendering it opaque.

The LCD display also requires multiplexing of the of the various COM pins to generate the desired digit.

In short, simply connect the LCD display to a series of pins of the microcontroller and feeding a DC voltage to the appropriate pins is NOT going to achieve the desire results.

It's quite apparent you have not bothered to read my previous post in its entirety, nor the appnotes provided.

I strongly suggest you do so, otherwise there is not much hope in achieving your goal.

I have also attached another appnote which discusses the task quite thoroughly.

Frankly, you may have taken on a task which exceeds your current abilities, as such you might consider utilizing a external LCD driver chipset or migrate to a microcontroller designed to specifically handle the task.

Many manufacturers offer specific devices designed to drive a multi segmented LCD such as the one in question,.

They are essentially dedicated microcontrollers with the additional of specific hardware modules to facilitate the task, there are also many microcontrollers available in most families/series which have the additional hardware modules like the LCD drivers.

Achieving this task with a standard microcontroller will require considerable coding discipline and forethought combined with a thorough knowledge of lookup tables, multiplexing, refreshing, PWM, timers, interrupts and their associated interrupt service routines.

The task of driving such an LCD display will also consume a considerable amount of the microcontrollers resources and execution cycles.

Keep this fact in mind, as it may ultimately limit what other tasks the microcontroller can perform.


BigDog
 

Attachments

  • an8000_13_lcd_driver.pdf
    234.1 KB · Views: 86

I read all the documents that you provided to me and that quite good and that also enhance my knowledge about the LCD interfacing. But I have an issue in the document viz. an202.pdf. There is a point that I am not getting in interpreting the LCD Data sheet section. In it the documents said that when COM2 is active the segment bit is need to be shifted to the shift register. What is that means? I mean what is the purpose of shift registers?? What if I not shifted the register.
Can you please elaborate it for me??
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top