Board index » delphi » HELP: Real-Time LCD Display

HELP: Real-Time LCD Display

Hello All:

    I am trying to build a real-time LCD display (on the monitor) by
    using Delphi2.

    The LCD consists of 27 5x5 dot matrix display. Each dot in the
    dot-matrix display can be accessed independently so that a
    character can be mapped into each 5x5 dot matrix display.

    I have built a 5x5 dot matrix component and used that component
    for all 27 5x5 dot matrix display. The following is the mapping of
    the display (5x5) component:

                        A B C D E
                        F G H I J
                        K L M N O
                        P Q R S T
                        U V W X Y

                        (5x5 dot matrix display)

   To access a particular point, I will set Display1.OnDotA := True
   and that point will light-up. Display1.OnDotA := False will
   turn off that point. I used canvas to draw the dot and fill in
   the color.

   The problem is to emulate a real LCD display, the refreshing rate
   must be greater that 20Hz. That is, to display a message like
   "Hello,world!", and then "I am fine!!" on the 27 5x5 dot matrix
   display, the user will not see the updating process of each 5x5
   dot matrix on the screen.

   By using 27 5x5 Dot-Matrix component, I can see the LCD screen is
   being updated one by one on 5x5 Dot-matrix, and one by one on each
   dot of 5x5 dot-matrix.

   Question: How can I do so that the user will not notice the updating
   process of each character like the real LCD display?

   Do I need to write some special multitasking display module?

   Do I have enough time to put all (25x27=675 dots) in 27 5x5 dot
   matrix display at the same time?

   Do I need to turn the whole program into assembly language? I have
   written assembly routines for accessing PC parallel port.

   Since each dot on the 5x5 dot matrix display is read by PC parallel
   port, I have been able to sample that specific dot at a very fast
   rate. I cannot do the whole character mapping before displaying
   on the whole screen. Also the refreshing rate is about 100ms for
   each screen (27 displays), and the user did not notice anything
   funny on the screen.

   Any suggestions will be greatly appreciated!!

   Thanks.

   Patrick

 

Re:HELP: Real-Time LCD Display


On 15 Jan 1997 22:13:00 +0800, h...@b1.hkstar.com (Hui Pak Ki Partick)
wrote:

Quote

>Hello All:

>    I am trying to build a real-time LCD display (on the monitor) by
>    using Delphi2.

>    The LCD consists of 27 5x5 dot matrix display. Each dot in the
>    dot-matrix display can be accessed independently so that a
>    character can be mapped into each 5x5 dot matrix display.

>    I have built a 5x5 dot matrix component and used that component
>    for all 27 5x5 dot matrix display. The following is the mapping of
>    the display (5x5) component:

>                    A B C D E
>                    F G H I J
>                    K L M N O
>                    P Q R S T
>                    U V W X Y

>                    (5x5 dot matrix display)

>   To access a particular point, I will set Display1.OnDotA := True
>   and that point will light-up. Display1.OnDotA := False will
>   turn off that point. I used canvas to draw the dot and fill in
>   the color.

>   The problem is to emulate a real LCD display, the refreshing rate
>   must be greater that 20Hz. That is, to display a message like
>   "Hello,world!", and then "I am fine!!" on the 27 5x5 dot matrix
>   display, the user will not see the updating process of each 5x5
>   dot matrix on the screen.

>   By using 27 5x5 Dot-Matrix component, I can see the LCD screen is
>   being updated one by one on 5x5 Dot-matrix, and one by one on each
>   dot of 5x5 dot-matrix.

>   Question: How can I do so that the user will not notice the updating
>   process of each character like the real LCD display?

>   Do I need to write some special multitasking display module?

>   Do I have enough time to put all (25x27=675 dots) in 27 5x5 dot
>   matrix display at the same time?

>   Do I need to turn the whole program into assembly language? I have
>   written assembly routines for accessing PC parallel port.

>   Since each dot on the 5x5 dot matrix display is read by PC parallel
>   port, I have been able to sample that specific dot at a very fast
>   rate. I cannot do the whole character mapping before displaying
>   on the whole screen. Also the refreshing rate is about 100ms for
>   each screen (27 displays), and the user did not notice anything
>   funny on the screen.

>   Any suggestions will be greatly appreciated!!

>   Thanks.

>   Patrick

I would use a bitmap that has an image of what all the characters look
like, and then, just copy the portion of the bitmap that corresponds
to the desired character/number to the screen. In fact, you could take
it a step further, and copy it first to a larger bitmap, and then draw
the final result.

The bitmap would be 5 units by 5*26 units for uppercase alpha, where
each unit is the size of the dot matrix dot required.

This will give you great performance, and be easier to deal with.
David Block
dbl...@vdn.com

Other Threads