Anda di halaman 1dari 6

LCD pin descriptions: The LCD discussed in this section has 14 pins.

The function of each pin is given in table.

LCD pin descriptions

LCD pin desciptions Vcc, Vss, and VEE: While Vcc and Vss provide +5V and ground, respectively, VEE is used for controlling LCD contrast. RS register select: There are two very important registers inside the LCD. The RS pin is used for their selection as follows. If RS = 0, the instruction command code register is selected, allowing the user to send a command such as clear display, cursor at home, etc. If RS = 1 the data register is selected, allowing the user to send data to be displayed on the LCD. R/W read/write: R/W input allows the user to write information to the LCD or read information from it. R/W = 1 when reading; R/W =0 when writing. E enable:

The enable pin is used by the LCD to latch information presented to its data pins. When data is supplied to data pins, a high to low pulse must be applied to this pin in order for the LCD to latch in the data present at the data pins. This pulse must be a minimum of 450 ns wide. D0 D7: The 8 bit data pins, D0 D7, are used to send information to the LCD or read the contents of the LCDs internal registers. To display letters and numbers, we send ASCII codes for the letters A Z, a z, and numbers 0 9 to these pins while making RS = 1. There are also instructions command codes that can be sent to the LCD to clear the display or force the cursor to the home position or blink the cursor. Table below lists the instruction command codes.

LCD Commands table We also use RS = 0 to check the busy flag bit to see if the LCD is ready to receive information. The busy flag is D7 and can be read when R/W =1 and RS = 0, as follows: if R/W =1, RS =0. When D7 = 1(busy flag = 1), the LCD busy taking care of internal operations and will not accept any new information. When D7 = 0, the LCD is ready to receive new information. Note: It is recommended to check the busy flag before writing any data to the LCD. Example programs are given in the next page.

Examples:

Interfacing LCD to 8951 Here Data pins D0-D7 are connected to port1.0-port1.7 of 8951 microcontroller. Enable pin, RS are connected to P3.3 and P3.4 of 8951 respectively. We can write program for LCD in two ways. 1. Sending commands and data to LVDs with a time delay. 2. Sending commands and data to LVDs with checking busy flag. 1. Program to display ELECTROFRIENDS in LCD without checking busy flag. MOV A,#38H ; initialization LCD 2lines, 57 matrix. ACALL COMMAND ; call command subroutine. ACALL DELAY ; call delay subroutine. MOV A,#0EH ; display on, cursor on ACALL COMMAND ACALL DELAY MOV A,#01H ; Clear LCD ACALL COMMAND ACALL DELAY MOV A,#06H ; shift cursor right ACALL COMMAND ACALL DELAY MOV A,#80H ; cursor at beginning of 1st line ACALL COMMAND ACALL DELAY MOV A,#E' ; display letter E ACALL DATA ACALL DELAY MOV A,#L' ; display letter L ACALL DATA ACALL DELAY MOV A,#E' ; display letter E ACALL DATA ACALL DELAY MOV A,#C' ; display letter C ACALL DATA ACALL DELAY

MOV A,#T' ; display letter T ACALL DATA ACALL DELAY MOV A,#R' ; display letter R ACALL DATA ACALL DELAY MOV A,#O' ; display letter O ACALL DATA ACALL DELAY MOV A,#F' ; display letter F ACALL DATA ACALL DELAY MOV A,#R' ; display letter R ACALL DATA ACALL DELAY MOV A,#I' ; display letter I ACALL DATA ACALL DELAY MOV A,#E' ; display letter E ACALL DATA ACALL DELAY MOV A,#N' ; display letter N ACALL DATA ACALL DELAY MOV A,#D' ; display letter D ACALL DATA ACALL DELAY MOV A,#S' ; display letter S ACALL DATA ACALL DELAY HERE: JMP HERE COMMAND: MOV P1,A ; Send command to LCD CLR P3.4 ; RS=0 for command CLR P3.5 ; R/W=0 for write SETB P3.3 ; E=1 for high pulse CLR P3.3 ; E=0 for H-to-L pulse RET DATA: MOV P1,A ; Write data to LCD SETB P3.4 ; RS=1 for data CLR P3.5 ; R/W=0 for write SETB P3.3 ; E=1 for high pulse CLR P3.3 ; E=0 for H-to-L pulse RET DELAY: MOV R2,#50 D1: MOV R3,#0FFH D2: DJNZ R3,D2 DJNZ R2,D1 RET 2. Program to display ELECTROFRIENDS in LCD with checking busy flag.

MOV A,#38H ; initialization LCD 2lines, 57 matrix. ACALL COMMAND ; call command subroutine. MOV A,#0EH ; display on, cursor on ACALL COMMAND MOV A,#01H ; Clear LCD ACALL COMMAND MOV A,#06H ; shift cursor right ACALL COMMAND MOV A,#80H ; cursor at beginning of 1st line ACALL COMMAND MOV A,#E' ; display letter E ACALL DATA MOV A,#L' ; display letter L ACALL DATA MOV A,#E' ; display letter E ACALL DATA MOV A,#C' ; display letter C ACALL DATA MOV A,#T' ; display letter T ACALL DATA MOV A,#R' ; display letter R ACALL DATA MOV A,#O' ; display letter O ACALL DATA MOV A,#F' ; display letter F ACALL DATA MOV A,#R' ; display letter R ACALL DATA MOV A,#I' ; display letter I ACALL DATA MOV A,#E' ; display letter E ACALL DATA MOV A,#N' ; display letter N ACALL DATA MOV A,#D' ; display letter D ACALL DATA MOV A,#S' ; display letter S ACALL DATA HERE: JMP HERE COMMAND: CALL READY ; check whether LCD is ready MOV P1,A ; Send command to LCD CLR P3.4 ; RS=0 for command CLR P3.5 ; R/W=0 for write SETB P3.3 ; E=1 for high pulse CLR P3.3 ; E=0 for H-to-L pulse RET DATA: CALL READY ; check whether LCD is ready MOV P1,A ; Write data to LCD SETB P3.4 ; RS=1 for data CLR P3.5 ; R/W=0 for write SETB P3.3 ; E=1 for high pulse

CLR P3.3 ; E=0 for H-to-L pulse RET READY: SETB P1.7 ; make P1.7 input port CLR P3.4 ; RS=0 SETB P3.5 ; R/W=0 for read UP: SETB P3.3 ; E=1 for high pulse CLR P3.3 ; E=0 for H-to-L pulse JB P1.7, UP ; stay until LCD is busy RET

Anda mungkin juga menyukai