Transcript for:
Connecting 16x2 LCD with TM4C123

hello everyone in this video we are just going to interface 16 cross2 alpha numeric displays with our microcontroller tm4 c123 GX 6PM or to our TAA C Series Launchpad for printing some data onto it in 8bit mode like this let's get started and now let us try to discuss about the schematic that we are going to build for interfacing this LCD display in 8bit mode with our Diva C Series Launchpad so in the previous video we just discussed about the 16 cross2 display in detail all the pin notes of this display and also the functioning of the this display right so now we are just going to connect this display to our TAA C Series microcontroller for printing some data onto this LCD so you can clearly see we are having totally 16 pins in this LCD display first pin is vsss which is the ground pin I'm just going to connect it to the ground of the circuit and regarding the second pin is the vdd PIN which will be conned to 3.3 volt pin of the diva C Series launch pad so the LCD has been powered up from the power source of the TAA C Series development board itself and the third pin is nothing but the contrast pin of the LCD which will be cona to a potentiometer like this that is nothing but a 10 KMS variable resistor like this the center terminal of the variable resistor is countered to ve and one end of the variable resistor is countered to power source that is 3.3 volt and other end of the variable resistor is cona to ground and the contrast of the font that is being printed on this LCD display can be varied with the help of this variable resistor which is a 10 kilms variable resistor and regarding the next fourth pin is nothing but the register select pin which is useful for differentiating the data and instructions that is being sent to the LCD display and it will be ConEd to pd0 of the microcontroller you can clearly see here is the pd0 and to that pin I have connected the RS and regarding the RW pin of the LCD I'm just connecting this RW pin to the pd1 you can clearly see here is the pd1 I have connected this pd1 of the microcontroller to the RS pin which is useful for differentiating read and write operation to the LCD display and the next pin is nothing but the enable pin and I have connected the enable pin of the L L CD to the pd2 of the microcontroller so PD 0 is conned to RS pd1 is conned to RW and pd2 has been counted to enable pin of the LCD display and the left out pins are nothing but the data lines starting from d0 to D7 and other than that we are having an anode and cathode of the black light of the LCD so this anode and cathode is nothing but the backl anode and cathode terminals so for using the backlight I just want to connect this anod terminal of the backlight to power source WEA 1 kilms resistor and regarding the cathode terminal I will be just connecting it to the ground of the circuit so I will be connecting this cathode to the ground of the development board and anode will be ConEd to 3.3 volt pin of the development board through 1 K resistor and regarding this data lines using which we will be passing instructions and data to the LCD I will be connecting all these data lines starting from d0 to D7 like this you can clearly see d0 is connected to p7 and D1 is connected to pa6 D2 is ConEd to pa5 D3 is ConEd to pb4 D4 is conned to P5 D5 is connected to P4 D6 is connected to pb1 and Fin finally D7 data line of the LCD is connected to pb0 of the microcontroller so for ease of connection I have connected all the data lines in such a way in the same bug terminal of the development board so these are all the connections that I'm going to make I'm just powering up this LCD with the help of this 3.3 volt pin right over here you can clearly see this is the vbus PIN so this is the vbus PIN to which I have connected the vdd and ano terminal of this LCD and regarding the Ground Terminal I have connected the ground I have utilized The Ground Terminal available right over here so in this bug connector of ground I have connected the cathode and vsss pin of the LCD so that's all about the connections that I'm going to make that's all about the circuit that I'm going to build for interfacing this 16 cross2 lcdd to our tm4 c123 microcontroller in 8bit mode and you can see as per the schematic that has been discussed right now this is the PIN oute diagram right so RS is ConEd to pd0 RW is Con to pd1 enable pin is Con to pd2 and further d0 is Con to p7 D1 is Con to pa6 D2 is Con to pa5 D3 is Con to pv4 D4 is Con to p E5 D5 is ConEd to P4 D6 is ConEd to pb1 and finally D7 is ConEd to pb0 so other than this we don't require any other pins for programming part other than this all the other pins are for sourcing the LCD display so we will not be considering it in our program so these are all the pin notes required so as per the schematic that I have shown to you this is the schematic diagram that we discussed right now and this is the pin out structure that I'm going to use for connecting the LCD to the TAA C Series Launchpad development board and I just want to show you one previous function that I wrote in the lecture of interfacing seven segment displays with the same microcontroller so if you have watched that lecture you could be able to remember this print data function using which we just printed the data on the seven segment LED displays so this is the function which is useful for converting the bite of data that is received as a parameter to this function into individual 8 bit data starting from bit 0 to bit 7 and according to each bit status starting from bit 0 to bit 7 the corresponding pin will be turned on if the bit is having the value one and the corresponding pin will be turned off if the corresponding bit is having the value Z so this is the actual methodology on which this function works so we are just going to use the same function for passing the data on the data lines of the LCD so let me just show you the schematic diagram that we built for interfacing seven segment LED displays with our microcontroller that is to our Tas series launch pad so this is the schematic diagram so here you can clearly take a look that the terminal a of the seven segment display is cont to pa7 and it goes on like this and H which is the last bit s of the seven segment display which is ConEd to pb0 so you can also compare this schematic with the LCD schematic that we are going to build so here also the data lines of the LCD is ConEd to the same pin notes you can clearly see d0 is CED to pa7 it goes on like this and D7 is ConEd to pb0 so it's like a same thing right so I have here I have connected the data lines of the seven segment displays to the same PS pa7 65 pb4 P5 P4 pb1 and pb0 but here I have connected the data lines of the LCD to p765 pb4 P5 P4 pb1 and pb0 so I'm not going to change anything in this function since I have utilized the same 8 pins for interfacing the LCD there in that video I just utilized these eight pins in the same order for passing the data to the seven segment LED displays but here the only difference is I'm just going to utilize the same pins for passing the datas to the data lines of the LCD in same 8bit manner so I'm just going to copy this function and I'm going to paste it right over here so let me just make the function declarations in the top so let me just make the function Declaration of this delay function first so this is function declaration you can see I'm just telling the compiler that there is a function named delay in this program and now I can place this function anywhere in the program let me just paste it below this main I just want to declare this function also so let me just copy this and now after the Declaration I'm just going to paste it below the delay function so now you can clearly see the Air Terminal of the seven segment display which is the zeroth bit of the data that is being received right over here is counted to p7 so in the same manner you can see this is the pin out layout for data lines of the LCD d0 is ConEd to p7 so let me just copy this zeroth bit here is ConEd to d0 that is pa7 and similarly D1 is connected to ps6 but there we just connected the B terminal of the seven segment display that is the first bit of the data is ConEd to B terminal of the seven segment display and to the microcontroller pin pa6 let me just copy this so in the same manner I'm just going to replace all the other segment terminals to LCD display terminals in this program for better understanding so I'm just commenting this for better understanding purpose and if you want to understand this function better because I have just given an overview of the working principle of this function right over here on this video and if you want to learn more about this function you just want to visit my previous video of interfacing seven segment displays with this Tas C Series Launchpad development board there I have built this function from scetch and I have taught you how this function works with an example bite of data so if you want a clear understanding or if you have missed that lecture please watch that lecture I will also recommend that to you but basic functionality is same it will receive a bite of data here and it will split this bite of data into individual bits starting from 0 to 7 and according to the bit status the corresponding pin will be turned on if the bit is having the value one and if the corresponding bit is having the value zero the corresponding pin will be turned off so this is the basic functionality of this function so let me just erase all this and now as the next step we have built a function for transmitting the data to the data lines of the LCD so we just copied this function from the previous one of our programs and now we are just going to initialize the GPO pins so these are all the pins that I'm going to utilize for interfacing LCD right so first thing that I want to do is I just want to let me get into the initialization segment of the program that is above this V of one so this is the so the programming lines that I'm going to write over here are the initialization segment which needs to be executed only once in the initial state of the program so for the rest of the life of the program this will not be executed so now the first thing that I want to do was from the schematic diagram that I have built we can clearly see I just want to enable the clock for the ports that I'm going to utilize so the first Port that I want to utilize is port a port B Port e and also Port D so let me just enable the clock of for a for to B Port D and Port e so that can be done with the register as we have been practicing this in the earlier videos we very well know that this can be done in a register called rcgc GP I which is available under system controlled tab of the data seat so the pointer that I'm going to use right over here is sysctl which is the system control pointer this is the Base address pointer so with this I just want to point to the register rcgc GP I is equal to S CTL rcgc GP R of so let me open the data seat so this is the register so this is 32bit register you can clearly see it is having values between 0 to 31 but the available bits is from 0 to 5 other than this we are not having any other bits all the other bits are reserved so we very well know that in this register the r0 is meant for Port A R1 is meant for Port B R2 is for C R3 is for D R4 is for e and finally R5 is meant for Port F so if I write one to this r0 the clock of the port a will be enabled and if I write zero to this r0 the clock of the port a will be disabled so this is the process and similar case for all the other ports if I want to enable the clock of Port B I just want to write one to this R1 that is to the bit one of this register must be turned on and if I want to enable the clock of p d I just want to write one to the bit number three of this register and similarly if I want to enable the clock of Port E I just want to write one to the bit number four of this register so for me I just want to enable the clock of port a b d and e so I just want to write one to bit number Z for a 1 for B 3 for D and four for E so these are all the four bits that I want to enable so let me just perform that first thing is Port A and Port B that is bit number one and then Port D and finally Port e so I'm enabling the zero bit first bit third bit and fourth bit so second bit is meant for Port c i don't require Port C since I'm not utilizing any of the pins from Port C so and also I'm not utilizing any pins from Port TF so I'm neglecting the bit number five and bit number two other than that I'm just enabling these four bits in this register through this line I'm just enabling the clock of 4 a b d and e and the next step is I just want to digitalize the data pins and conf configuration pins so I just want to digitalize all these pins since I'm going to utilize all these pins as digital pins in my microcontroller so let me just open the Deen register as we have been doing all these things in from the starting lecture of LED blink I hope you remember all these registers so the register that I want us this digital enabled register so in this register you can clearly see this register is having only 8 Bits as a open bits and all the other bits is reserved bits so this is also a 32bit register but available bits is only the LSP data bits starting from bit 0 to bit 7 so each of the Port will be having a different pointer in our program as per our CMS file provided from the Silicon vendor so for those Port pins you just want to utilize the different pointer structures defined and the separate bits available in this register is meant for the corresponding Port pins so for example if I want to digitalize the pa0 I just want to use the pointer for pa0 that is the pointer for p a in my cmss file and I want to point to the de register and I want to set this bit 0 to be one so that the pa0 can be digitalized in the similar manner I can digitalize pins from pa1 to pa7 by setting one to all these bits so if I want to configure port to B I just want to use different pointer so this is the concept and now I just want to digitalize all these spins so starting from PD 0 to pd2 I just want to digitalize all these spins and then I want to digitalize pa5 to pa7 and then I want to digitalize PB 0 pb1 pb4 in Port B and in Port E I just want to set fourth bit and fifth bit so as I said let me start with the port e so the pointer for Port A in my CMS file provided by the Silicon vendor is GP o a and I want to point to the Deen register R is equal to I want these three pins in P to be digitalized so as I said I want PA 5 6 and 7 to be digitalized so I just want to write one two these three bits bit number five six and 7even so for that I just want to write one left shift of five one left shift of six one left shift of 7 and as the next step I just want to go to the port B so Port B pointer is GP a o and I will be pointing to the register DN R is equal to I just want to digitalize PB 0 pb1 and pb4 pb0 pb1 and pb4 and as the next Port I'm just going to digitalize Port D pins pd0 pd1 and pd2 so the pointer for portd is thep d n r is equal to one left shift of zero one left shift of one one left shift of two and the next Port is port e in which I just want to digitalize P4 and P5 so GP IE b n r r is equal to one left shift of 4 R of one left shift of five so we have successfully digitalized the data lines of the LCD as well as the RS RW enable which is the configuration lines of the LCD and as next step we just want to set the direction of data pins and configuration pins that is I just want to set all these pins as output pins so that can be done with the register called GP IO Direction register so this register is also a 32bit register starting from bit 0 to bit 31 but it is having the values only from bit 0 to bit 7 all the other bits are reserved so as we configured the de register we are just going to use the same methodology here also for the DI register the only thing is that if I write one to any of the bits in this register that will be configuring the corresponding pin as output and if I clear any of the B that will be configuring the corresponding pin as input for example if I'm using the pointer of Port A and I'm pointing to this register and if I write one to the bit number zero of this register then pa0 will be configured as output and if I do the same process and if I write zero to the bit number Z of this register the pa0 pin will be configured as input so this is the concept so in our case I just want to conf configure every pin as output so I want to write one to each and every pin right over here so as we did for the de I'm just going to do same thing for writing one to all these bits available here in the DI register so let me start from the beginning port a with the same pointer GP ioa I'm just going to point now to the DI register and I'm going to write one to bit number five I'm making the PA 5 as output pa6 as output and pa7 also as output now I'm just going to GP I so in the dport I just want Z 1 and two to be configured as output so bit number zero bit number one and bit number two so in the similar manner I'm just going to configure the sorry here I have configured Port B that is nothing but Port D so in the similar manner I'm just going to configure PB 01 as output PB 01 pb4 as out output and also going to the port e I'm just going to configure P4 and P5 as output so we have successfully finished with the initialization part of the GPO pins required for interface using LCD display now let us try to write our own user defined functions for writing data as well as instructions to the LCD so the first function that I'm going to declare right over here is LCD data function and it will be receiving a parameter called data and the second function that I'm going to write is LCD command function which will be useful for transmitting instructions to the LCD and the third function that I'm going to write is LCD string which here now is useful for transmitting a string of data to the LCD here the first thing that I'm going to fetch is pointer or an array starting address and then I will be fetching the length of the array that I'm going to pass that is the length of the string that I'm going to print on the LCD and the final function that I'm going to write is LCD initialization function and it will not be fixing any parameters so in this function I will be writing some basic instruction sets that is required for initializing the LCD and this function is useful for passing a string of data to the LCD for printing a string of data I will be UTI utilizing this function and regarding this function it is useful for passing a bite of instructions through the LCD and this function is useful for passing a bite of data that needs to be printed on the LCD so this is the programming functions that I'm going to Define now for interfacing the LCD and and let me just take this function and put it in the bottom segment of the program now Above This Sprint data function I'm just going to Define all these functions one by one the first function that I'm going to write is LCD data function which is useful for passing a bite of data which needs to be printed on the LCD so there are several steps that needs to be followed for writing a character data to the LCD and also for writing a instruction data to the LCD so this we discussed about each pin description of RW RS and enable in the one of the previous lecture called LCD working explained I hope you remember that lecture which is useful for describing the pinote structure of the LCD so now I'm just going to follow some steps which is common for this 6 cross to alpha numeric display for passing a bite of data which needs to be printed on the LCD so first step us I just want to pass the data to the data lines of the LCD that is in 8bit mode I just want to pass 8bit data and the second step is I just want to turn off the RW pin RW pin for enabling the right operation in LCD and the third thing that I want to do was I just want to turn on the RS pin of the LCD for writing to the data register of the LCD and finally I just want to turn on the enable pin of LCD for enabling the clock of LCD here I just want to wait for some time using delay for approximately 1 millisecond or less than 1 millisecond and after that I will be after the delay I will be turning off the enable pin of LCD so these are all the steps that needs to be followed for writing a character data which needs to be printed on the LCD so as the first thing I just want to pass the 8 bit data to the data lines of the LCD as I mentioned this is the function that I'm going to utilize for passing the data to the data lines of the LCD that is for passing a bite of data to the data lines of the LCD right so I'm just going to use this function for passing the 8bit data to the LCD directly so here the data is nothing but the local variable data which is the parameter to this LCD data function and the next step is I just want to turn off the RW pin for enabling the right operation if I turn on this bit then the LCD will be in read operation so we know that the RW is Con to pd1 so I will be turning off this pin by using the pointer GP IOD I just want to use the data register right so for writing to the output pin and also for reading the data from the input pin we will be utilizing a register called Data in the GPO peripheral right so this is the data register you can clearly see which is useful for reading the pin status if the pin is configured as input and writing to the particular pin or setting a particular pin or clearing a particular pin if the pin is configured as output so I'm just going to use this data register for enabling and disabling the corresponding output pins in my program so R is equal to I'm just going to turn off the pd1 right so for turning off I just want to perform ambon is equal to negation of so this will turn off the bit number one of Port D bit number one of Port D is RW pin so I'm just turning of the RW pin right over here and then I just want to turn on the RS pin of the LCD so RS spin is ConEd to pd0 so I just want to write one to the bit number zero of the port D so that can be done with GPA D data R is equal to one left shift of zero so this will turn on the RS pin and after that I just want to turn on the enable pin so enable pin is nothing but pd2 so let me just turn on the enable pin and this will turn on the enable pin here I just want to wait here for some time since I'm having a rough Loop delay I'm just going to utilize this delay right over here so let me just provide a rough value of 10,000 since the microcontroller is running in 16 MHz clock this delay is a very less amount of delay and after the delay I just want to turn off the same enable pin right so I just want to turn off the pd2 so in this manner the LCD data function written right over here is useful for writing a character data which needs to be printed on the LCD so whatever the data that I'm passing right over here in this parameter segment of this LCD data function that will be directly printed on the LCD and regarding the command function so regarding the LCD command function which is useful for passing a bite of instruction to the LCD so there is only a minor change that needs to be done for passing a character data and for passing a instruction data to the L CD that changes nothing but for a character data we just turned on this RS pin right but here for passing the data to the instruction register of the LCD the procedure is common except that I just want to turn off the RS pin so here I just want to turn off this RS pin indicating the LCD controller for writing the data to the instruction register so here this line is useful for turning of the RS pin so the data that I am passing right over here will be printed or will be stored in the instruction register of the LCD but here I have turned on the RS pin so the data that I'm passing right over here when this function is called will be stored in the character register of the LCD that is the data register of the LCD so this is the only difference here for storing the data in the data register of CD I just want to turn on the RS pin and but here I just want to turn off the RS pin for passing a instruction bite to the LCD that is the data that I'm passing right over here will be stored in the instruction register of LCD if you make the RS pin to be low and the next function that I'm going to write is LCD string function so in this function I'm just going to declare a variable and a for Loop for I is equal to z i less than length I ++ inside this for Loop I'm just going to call another function for printing individual data that is nothing but the LCD data function and here as a parameter to this function I'm just going to pass St Str of I that's all about the string function let me just explain about the working functionality of this function with an example for example just assume that I'm just going to call this function like this AB C and the second parameter is nothing but the length of this string that I'm passing so length of the string is three assume that I have called this function in this manner AB C comma 3 so in this string s Str the address of a will be stored and in the variable Len the number three will be stored when the program control enters into the function block a new variable will be initialized and here I just want to initialize this value or you can leave it because here the value will be initialized to zero so when the loop Begins the I is holding the value zero and the loop will be checking this condition 0 Less Than 3 so here as I said the length now is holding the value three so 0 less than three is true so the control enters into this Loop so the LCD d data of I I know is zero so LCD data of St Str of Z will be passed using the LCD data function so the St Str of Zer is nothing but the character a will be printed on the LCD and after the successful calling of LCD data function the loop will be incrementing this I value by one so now the I value 1 so again the condition is checked 1 Less Than 3 so 1 Less Than 3 is true again the loop will be executed but this time the Str Str of one will be passed Str Str of one is nothing but B so B will be passed and it will be printed on the LCD and again after successful printing of B again the variable I will be incremented and now the I is holding the value two after the increment process again the condition is checked 2 Less Than 3 is true so the LC data of St Str of two will be passed St Str of two is nothing but C so c will be passed and printed on the LCD and after the successful printing of C the I value will be incremented by 1 and now the I value becomes three now you can clearly see as per the condition check 3 Less Than 3 is0 so the loop will be be exited as the condition fails so this is how this function is useful for passing and printing a string of data to the LCD so I hope you understood this now let's try to write the initialization function for initializing the LCD so there are four main initialization command that you want to provide for initializing this LCD so I just want to provide the command for initializing the LCD in 8bit mode utilizing 16 columns and two rows and next I just want to provide the command for auto incrementing auto increment printing the cursor when it prints the data in the current line so once a data is printed I want the cursor to be incremented to the next column position so I just want to provide command for that and next I just want to provide command for cursor of I don't want the cursor and display on and finally I just want to provide command for clear screen for clearing the screen initially so as I mentioned before this LCD command function is useful for passing instructions to the LCD so I'm just going to utilize this LCD command function for passing the initialization instructions to the LCD so the instruction that is useful for configuring the LCD 8bit mode utilizing 16 columns and two rows is 0x 38 and the next command that I want to provide for auto incrementing is 0x 06 and next command or instruction for cursor off and display on is 0x 0 C and finally the command for clearing the screen initially is 0x01 so whenever you provide this 0x01 everything that is being printed on the LCD will be cleared so this is the initialization instruction that you want to provide for initializing the LCD now I'm just going to call this LCD init function below all this GP iio configuration and let me just test the LCD functionality first so in the previous lecture of LCD display working explained I have explained you about the command set of the LCD that is our LCD is having 16 Bros and two columns and regarding the first row the starting address is 0x 80 for column 1 first row and it goes on like 81 82 83 84 85 86 87 88 89 and then it goes like 0x 88 8 B 8 C 8 D 8 e and finally I'm having the column 0x 8f so totally I'm having 16 columns starting from 0x 80 to 8f in first row and similar to that I'm having second row which is starting from 0x c0 and goes till 0x CF so these are all the addresses of the columns and rows of LCD so if I want to go to the first row First Column of the LCD I just want to provide the address 0x80 as the command command to the LCD and then I want to pass the data that is I just want to pass the command 0x80 asking the LCD to move the cursor to first row and First Column and then I just want to pass the data that needs to be printed so let me just want to print the character small a first I'm just compiling the sketch and I'm going to dump the program to my TAA C Series Launchpad so now you can see I have connected my 16 cross2 alpha numeric LCD to my breadboard and I have connected a potential meter to the ve pin that is a 10 KMS variable resistor has been connected to the ve pin of this LCD as per the schematic and also you can see I have connected a 220 ohms resistor from the anode pin of this LCD and have connected that to the positive rail of the circuit that is the 5 Vol signal or 3.3 volt signal of the circuit and regarding the cathode terminal I have connected this cathode terminal to the ground of the circuit and also the vsss pin of the LCD is connected to the ground ra and positive vdd pin has been connected to to the positive R so this horizontal dral is meant to be supplied with the 3.3 volt power source or 5V power signal and this horizontal line or rail in this Bread Board is useful for providing the ground to the Circuit of the LCD so we will be connecting this ground of the circuit to the ground of the development board and we will be connecting this to the power supply of the development board and you can see I have connected a 10 K variable resistor Center terminal to the ve pin of this LCD and other two terminals of this variable resistor that is the left terminal has been connected to the ground of the circuit and the right terminal has been connected to the power supply rail of the circuit so this is the basic connection that I have made in this breadboard for this 16 cross2 alpha numeric LCD and let us make the connection between this LCD data lines RS RW and enable pin with this div C Series Launchpad development board so as per the schematic that I just now showed to you on the screen we are just going to make the connection as for the schematic I'm just going to connect the RS spin of this LCD to the rd0 of this development board you can see rd0 is right over here this pin is the rd0 so I don't want to show this pin notes to you as I showed you the pin notes just now before few minutes so I'm just making the connection between the RS pin and pd0 of this microcontroller and nextly I'm just going to connect the RW pin of this LC pd2 pd1 of the microcontroller so here is the pd1 I have connected it and enable pin of this LCD I'm just connecting it to the pd2 of this development board or the microcontroller and regarding the d0 of this LCD I'm just connecting this d0 to the pa7 of the microcontroller and D1 I'm just connecting this D1 of the lcd2 P6 of this development board or the microcontroller and D2 I'm just connecting this D2 pin of the LCD to the pa5 of this microcontroller so here is the pa5 I'm just utilizing in this corner b connectors in this Diva C Series launch pad for connecting these spin notes to the data lines of the LCD you can clearly see that and I'm connecting the pb4 of my microcontroller to D3 and I'm connecting the D4 of this LCD to P5 and then I'm connecting the D5 of this lcd2 P4 you can clearly see I'm just making the connection in a linear fashion in this bug connector and then I'm going to connect pb1 of this development board or microcontroller to the D6 of this LCD and then I'm connecting the D7 of this lcd2 PB zero of this microcontroller so that's all about the connections that we want to do we have connected all the eight data lines of the LCD to pin notes of the microcontroller such as pa7 pa6 pa5 pb4 P5 P4 pb1 and PB 0 and rs RW and enable of the LCD is Con to pd0 1 and 2 and now I'm just going to connect the power supply line of this LCD so you can clearly see I'm having a vbus pin right over here so this is the V buus pin you can see the legend this is the vbus PIN I'm just going to connect this vbus to the power supply line of this LCD you can see I'm just connecting it to the power supply line of this LCD and regarding the ground I'm just going to utilize this ground below this V bus so I'm just connecting this work connector to the ground of this development board you can see here is the ground and I'm connecting it to the ground of this RedBoard ra so that's all about the circuit connections that you want to do now let us see the output in the hardware so now after building the circuit you can clearly see that the character a has been printed on the first row First Column of this LCD as per the commands that has been provided in our program so the command function and data function of the LCD which we wrote in our program is working fine so we have successfully printed the character a on the LCD after building the circuit we successfully got the output that is the character small a has been printed on the first row First Column of the LCD and now what I'm going to do was I'm just going to utilize the string function right over here for passing and printing two strings on the both the rows of the LCD so let me just go to the first row First Column of the LCD and I'm going to print the string embedded so this embedded string is having total value of 1 2 3 4 5 6 7 8 so let me just pass number eight right over here and as the next step I'm just going to second row First Column of the LCD second row First Column of the LCD and I'm going to print systems this is nothing but 1 2 3 4 5 6 7 now I'm just building this program if it is showing an error or warning like it was showing here just declare this as scare now I'm just going to dump this program so you can see this is the output which I got in my Hardware the string embedded has been printed on the first row of the LCD starting from column 1 and the string systems has been printed on the second row of this 16 cross2 LCD starting from column 1 of row two so this is the output which I got in my Hardware so you can see I have connected a 10 KMS potential meter to the ve pin of this LCD so using this potential meter you can vary the contrast of the font available in this LCD so if you are viewing or having any difficulties in the contrast of the font you can use this potential meter for better visibility see you in the next video thanks for watching