LCD scroll mechanism

Abstract: A LCD vertical scrolling mechanism automatically tracks addresses of information scrolled on a LCD (30). A counter (12) is initialized to a value latched in a vector register when a frame signal is received. Subsequent BPCLK signals step the adder through a series of values. These values are relayed through two bus selectors (18, 22) to segment drivers (34) for the LCD. One of the bus selectors (22) is coupled to the counter in parallel with a subtracter (20). When a value from the counter exceeds a predetermined value equal to the MUX of the LCD, the subtracter takes the difference between the predetermined MUX value and the value received from the counter and directs the parallel bus selector to relay the difference to the RAM of a segment driver. An adder (16) is coupled to the other bus selector (18) and to the vector register (26). When the MCU (42) needs to fetch information from the segment drivers, the MCU relays a LCD address where the information is displayed, to the adder. The adder adds the address (a value) to the value latched in the vector register. The MCU directs the second bus selector to select the value determined in the adder and relay this address to the segment driver.

Description: Background of the Invention This invention relates, in general, to Liquid Crystal Display (LCD) drivers, and more specifically, to LCD scrolling mechanisms. LCDs are controlled by a number of LCD drivers. These drivers include the backplane driver(s) which activates, with a high voltage signal, a row(s) on the LCD which is to be displayed, and further includes generally two or more segment drivers. The segment drivers control what information is to be displayed in the rows of the LCD. Therefore, when a row of information is to be displayed on the LCD, it is stored/organized in the segment driver by commands from a micro-control unit (MCU) and displayed in the appropriate LCD row via the operation of the backplane driver. Often while operating a LCD, information must be scrolled up or down on the screen any given number of rows. Almost all segment drivers having built in RAM (random access memory) can perform this scrolling function in a very simple manner. Generally, each LCD system with built-in RAM segment drivers receives a frame signal (FRM) and a backplane clock signal (BPCLK). The FRM signal operates to set a counter within the segment driver to an initial value. Each BPCLK signal or pulse operates to advance the counter by one up to a predetermined value, whereupon another FRM signal is received. In operation, if the FRM signal sets the counter to zero, row zero of the RAM is fetched into display. At the first BPCLK signal row one of the RAM is fetched into display and so on until the next FRM signal is received. If, however, the counter initially loads a one as the initial number rather than a zero, row one will be displayed rather than row zero. Row two will be displayed upon the first BPCLK pulse rather than row one, and so on until row zero of the RAM is shown followed by the next FRM. In this manner the image is effectively scrolled by one dot line (row). Although the scrolling by prior art scrolling mechanisms is effective, such scrolling is not user friendly. Physically on the LCD screen row zero of the RAM is in the top row of the LCD screen. The MCU is required to keep track of the location of each row of data in relation to each scrolled row on the screen. As a result, the MCU must continually track the vertical scrolling and carefully update the segment driver counters. Additionally, if the RAM is oriented into byte-row form instead of bit-row form, smooth vertical scrolling becomes even more tedious. In GB-A-2 145 308 there is disclosed a raster scan display scrolling mechanism, wherein a physical screen is selected within a logical screen for display. A counter is initialized to the initial address of the physical screen and is then incremented by the value 1 for each subsequent character. Summary of the Invention Accordingly, the present invention provides a Liquid Crystal Display (LCD) scrolling mechanism coupled to at least one segment driver for a LCD, the LCD scrolling mechanism comprising: a micro-control unit (MCU) for controlling information manipulated by the at least one segment driver and displayed in the LCD; a vector register coupled to the MCU for receiving and storing a first address value from the MCU for initializing the vector register; a counter coupled to said vector register and to the MCU for receiving a frame signal from the MCU and for retrieving a stored value from said vector register when said frame signal is received and for receiving a series of backplane clock signals from the MCU and for generating and counting through a series of values when said series of backplane dock signals is received; a subtracter having a first input coupled to said counter; a first bus selector having a first input coupled to said counter, a second input coupled to an output of said subtracter and an output coupled to said at least one segment driver and to the vector register for providing an address signal to the at least one segment driver and to the vector register to provide address values subsequent to the first address value; a wrap-around register coupled to a second input of said subtractor for providing to said subtracter a multiplex value equal to a multiplex value for the LCD; said subtracter being arranged to receive said series of values from said counter for subtracting each of said series of values from said multiplex value to produce a difference signal and to relay to said first bus selector a select signal indicating whether said each of said series of values is equal to or greater than said multiplex value and to relay to said first bus selector said difference signal each time one of said each of said series of values is equal to or greater than said multiplex value; said first bus selector being arranged to receive said series of values from said counter and to relay each of said series of values to the at least one segment driver as the address signal when the select signal indicates that each of said series of values is less than said multiplex value; and said first bus selector being arranged to relay to the at least one segment driver said difference signal each time the select signal indicates that one of said each of said series of values is equal to or greater than said multiplex value. The present invention will be better understood from the following detailed description taken in conjunction with the accompanying drawings. Brief Description of the Drawing Fig. 1 is a schematic of a preferred embodiment of an auto-offset LCD vertical scroll mechanism according to the present invention. Fig. 2 is a simple schematic of a prior art LCD vertical scrolling mechanism. Detailed Description U.S. Application Serial Number 749,071 (European Application No. 92 307 590.7 published as EP-A-0 529 934) entitled LCD Driver and Control Unit describes the operation of the LCD drivers in conjunction with the LCD and the MCU. An auto-offset mechanism 10 for vertical scrolling of information in LCD screens is shown in the schematic of Fig. 1. Auto-offset mechanism 10 comprises counter 12, vector register 14, adder 16, bus selector 18, subtracter 20, bus selector 22, wrap around register 24, and data buffer 26. Auto-offset mechanism 10 is coupled to a MCU 42 and to a RAM 32 of a segment driver. Counter 12 is coupled to vector register 14 and to bus selector 18. Vector register 14 is further coupled to MCU 42 and adder 16. Bus selector 18 is further coupled to adder 16, to MCU 42, subtracter 20, and to bus selector 22. Adder 16 is further coupled to data buffer 26, and data buffer 26 is coupled to MCU 42. Subtracter 20 receives inputs from wrap around register 24, and generates two outputs (discussed subsequently), both of which are relayed to bus selector 22. Bus selector 22 is coupled to RAM 32 through output 38. The advantages of auto-offset mechanism 10 are better understood by a discussion of a conventional counter, shown in Fig. 2. In Fig. 2, a LCD 30 is coupled to a RAM 32 of a segment driver 34. Segment driver 34 comprises a counter/vector register 36, and other elements of segment driver 34, such as data interfacing and control devices, all of which are represented by block 38. A backplane driver 40 is coupled to LCD 30, and coupled to MCU 42. MCU 42 supplies FRM and BPCLK signals to counter/vector register 36. Block 38 is coupled to MCU 42, and the connection may be one-way or two-way depending upon the control device in block 38 which is interfacing with MCU 42. It should be noted that the transfer of information between MCU 42 and block 38 is not shown nor described completely since the emphasis is on explaining the scrolling of information and its relation with counter 36. Other operations of LCD drivers are discussed in US Application Serial Number 749,071 referred to above. A scroll-down operation is described hereafter due to the configuration of LCD 30. If the configuration were reversed, the following discussion would relate to a scroll-up. A scroll-up using the configuration of Fig. 2 will be described subsequently in conjunction with the present invention. The FRM signal received from MCU 42 initializes counter 36. Before scrolling, counter/vector register 36 is generally set at an initial value of zero. Although counter/vector register 36 is described for ease of explanation as a simple unit, counter/vector register 36 actually comprises a separate counter and vector register. The vector register stores the initial value which is received from MCU 42, and this value is retrieved by the counter with each FRM signal. The FRM signal to counter/vector register 36 causes information in row zero of RAM 32 to be displayed in row zero of LCD 30 assuming the vector register has a content of zero. At the first BPCLK signal, row one of RAM 32 is displayed in row one of LCD 30. The second BPCLK signal causes the information in row two of RAM 32 to be displayed in row two and so on until all 64 rows of LCD 30 are displayed. Another FRM signal is then received and re-initializes counter 36, beginning the process over again. When scrolling down by one row, counter/vector register 36 is initialized to one rather than zero. Therefore, the FRM signal will cause information in row one of RAM 32 to be displayed in row zero of LCD 30. Information in row zero of RAM 32 is subsequently displayed in row 63 of LCD 30 as result of the correction operation of subtracter 20 and bus selector 22 of Fig. 1. The information displayed on LCD 30 can be scrolled any number of rows by storing the appropriate value in the vector register. For instance, if the screen is to be scrolled up another row, the value of the vector register is two and counter 36 is initialized to two. Therefore, information in row two of RAM 32 is displayed in row zero of LCD 30, and so on. As mentioned previously, MCU 42 is required to keep track of the scrolled information between LCD 30 and RAM 32 using the prior art method. The auto-offset mechanism 10 independently tracks the scrolled information thus freeing MCU 42 for other purposes. The operation of auto-offset mechanism 10 can be explained by referencing Fig. 1. Auto-offset mechanism 10 is shown connected to elements of segment driver 38, and thus to RAM 32 and LCD 30, all of which were referenced in Fig. 2. Prior to scrolling, vector register 14 is set to zero. Therefore, when a FRM signal is received, counter 12 is initialized to zero. The signal from counter 12 indicating address zero is received by bus selector 18, and is relayed on to segment driver 38 through bus selector 22. At the same time, the address signal output from bus selector 22 is stored in vector register 14. Similar to the system described in Fig. 2, information from RAM 32 will be displayed in corresponding rows of LCD 30 (row zero of RAM 32 displayed in row zero of LCD 30) prior to scrolling assuming the value of vector register 14 is initially set at zero. When information in RAM 32 is to be scrolled down in LCD 30 by, for example, one row, a signal from MCU 42 is received by vector register 14 which sets vector register 14 to one. When FRM is received, counter 12 will check vector register 14 for any preset value. With vector register 14 set to one, counter 12 will initialize to one. With counter 12 initialized at one, bus selector 18 receives a one as the address of data in RAM 32 to be displayed in row zero of LCD 30. The first signal from BPCLK increases the address signal from counter 12 by one to ensure that data in row two of RAM 32 is displayed in row one of LCD 30, and so on. The value in wrap around register 24 will equate to the number of rows of LCD 30 and RAM 32. For instance, for a 64 MUX LCD, the value in wrap around register 24 will be 64. Assuming a 64 MUX LCD 30, the signal from counter 12 will eventually reach 64 before BPLCK stops. BPLCK may surpass 64 as explained below. Since RAM 32 is also only 64 MUX, the signal must wrap-around to bring the information in row zero of RAM 32 into row 63 of LCD 30. Subtracter 20 continuously monitors the output of bus selector 18. When the output of bus selector 18 equals or exceeds the value stored in wrap around register 24 (which value corresponds to the MUX of RAM 32 and LCD 30), subtracter 20 subtracts the value stored in wrap around register 24 from the value retrieved from the output of bus selector 18. Subtracter 20 then sends a signal to bus selector 22 directing bus selector 22 to select the value from subtracter 20 rather than the value from bus selector 18. This new value is then selected by bus selector 22 and relayed to segment driver elements 38. This value is the address in RAM 32 of the information to be displayed in the next row of LCD 30. In this case, the address is row zero of RAM 32 to be displayed on row 63 of LCD 30. When a row of information is to be fetched from RAM 32, an address signal from MCU 42 is sent to data buffer 26 indicating the row of LCD 30 where the information is displayed. Adder 16 retrieves the address in data buffer 26 and adds the address value to the value received from vector register 14. The subsequent address in adder 16 is the row in RAM 32 where the information is stored. A signal from MCU 42 to bus selector 18 directs bus selector 18 to retrieve the address from adder 16. The address is then sent through bus selector 22 to segment driver elements 38. Auto-offset mechanism 10 is used for scrolling up in addition to scrolling down. The same procedure is followed for scrolling up as for scrolling down using inputs to data buffer 26 to determine the location of the address. Auto-offset mechanism 10 allows a user to treat the first row of the LCD as row zero at all times without knowing the actual physical address of the data or information in the RAM. Furthermore, the MCU is not required to track the physical location of the information with relation to the LCD Thus there has been provided an improved LCD vertical scroll mechanism. While the invention has been described in conjunction with specific embodiments thereof, it is evident that many alternatives, modifications, and variations coming within the scope of the appended claims will be apparent to those skilled in the art in light of the foregoing description.

Claims: A Liquid Crystal Display (LCD) scrolling mechanism coupled to at least one segment driver (34) for a LCD (30), the LCD scrolling mechanism comprising: a micro-control unit (MCU) (42) for controlling information manipulated by the at least one segment driver and displayed in the LCD; a vector register (14) coupled to the MCU (42) for receiving and storing a first address value from the MCU (42) for initializing the vector register (14); a counter (12) coupled to said vector register (14) and to the MCU (42) for receiving a frame signal from the MCU and for retrieving a stored address value from said vector register (14) when said frame signal is received and for receiving a series of backplane clock signals from the MCU and for generating and counting through a series of values when said series of backplane clock signals is received; a subtracter (20) having a first input coupled to said counter (12); a first bus selector (22) having a first input coupled to said counter (12), a second input coupled to an output of said subtracter (20) and an output coupled to said at least one segment driver (34) and to the vector register (14) for providing an address signal to the at least one segment driver (34) and to the vector register (14) to provide address values subsequent to the first address value; a wrap-around register (24) coupled to a second input of said subtractor (20) for providing to said subtracter (20) a multiplex value equal to a multiplex value for the LCD; said subtracter (20) being arranged to receive said series of values from said counter (12) for subtracting each of said series of values from said multiplex value to produce a difference signal and to relay to said first bus selector (22) a select signal indicating whether said each of said series of values is equal to or greater than said multiplex value and to relay to said first bus selector (22) said difference signal each time one of said each of said series of values is equal to or greater than said multiplex value; said first bus selector (22) being arranged to receive said series of values from said counter (12) and to relay each of said series of values to the at least one segment driver as the address signal when the select signal indicates that each of said series of values is less than said multiplex value; and said first bus selector (22) being arranged to relay to the at least one segment driver said difference signal each time the select signal indicates that one of said each of said series of values is equal to or greater than said multiplex value. A LCD scrolling mechanism according to claim 1 wherein the scrolling mechanism further comprises: a data register (26) having an input coupled to receive a LCD address from the MCU (42) when information in said LCD address is to be retrieved by the MCU and an output; an adder (16) having a first input coupled to said vector register (14) for receiving said address values from the vector register (14), a second input coupled to the output of said data register (26) and an output; a second bus selector (18) having a first input coupled to the counter (12), a second input coupled to the output of the adder (16), a third input coupled to the MCU (42) for receiving a second select signal therefrom and an output coupled to said subtracter (20) and said first bus selector (22); said adder (16) being arranged to retrieve said LCD address from said data register (26) and to add said LCD address to said address value from the vector register (14) to obtain a scrolled address; said second bus selector (18) being arranged to select said series of values from said counter (12) until said second select signal is received from the MCU (42), whereupon said second bus selector (18) selects said scrolled address from said adder (16); and said second bus selector (18) being arranged to relay either said series of values or said scrolled address to said first bus selector (22) and said subtracter (20).

Inventors: WONG HARVEY, WONG, HARVEY
Applicants: MOTOROLA INC, MOTOROLA, INC.
Application year: 1992
Main classification: G09G3
IPC codes: G09G3, G06F3