Explain the reasons for the widespread use of LCDs in the market today and mention equipment that uses LCDs as their display.

Touch screen TV55 inch

As mentioned above initialization is a write operation, Pin R/W¯ must be reset (R/W¯ = 0) but due to the corresponding Pin being connected directly to the power supply GND we do not need to develop a subroutine to do that.

Before we display data on the LCD, or read, change data on the DDRAM first we must ensure the LCD module is in a non-busy state. Format to read busy LCD status is shown below,D7D6D5D4D3D2D1D0BF (busy flag)AC (address counter) contents

From problem no. 16 above plan and develop a program to display your name and shift it to the right one character each shift to the end of the first line and reappear in the first row and first column continuously [6, 25, 26].

Pin 3 and Pin 15 are used to regulate the brightness of the BPL (Back Plane Light). As mentioned above before the LCD operates on the principle of continuing or inhibiting the light passing through it; instead of producing light by itself. The light source comes from LED behind this LCD called BPL. Light brightness from BPL can be set by using a potentiometer or a trimpot. From Figure 6 Pin 3 (VEE) is used to regulate the brightness of BPL (by changing the current that enters BPL by using a potentiometers/a trimpot). While Pin 15 (BPL) is a Pin used for the sink of BPL LED.

The instructions below will return the cursor to the starting position (home).MOV r1,#02h; fill r1 with immediate data 02hCALL write_instruction; call the write_instruction subroutine

The advantage of using LCD in 4-bit mode compared to 8-bit mode is the number of Pins used as interfaces with microprocessors, microcontrollers, or computers is lesser, but also it has some shortcomings in programming; more complicated (data transmission must be done twice, the first is the high nibble data (D4-D7) then followed by sending low nibble (D0-D3) through D4-D7 data bus. Because the channels used are only 4 bits (D4-D7), a shift operation must be carried out to shift data from low nibble to high nibble (D4-D7) or swap instruction that exchanges between high nibble and low nibble.

Open Access is an initiative that aims to make scientific research freely available to all. To date our community has made over 100 million downloads. It’s based on principles of collaboration, unobstructed discovery, and, most importantly, scientific progression. As PhD students, we found it difficult to access the research we needed, so we decided to create a new Open Access publisher that levels the playing field for scientists across the world. How? By making research easy to access, and puts the academic needs of the researchers before the business interests of publishers.

The voltage source of this display is +5 V connected to Pin 2 (VCC) and GND power supply connected to Pin 1 (VSS) and Pin 16 (GND); Pin 1 (VSS) and Pin 16 (GND) are combined together and connected to the GND of the power supply.

We are a community of more than 103,000 authors and editors from 3,291 institutions spanning 160 countries, including Nobel Prize winners and some of the world’s most-cited researchers. Publishing on IntechOpen allows authors to earn citations and find new collaborators, meaning more people see your work not only from your own field of study, but from other related fields too.

SmartTouch Screen TV

Pins 4–6 are used to control the performance of the display. Pin 4 (Register Select-RS) is in charge of selecting one of the 2 display registers. If RS is given logic 0 then the selected register is the Instruction Register-IR, otherwise, if RS is given logic 1 then the selected register is the Data Register-DR. The implication of this selection is the meaning of the signal sent down through the data bus (D0-D7), if RS = 0, then the signal sent from the MCS-51 to the LCD is an instruction; usually used to configure the LCD, otherwise if RS = 1 then the data sent from the MCS-51 to the LCD (D0-D7) is the data (object or character) you want to display on the LCD. From Figure 6 Pin 4 (RS) is connected to Pin 16 (P3.6/W¯) of MCS-51 with the address (B6H).

If we choose the data width of 4 bits, the process of sending or receiving data or instruction must be done twice. On this occasion we only discuss the 8-bit data width (Data Length-DL) with (DL = 1), the font size 5 × 8 dot (F = 0), the number of lines 2 (N = 1), bits D1, and D0 are filled with logic 0; therefore the instruction that must be given to set the function set is 00111000B = 38H and we can use the instructions or statements below to do the function set.MOV r1,#38h;fill r1 with instruction (function set) 38hCALL write_instruction;CALL write_instructionEntry mode set, this initialization instruction has the following instructions formatD7D6D5D4D3D2D1D0000001I/DS

From Figure 6 above it can be seen clearly that this display has 16 Pins that can be grouped into 4 as shown in Table 1.

The manufacture or the fabrication of AMLCD is far more complicated than the fabrication of passive matrix LCD which causes its price to be more expensive than the passive matrix LCD [2].

This chapter will discuss 10 subchapters that will make it more detailed and easier for the reader to master and implement them in their project. Before discussing the subchapters in detail the author discusses the wide use of LCD in various equipment that needs display and the superiority of it compared to the conventional existing displays especially in the low energy consumption of it compare to the rest of the displays, then the author ended this general discussion by mentioning the type of LCD known in the market right now (passive matrix and active matrix). After discussing the LCD in general, the author starts discussing the detailed 10 subchapters. The 10 subchapters are 1. 2 × 16 LCD; 2. LCD controller; 3. LCD instructions; 4. LCD initialization; 5. More instructions; 6. LCD initialization subroutine; 7. Displaying a character on the LCD; 8. Displaying more than 1 character on the LCD; 9. A 4-bit mode 2 × 16 LCD module. To give the readers with a succinct overview of important details or interesting information, the author provides the summary of this chapter in subchapter 10. The author also provided the glossary to enable the readers to quickly study the general terms used in this chapter. Finally, the author provides some questions to enable the reader to test their own knowledge of this chapter. The references is also provided to enable the readers to refer to some articles as the sources of this subchapter and to enable them to enrich their knowledge of this chapter.

The paper that can be used as a learning media for reading a 4 × 4 keypad and displaying the results of typing characters on the LCD can be seen at the following site address, http://www.arpnjournals.org/jeas/research_papers/rp_2018/jeas_0418_7024.pdf [22].

To restore the cursor to the initial position (line 0, column 0) without changing the data on DDRAM. The format to do this is as follows (RS = 0, R/W¯ = 0), D0 is marked with X we can fill it with either 0 or 1 (do not care) and we choose X = 0. Thus the instruction that must be written to the IR (Instruction Register) is 02H [10, 13].D7D6D5D4D3D2D1D00000001X

Our team is growing all the time, so we’re always on the lookout for smart people who want to help us reshape the world of scientific publishing.

From the instruction format above we can see that the instructions we have to write to the Instruction Register-IR is 80H + the DDRAM addresses where the character is to be displayed; we also have to send signals (RS = 0, R/W¯ = 0). For example, to put the cursor on the first line of the second column (on the LCD then we must provide the following instructions,MOV r1,#82h; fill r1 with 82h (80h + 02h)CALL write_instruction; call the write_instruction subroutine

By using the ASM-51build a program to display the character “A” in the second row and fourth column on the LCD [6, 25, 26].

LCD connected to this controller will adjust itself to the memory map of this DDRAM controller; each location on the LCD will take 1 DDRAM address on the controller. Because we use 2 × 16 type LCD, the first line of the LCD will take the location of the 00H-0FH addresses and the second line will take the 40H-4FH addresses of the controller DDRAM; so neither the addresses of the 10H-27H on the first line or the addresses of the 50H-67H on the second line on DDRAM is used.

There are various types of LCDs commonly used in various microcontroller applications, namely 1 × 16, 2 × 16, 4 × 20 [3]. The LCD type is known by the number of lines and the number of characters per line it has. LCD with type 1 × 16 means, this LCD can only display 1 line of characters, and can only display 16 alphanumeric characters. Likewise, LCD with types 2 × 16 and 4 × 20 each has 2 and 4 consecutive lines, and the first type can only display 16 alphanumeric characters/line, while the last type is capable of displaying 20 alphanumeric characters/line. On this occasion we will only discuss the connection/the usage of the second type of LCD, type 2 × 16 (2 lines × 16 characters/line); by understanding the 2 × 16 type LCD, then you can easily read and learn the manual of other types to connect them to MCS51 [4].

To write data to the LCD is a very similar process to write instruction to the LCD (Instruction Register-IR) as shown in the write_inst subroutine; the only difference between them is the logic state of RS; instead of RS = 0 we give RS a logic 1 (RS = 1) for this process; write data to the Data Register-DR. The subroutine to write data to the Data Register-DR is called write_data as shown below,write_data:MOV P0,r1; fill in P0 (D0-D7) with the data you want to display; which is in r1SETB P3.6;RS = 1 to select data registerSETB P3.7; Enable¯ get logic 1CALL delay; call delay subroutine to give a delay in accord; with 2 × 16. LCD datasheetCLR P3.7; Enable¯ get logic 0RET; return from subroutine write_instruction

As mentioned earlier, before the LCD can be used it must be initialized/configuration initially. After studying the instructions for the initialization process above, we will build a subroutine for the initialization process and call it Init_LCD. In developing this subroutine all that needs to be done is to combine the entire initialization instructions that have been discussed previously. The init_LCD subroutine can be seen as follows,init_LCD:MOV r1,#01h; clear displayCALL write_instructionMOV r1,#38h; function set, data size of 8 bit, 2 lines,; font size 5 × 8 dotCALL write_instructionMOV r1,#0Ch; display ON, cursor OFF, blink OFFCALL write_instructionMOV r1,#06h; entry mode set, the display will not; move, but the cursor will; move to the right one columnCALL write_instructionRET

© 2022 The Author(s). Licensee IntechOpen. This chapter is distributed under the terms of the Creative Commons Attribution 3.0 License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.

The format of the instruction to write data to DDRAM or CGRAM has the same instruction format as shown below. The operation is a writing data to the Data Register-DR; RS = 1 and R/W¯ = 0.RSR/W¯D7D6D5D4D3D2D1D010DDRAM or CGRAM address

Order this book in hard copy and enjoy a 20% discount! Use the promo code 20PRINT during the ordering process.

LGtouch screen TV

After sending the mentioned above instruction to the Instruction Register-IR we need to write the data of the character (ASCII) to display on the LCD to the Data Register; to display the character stored on the CGROM or CGRAM all we need to send is the location of the character stored on either CGROM or CGRAM instead of the code of the character. The format of the instructions to do that is as follows,RSR/W¯D7D6D5D4D3D2D1D0001DDRAM address

D1 (I/D) ⇒ Increment/decrement, if D1 (I/D) = 0 this bit will tell the controller to move the cursor to the left one column (D1 = 0) or move to right one column (D1 = 1) on condition D0(S) =0. But if D0(S) =1 the whole display (the cursor and the character or characters) will move to the left one column when D1 = 1 and to the right one column when D1 = 0; this instruction also increases or decrease the DDRAM address based on the D1 and D0 status. If D0 = 1 and D1 = 0 the DDRAM address will increase one column, but in the contrary if D0 = 1 and D1 = 1 the DDRAM address will decrease one column.

Pin 6 of the LCD (EN¯) is a Pin used to enable the LCD. The LCD will be enabled with the entry of changes in the signal level from high (1) to low (0) on Pin 6. If Pin 6 gets the voltage of logic level either 1 or 0 then the LCD will be disabled; it will only be enabled when there is a change of the voltage level in Pin 6 from high logic level to low logic level for more than 1000 microseconds (1 millisecond), and we can send either instruction or data to processed during that enable time of Pin 6.

Support to cast your devices to the screen wirelessly, and your devices can control the screen wirelessly.

Function set (set data width, number of lines, and font size) with the format of instruction as follows,RSR/W¯D7D6D5D4D3D2D1D000001DLNFXX

Before it can be used as a display for the MCS51 or other microprocessor or microcontroller, the LCD controller must first be configured or initialized by sending instructions to the Instruction Register-IR of the LCD controller. Before you can send instructions from the MCS51 to the LCD controller through P0 (P0.0-P0.7) we must choose the Instruction Register-IR on the LCD controller, by making RS = 0, resetting R/W¯ (R/W¯ = 0), and make a change of signal level to the Enable¯ Pin; from logic 1 to logic 0, see Table 2 for more details.

This instruction is used to ON or OFF the display, display or not display the cursor, and set the cursor to blink or not. The format of this instruction is as follows.RSR/W¯D7D6D5D4D3D2D1D00000001DCB

The characters to be displayed can be in the form of American Standard Code For Information Interchange-ASCII code, characters originating from CGROM (various characters are prepared by the controller manufacturer or producer and are permanently stored in it), and from the character generator RAM-CGRAM (special place on CGROM with the addresses 00000000B-00000111B (consecutive eight locations) prepared for storing characters specifically to be displayed by the user/custom use); the total address of the CGROM with the CGRAM address in it and allocated specially for custom use is 256D (00000000B-111111111B) locations see Figure 5 below; please do not confuse CGROM/CGRAM address with DDRAM address they are two completely different and independent memory locations. The character stored on the CGRAM address is temporary (volatile) and must be stored in it before retrieve and displayed it on the LCD; the data stored in CGRAM will disappear if the source of electrical voltage is cut off; in contrast, the characters stored in the CGROM is permanently reserved in it.

As mentioned before (above) to display one character on the specific location of the LCD we first have to write an instruction to IR; the instruction is “80h + the location of the character to be displayed on the LCD that has the associated addresses of DDRAM” which is on the controller before it can be displayed on the LCD; see the instruction format below.

We will develop some subroutines for this initialization process; to make it easier to use them in the future (just by calling the needed subroutines). The subroutines to be developed includes the write instruction subroutine, the write data subroutine, and the delay subroutine.

The Microcontroller System 51-MCS51 (Microcontroller 8051 family) can also be connected with the LCD, where the LCD is used as a display. On this occasion, we will discuss LCDs commonly used in various microcontroller applications namely LCD 2 × 16; 2 rows with 16 characters/row.

The LCD configuration process is to set the number of lines to be used (1 line or 2 lines), character font size (5 × 8 dot or 5 × 10 dot), the data width used (4 bits or 8 bits), and others. In this chapter, we only discuss the initialization of the LCD controller with a data width of 8 bits and 5 × 8 dot character font size.

From question no. 12 above, state the steps to be taken to display the special characters that have been stored at address 5 (05h) CGRAM on the LCD [6, 25, 26].

The instructions below can be used to determine the CGRAM address (10H = 00010000B) [6, 12].MOV r1,#01010000b; fill r1 with (40h + 10h = 50h) to determine the CGRAM; address; at address 10hCALL write_instruction; call the write_instruction subroutine

If the custom pattern character size used is 5 × 10 dot then CGRAM will only be able to accommodate 6 custom pattern characters. Examples of programs to display special characters on the LCD can be seen in a published paper on the International Journal with the following website address, http://www.arpnjournals.org/jeas/research_papers/rp_ [15].

As mentioned earlier that each location on the LCD has an address that corresponds to the address on DDRAM; See Chapter 2 LCD Controller. To display a character on the LCD you must write an instruction (80h + the address location on the LCD where the character wants to be displayed) to the Instruction Register followed by writing the data (the character code you want to display) to the Data Register-DR.

Enable¯ Pin of the LCD is connected to P3.7 of MCS-51; it must change from logic 1 to logic 0 to enable the process to be executed properly during this slot of time then we can write or develop some instructions for this process as follows,SETB P3.7; Enable¯ (P3.7 = 1)CALL delay; call delay subroutineCLR P3.7; Enable¯ (P3.7 = 0)

Thus, we can build the write_Insli subroutine as shown in subroutine write_Insli below.write_instruction:MOV P0,r1; fill P0 (D0-D7) with initialization instruction; which is in r1CLR P3.6;RS = 0 to select instruction registerSETB P3.7; Enable¯ get logic 1CALL delay; give appropriate delay in accord; with 2 × 16 LCD datasheetCLR P3.7; Enable¯ get logic 0RET; return to the main program from the write_instruction subroutine

Function set (set the width of the data, number of lines, and character font size) with the following instructions format

Explain the reasons for the widespread use of LCDs in the market today and mention equipment that uses LCDs as their display.What is the real difference between active matrix LCD and passive matrix LCD?Explain how the LCD works; associated with the term light modulating properties.What is the light source of the LCD to operate and explain how it works?Name the main parts of the LCD module.Name and explain the types of memory owned by the LCD.What does the term “initialization” mean?What steps should be taken in carrying out write operations on the LCD module?What steps should be taken in carrying out the read operation on the LCD module?State the steps that must be taken in displaying the characters stored in the CGROM onto the LCD.Plan to develop a program to display the character in the first row and 9th column [21, 25, 26].State the steps to store a special character at address 4 (05h) of the CGRAM.Draw a block diagram and explain the advantages and disadvantages of using LCD in four-bit and eight-bit modes.By using the ASM-51build a program to display the character “A” in the second row and fourth column on the LCD [6, 25, 26].From question no. 12 above, state the steps to be taken to display the special characters that have been stored at address 5 (05h) CGRAM on the LCD [6, 25, 26].By using the ASM-51 build a program to display your name on the first line; the first letter of your name appears in the first column [6, 25, 26].From problem no. 16 above plan and develop a program to display your name and shift it to the right one character each shift to the end of the first line and reappear in the first row and first column continuously [6, 25, 26].

To be able to read the busy status of this LCD module we must reset RS (RS = 0), and set R/W¯ (R/W¯ = 1). As shown in the format of the busy/not busy of the status of LCD Bit 7 is the BF (busy flag) and bits 0- bit 6 are the contents of the Address Counter. In this book we will never read BF status; It is assumed that the LCD module remains on standby [6, 12, 15]. Most of the time people use a delay loop to make sure that LCD is ready not in a busy state; this is due to the grounded of Pin 5 (R/W¯) of the LCD to the ground (GND) of the power supply. If you want to study how to read the BF status of the LCD module you can download and study a research paper published on the following site, https://www.sciencedirect.com/science/article/pii/S1110016817300546 [16].

Each time we want to read or change data on certain addresses on DDRAM we must write an instruction to the Instruction Register-IR to be able to access the address before carrying out the activities mentioned above (displaying characters on the LCD, read data on certain addresses from the DDRAM, and change data at the address). The format of the instruction for it is shown as follows,D7D6D5D4D3D2D1D01Address of DDRAM

Touch screen TVwith pen

Image

From Figure 3 above we can see that the DDRAM controller should have a memory map of 104 bytes (00H to 67H = 68H = 104D), but the location that can be used is only 80 bytes 00H-27H (40 bytes) and 40H-67H (40 bytes); Note that the 28H-3FH address (24 location) is not visible.

D0(X) can be filled with either 0 or 1 (do not care) and in this case, we select X = 0. Thus, the instruction that must be written to return the cursor to the initial position on the IR is 02H [10, 13].

It is obviously seen that we need an instruction of 40h + the location of the CGRAM address where the pattern wants to be written to the Instruction Register-IR and followed by a write of the data to the Data Register (DR); this data pattern will be stored in the CGRAM address; the CGRAM is only 6 bits in length (D0-D5), thus the number of CGRAM addresses is only 64 addresses (address 0–63) [14]. To display a custom use character we need to save the patterns (8 patterns in maximum) into the 64-byte size memory location of CGRAM (0D-63D). The first pattern to be displayed will be referred to just like a normal CGROM address but the address is 00h. To save the pattern in the CGRAM address we need to run a command (40H + the first address of the pattern saved in the CGRAM locations) to the IR and followed by eight consecutives write data to the first eight locations of the 64D locations of the CGRAM. To display the CGRAM pattern we need to run the same instruction as to display the pattern in the CGROM, thus run the write command (80H + the DDRAM address where the pattern wants to be displayed on the LCD followed by the run of the write data instruction; the data is 00h. The same steps must be taken for the rest of the pattern saved in the CGRAM addresses (8D-63D); to study how to display a custom use pattern on the LCD in-depth one can visit the following site and download the paper, http://www.arpnjournals.org/jeas/research_papers/rp_2016/jeas_1016_5086.pdf [15].

To display the character on the second line, command C0h + column on the second line where the character is to be displayed in the LCD controller instruction register. The LCD controller manufacturer has also prepared a special location 00h-07h on the CGROM is a place to store special characters that are not provided by the LCD controller manufacturer. This special character is built by the user by sending a 40h command to the instruction register and sending the next eight bytes (the graph of the constructed character) to the data register eight times in sequence.

80 inch touch screen tv.Touch screen TV is the commercial-grade displays for professional environments. An 80-inch IQTouch interactive displays is cost effective that integrates whiteboard, projector, computer, TV, camera, microphone and speakers system into single smart board. IQBoard is the leading provider of Display solutions. We offer 80-inch full HD interactive display with touch screen LCD, fast response speed, protective and anti-glare glass for clear visibility.

Pins 7–14 (8 Pins) of the display function as a channel to transmit either data or instruction with a channel width of 1 byte (D0-D7) between the display and MCS51. In Figure 6, it can be seen that each Pin connected to the data bus (D0-D7) of MCS51 in this case P0 (80h); P0.0-P0.7 MCS-51 connected to D0-D7 of the LCD.

Each place on the LCD has an address that corresponds to the address on the DDRAM on the LCD controller) see Figures 3 and 4 for more details. The DDRAM memory map on the 2 × 16 bit LCD controller that can be used for LCD with type M1632 is 00H-0FH for the first line (16 addresses) and 40H-4FH (16 addresses) for the second line (so the total address location 32 address locations), although as shown in Figure 3 DDRAM memory maps of the LCD controller basically amounted to 80 locations.

Before we can display data on the LCD, or read, change the data on the DDRAM first we must ensure the LCD module is in a not-busy state. The format to read busy Flag-BF of the LCD status is shown below,RSR/W¯D7D6D5D4D3D2D1D00100000001

The program below is an example of a program to display character A on the second line of column 4 (C3H) [21].Org 0hCALL init_LCD; initialization of the LCDStart:MOV r1,#C3h; fill r1 with C3h, put the character; on row 2 column 4 of the LCDCALL write_instruction; call write_instructionMOV r1,#’A’; fill r1 with ‘A’ the character; to be displayed on the LCDCALL write_data; call write_dataSJMP $; halt or stop

The LCD controller can be used for various types of LCDs with various numbers of characters per line; from 8 to 80 characters per line and the number of lines between 1 and 4 lines [4]. The controller has DISPLAY DATA RAM (DDRAM) in it with a memory map as shown in Figure 3 below [7].

From Figure 1 it can be seen that the number of lines of the LCD is 2. The first line contains the words “this is a 2 × 16” while the second line contains the words “ Line LCD Display” [5].

In this book, we will set S and I/D thus the instruction we send to configure the Entry Mode Set is 0000 0111b (07h). The instructions for initialization Entry Mode Set of the LCD we can use the statements below,MOV r1,#07h;fill r1 with instructions (entry mode set) 07hCALL write_instruction;call the write_instruction subroutineDisplay on/off cursor, these instructions have a format as shown belowD7D6D5D4D3D2D1D000001DCB

LCD can be operated in two modes, namely eight-bit mode and four-bit mode. In the eight-bit mode, the eight data busses of the LCD controller are connected to the data bus of the microcontroller used to communicate between the two. In 4-bit mode, only four channels of the 8-bit width data bus of both LCD controllers and microcontrollers are used, namely D7-D4; taken from the data bus of the LCD controller, D3-D0 is not used and is connected to the power supply ground (GND). The eight-bit mode does use more wires than the four-bit mode, but is simpler in programming; the four-bit mode requires fewer wires but is more complicated to program and requires sending instructions and data twice.

From the 2 × 16 LCD control data [20], there are some things we have to do for the initialization process, namelyFunction set (set the width of the data, number of lines, and character font size) with the following instructions formatD7D6D5D4D3D2D1D0001DLNFXX

Data channels (Pin 7–Pin 10) D0-D3 are not used and connected to the ground of the power supply. Note the Pin (R/W¯) is connected to the ground, thus in this mode, one can not read the status or data from the module all you can do only to write either instruction or data to the appropriate register of the LCD controller. If you want the status of the LCD and the data in it to be read then Pin (R/W¯) must be connected to another of the controller that can provide a high signal for a read operation or a low signal for writing operations.

To be able to read or write data on the CGRAM (Character Generator RAM), we must first determine the CGRAM address to be accessed. The format to access CGRAM can be seen below (RS = 0, R/W¯ = 0); a write to the Instruction Register of the LCD with the command/instruction 40h.D7D6D5D4D3D2D1D001CGRAM address

Samsungtouch screen TV

From the format to access the addresses of the CGRAM we can see that the address of the CGRAM which is possible to access is from 000000b to 111111b or if written in the format of the hexadecimal is 00h to 3fh and in the format of decimal is 0d to 63d, thus the total address of the CGRAM is 64 bytes.

Support to lock screen and lock power on/off button to avoid student malfunction and secure privacy.

Shift cursor and display, this initialization instruction is used to shift the cursor position or the entire display to the right and to the left. The format of instructions for this operation is as follows

LCD is an alternative display to the Light Emitting Diode-LED and seven segment display which are commonly used in various microcomputer and microcontroller applications or projects. LCDs are available in various sizes; size is usually based on the number of rows and columns. LCD is basically a module consisting of a display and controller. The controller is a microcontroller that has two types of memory (the DDRAM and the CGROM with CGRAM resides in it; CGROM is a non-volatile memory but not the CGRAM, it is a volatile memory) and two registers (the instruction register and the data register) in it. The LCD modules that are commonly used are LCD with a size of 2 × 16; has two lines and each line can display 16 characters.

Matrix active is often referred to as AMLCD (Active Matrix LCD). Some people call AMLCD with TFT (thin-film transistor) this is due to a transistor that is useful as a large controller of the current through the intersection of pixels. With the use of transistors as controlling currents, controlling the current through intersection becomes faster which ultimately increases the refresh time of this tool which then produces subtler images compared to the LCD-passive matrix [1, 2].

For the initialization process the RS Pin must be reset (RS = 0) this is because we want to access the Instruction Register- IR to provide initialization instructions/commands. RS Pin of the LCD controller is connected to P3.6 of MCS-51, for this reason, to reset this Pin (RS = 0) we can do it by running the CLR P3.6 statement.

Image

Thus for the initialization process to clean the display, the instruction that must be given to IR is (01h) and can be done by running the instructions below.MOV r1,#01h; fill r1 with instruction (clear display) 01hCALL write_instruction; call the write_instruction subroutineShift cursor and display, this initialization instruction is used to shift the cursor position or the entire display to the right and to the left. The format of instructions for this operation is as followsD7D6D5D4D3D2D1D00001S/CR/LXX

When D2 (D-Display) = 1 then the display will be on the opposite if D2 = 0 then the display will be off, so is with the case of D1 (C-cursor) if D1 = 1 then the cursor will be displayed otherwise if D1 = 0 then the cursor will not be shown.

Image

Because the initialization process is a write operation, we name this subroutine as a write_Insli subroutine. Before we build this subroutine, let us recall the Pins connection between the LCD module and MCS-51 for this initialization process.

By using the ASM-51 build a program to display your name on the first line; the first letter of your name appears in the first column [6, 25, 26].

Note that RS = 0 which means we choose Instruction Register-IR and R/W¯ = 0 which indicates a write operation. Thus, the instruction we have to write on IR is 01h.

Applies to all print copy prices | Offer ends 15 December 2024 Enter the code 20PRINT to unlock the offer

In order to use the LCD module, it must be programmed first. By programming it, we can display the characters we want to display on the LCD. To enable it to display the characters, the LCD must first be configured/initialized first. Initialization is a process where we tell the LCD controller to display the characters on the LCD in the mode we want; font type, shift the cursor or the display to the left or to the right direction, blinking cursor or not, characters are displayed on the desired LCD row and column and so on. Basically, LCD programming consists of two operations, namely read and write operations; write or read the instructions to or from the instruction registers-IR or write the data to the data registers-DR. The write operations are used more than the read operation. The read operation is usually used to find out whether the LCD is busy or not (by reading the LCD controller’s busy flag-BF); if the LCD is in a busy state, sending or reading the instructions/data to or from it will be useless. If you have connected Pin (R/W¯) to the power supply ground and you could not read the busy flag-BF status anymore, you can use the delay loop time suggested by the LCD datasheet instead.

The conducted operation is based on the logic status (logic level) of both bits D3 (S/C) and D2 (R/L) as shown in the table below (Table 6) [6, 14],

The LCD module basically consists of two units namely the LCD itself and the controller. The LCD module is mounted and pinned to the controller and then the microcontroller is connected to the LCD controller.

D0 (B-blink) as mentioned above is used to set the cursor to blink or not to blink if D0 = 0 then the cursor will not blink, but if D0 = 1 then the cursor will blink. To initialize the on /off cursor display we use the initialization of display on, cursor off, and blink off thus the instructions that must be sent to IR for it is (0Ch). The instructions used for the initialization of the display on/off cursor are shown below.MOV r1,#0Ch;fill r1 with instruction (display on/off cursor) 0ChCALL write_instruction;call the write_instruction subroutineClear display initialization instructions to clean the display; it has an instruction format as shown in the table below.D7D6D5D4D3D2D1D000000001

We can easily connect this LCD module (LCD + controller) with MCS51, and we do not need any additional electronic equipment as the interface between MCS51 and it; This is because this LCD works with the TTL logic level voltage—Transistor-Transistor Logic.

This instruction will determine the direction of the cursor movement whether it is left or right and determines whether to shift the display or not. The format of this instruction is as follows.RSR/W¯D7D6D5D4D3D2D1D000000001I/DS

Figure 8 below shows a 4 bit mode 2 × 16 LCD module. Unlike the LCD in 8 bit mode in 4-bit mode only used 6 Pins as the LCD interface to other equipment (a microcontroller, a microprocessor, or a computer), 4 bidirectional data bus (D4-D7) (Pin 11-Pin 14), and 2 control signal RS (Pin 4) and E (Pin 6) [6, 24].

CGROM is a non-volatile memory where various characters are permanently stored in it by the manufacturer, see Figure 5 to be displayed on the LCD by sending the address where the character is stored in the CGROM of the LCD controller; The command (80h + column in the first line where the character is to be displayed) is written to the LCD controller’s instruction register.

D4 (DL) ⇒ Data Length. If DL = 0, data width = 4 bits (D4-D7). If DL = 1, data width = 8 bits (D0-D7). D3 (N) ⇒ number of Line. If N = 0 number of lines = 1, if N = 1 number of lines is 2. D2 (F) = > font size. If F = 0 then the font size is 5 × 7 dot, if F = 1 then the font size is 5 × 10 dot. When data width of 4 bits is chosen, data must be sent twice.

Based on datasheets from LCD 2 × 16 and the delay time needed to be around 1000 μs [17]. For that, we can build the subroutine delay as follows,delay:MOV r0,#0h; fill r0 with 0delay1:MOV r7,#0fh; fill r7 with 0Fh (15 s)delay2:DJNZ r7,$; r7 = r7-1, if r7 is not equal to 0 jump to delay 2DJNZ r0,delay1; r0 = r0-1, if r0 is not equal to 0 jump to delay 1RET; return to the calling program or the main program

The instruction or command to display a character on the LCD is 80h. To display a character at a certain location we must add 80H with the location address on the LCD DDRAM where the character is to be displayed. For example, if we want to display a character in the first row and the second column on the LCD we must add 80h + 01h = 81h, while to display the character on the second line of column 4 then we must write 80H + 43H = C3H to the Instruction Register-IR.

For example, to create the character of the letter “T” then this data can be stored in eight consecutive CGRAM addresses (Table 7) [6].

Instruction format to read data from DDRAM or CGRAM has the same instruction format as shown in the table below,RSR/W¯D7D6D5D4D3D2D1D011DDRAM or CGRAM address

Besttouch screen TV for business

Please pay attention to D1 (I/D-Increment/Decrement) it is a “bit” that determines whether the cursor position goes up or down. If D1 (I/D) = 0 (decrement), the cursor position will decrease, which will shift towards the left of one column. Conversely, if D1 (I/D) = 1 (increment), the cursor position will shift to the right of one column.

To be able to display a character on the first line of the LCD, we must provide written instructions (80h + DDRAM address where our character is to be displayed on the first line) in the Instruction Register-IR and then followed by writing the ASCII code of the character or address of the character stored on the CGROM or CGRAM on the LCD controller data register, as well as to display characters in the second row we must provide written instructions (C0H + DDRAM address where our character to be displayed on the second line) in the Instructions Register-IR and then followed by writing the ASCII code or address of the character on CGROM or CGRAM on the LCD controller data register.

To display more than one character is almost the same as to display a single character. The program below is an example of a program to display seven characters “MANDATE” in the first line of the first column (80h) [21, 23].

When D2 (D-Display) = 1 then the display will be on, but if D2 = 0 then the display will be off, just like in the case of D2, D1 (C-cursor) also has the same property if D1 = 1 then the cursor will be displayed otherwise (if D1 = 0) then the cursor will not be shown. D0 (B-blink) as mentioned above is used to set the cursor to blink or not if D0 = 0 then the cursor will not blink, but if D0 = 1 then the cursor will blink.

LCD stands for Liquid-Crystal Display. From the name, we know that this equipment is used as a display. Many types of electronic equipment (Laptop, Digital Voltmeter, Mobile Phone, ATM-Automatic Teller Machine, PC-Personal Computer, Compact Disk Player, Digital Thermometer, Clothe Washer, Flat TV-Television, etc.) has used this equipment to display images, Alpha Numeric information, and video. LCD is electronic equipment (display) made from liquid-crystal layers which operate if it gets varied voltage/currents which change the optical properties (light modulating properties) of this display; which causes this tool to continue or block the light through it. LCD uses its own light source known as Back Plane Light (BPL). Compared to other types of display such as CRT (Cathode Ray Tube), LED (Light Emitting Diode), plasma gas, LCD consumes smaller power, this is because it does not produce light, but this tool displays images with the principle of inhibiting or forwarding light; the changing of the optical properties of the LCD when it gets a varying voltage/current on the LCD layer and the existence of a light source (BPL) causes this equipment to display the object/character that can be seen by our eyes. At present, there are two types of LCDs known in general, namely,Passive matrixActive matrix

This instruction serves to return the cursor to the initial position (line 0, column 0) without changing the data on DDRAM. The format to do so is shown in the table below.RSR/W¯D7D6D5D4D3D2D1D0000000001X

Pin 5 (R/W¯)) of the LCD does not appear in Figure 6 is used for read/write operations. If Pin 5 is given logic 1, the operation is a read operation; reading the data from the LCD. Data will be copied from the LCD data register to MCS-51 via the data bus (D0-D7), namely Pins 7–14 of the LCD. Conversely, if Pin 5 is given a voltage with logical 0 then the operation is a write operation; the signal will be sent from the MCS51 to LCD through the LCD Pins (Pins 7–14); The signal sent can be in the form of data or instructions depending on the logic level input to the Register Select-RS Pin, as described above before if RS = 0 then the signal sent is an instruction, vice versa if the RS = 1 then the signal sent/written is the data you want to display. Usually, Pin 5 of the LCD is connected with the power supply GND, because we will never read data from the LCD data register, but only send instructions for the LCD work configuration or the data you want to display on the LCD.

The following are other commands besides the initialization command, write data, and write instructions mentioned above. These instructions or commands determine the Display Data RAM (DDRAM) address, read the status of the LCD (Busy Flag-BF), and specify the Character Generator RAM (CGRAM address).

As previously mentioned above to build the LCD module, the LCD (M1632) is mounted on and pinned to the HD44780 controller. To use the LCD module in MCS-51 the controller is connected to the MCS-51 (Figure 2) [3, 6].

Likewise, if we want to put the cursor in the position of the first line of column 15 (0fh) then we must provide the following instructions, [10, 13].MOV r1,#8Fh; fill r1 with 8Fh (80h + 0Fh)CALL write_instruction; call the subroutine write_instruction

However, the display looks just having 00H-0FH addresses for the first line and 40H-4FH addresses for the second line as shown in Figure 4 above [8].

As mentioned earlier in Chapter 2 LCD controller, CGRAM (Character Generator RAM) is a part of CGROM (Character Generator ROM); See Figure 5 below [9]. From Figure 5 we can see that CGRAM with an address of 00000000b-00000111b (eight addresses) which is a part of CGROM is deliberately prepared by the manufacturer to be able to store custom use characters needed by the user and not be prepared by the manufacturer such characters as, battery picture, alarm picture, or other characters at the CGRAM addresses.

From the table above we can see the busy flag-BF can be read on the 7th bit (D7), while the D0-D6 bit contains the address counter (cursor position). If D7 (BF) = 0 indicates the controller is not busy, on the contrary, if D7 (BF) = 1 indicates the controller is in a busy state. For example, the program to check busy bits or busy flag-BF can be seen in a published paper in the International Journal with the following website address, https://www.sciencedirect.com/science/article/pii/s1110016817300546 [16].

This instruction is used to on or off the display, display or does not display the cursor, and set the cursor to blink or not.

Built-in Whiteboard software under Android system allow to do two separate screen teaching and three separate screen teaching.

Clear display initialization instructions to clean the display; it has an instruction format as shown in the table below.

Touch Screen TV32 inch

Touch screen TV43 inch

From the instruction format above we can see that the DDRAM address has a memory space of 128 locations (0000000b-1111111b) or 00H-7FH but the addresses that can be accessed only 80 locations from 00H-27H and 40H-67H each of them is 40 location memory spaces. For 2 × 16 LCD the addresses are limited to 32 locations with the first line DDRAM addresses of 00H-0FH (0D-15D) and the second line with the associated addresses range 40H-4FH (64D-79D).

The results of the reading from busy flag will appear as shown in the table below.D7D6D5D4D3D2D1D0BF (busy flag)AC (address counter) contents

To save one custom pattern character with a size of 5 × 8 dot (5 columns × 8 lines) it takes eight address locations on CGRAM, thus 64 locations on CGRAM can only accommodate or store eight custom patterns; 1 memory location is occupied by 1 custom pattern line. If we make a storage memory map of CGRAM we can see it as shown on the CGRAM memory map below.Pattern no.CGRAM addressHexa decimalDecimal100-070–7208-0F8–15310-1716–23418-1F24–31520-2732–39628-2F40–47730-3748–55838-3F56–63

Just like the microcontroller, the LCD controller must also be programmed first to operate. Programming the LCD controller is an easy thing, all we have to do is only to give the appropriate logic level to the three Pins RS, R/W¯, E (Pins 4, 5, and 6), and DB0-DB7 Pin (Pin 7–14); see Figure 7. Each time we want to execute an instruction (read or write operation) there must be a change of logic level of Pin 6 (E-Enable); from logic 1 to logic 0 so that the instruction given to the controller can be executed properly, see Figure 7 below [12].

IntechOpen Limited 167-169 Great Portland Street, London, W1W 5PF, UNITED KINGDOM

The memory in the controller can be divided into two, the Display Data RAM-DDRAM, and Character Generator ROM-CGROM. DDRAM is a RAM memory (volatile memory) each address on the DDRAM has a corresponding address to each location on the LCD; where the character will be displayed. LCD with a size of 2 × 16, the first line has the DDRAM addresses corresponding to the LCD addresses of 00h-0Fh, while the second line has a DDRAM address corresponding to the LCD addresses of 40h-4Fh.

Likewise, the Bit D0(S) if D0(S) = 0 then the operation is normal, the cursor shifts but the display will stay in the same place, but if D0(S) = 1 then the display will shift one column to the right if D1 = 0 (the cursor will remain in the same place/no movement. So, if we want a normal operating display and the cursor shifts to the right then the instructions, we have to give to IR is 06h and is 04h if you want to cursor shift to the left. Table 3 below summarizes the instructions given and the result of the cursor and the display movement.

From Table 5 above it can be seen clearly that the delay time is 546 MC (546 × 10−6 s) or can be written as follows 546 μs; you can adjust the content of register r0 and r7 to obtain the recommended 1000 μs (enable cycle time) to ensure the LCD is really ready to receive the next command (not in a busy state).

As mentioned above, to display a character (ASCII) you want to show on the LCD, you need to send the ASCII code to the LCD controller data register-DR. For characters from CGROM and CGRAM we only need to send the address of the character where the character is stored; unlike the character of the ASCII code, we must write the ASCII code of the character we want to display on the LCD controller data register to display it. For special characters stored on CGRAM, one must first save the special character at the CGRAM address (prepared 64 addresses, namely addresses 0–63); A special character with a size of 5 × 8 (5 columns × 8 lines) requires eight consecutive addresses to store it, so the total special characters that can be saved or stored on the CGRAM addresses are only eight (8) characters. To be able to save a special character at the first CGRAM address we must send or write 40H instruction to the Instruction Register-IR followed by writing eight consecutive bytes of the data in the Data Register-DR to save the pattern/image of a special character that you want to display on the LCD [9, 10].

Clear display is an instruction that will clean the display and restore the cursor to the initial position (00h address). The format of this instruction is as follows,RSR/W¯D7D6D5D4D3D2D1D00000000001

80 inch touch screen tv.Touch screen TV is the commercial-grade displays for professional environments. An 80-inch IQTouch interactive displays is cost effective that integrates whiteboard, projector, computer, TV, camera, microphone and speakers system into single smart board. IQBoard is the leading provider of Display solutions. We offer 80-inch full HD interactive display with touch screen LCD, fast response speed, protective and anti-glare glass for clear visibility. IQTouch K interactive touch screen feature 20-point touch and dual system -- Android 8.0 system and optional OPS Windows 10Pro system. Its 4K UHD resolution facilitates presentations and collaboration. With optional multi-screen casting software, IQClass 6.0 and installation-free IQClass Plus software, IQTouch K Series can help create an interactive and collaborative teaching atmosphere in class.