I have been facing this issue for about a week, and after hours of trying to debug it, I was hoping I could find some help here. I have been trying to use an LCD 16x2 screen (unaware of the exact model but have been using this datasheet) and display some simple text on it with my MSP430FR2355 using MSP430 Assembly. Most of my code has come from me attempting to translate C libraries for displaying text into assembly. The LCD powers on and the Vss, Vdd, and Vo pins are all working fine. When it powers on it just displays the top line as a row of rectangle characters. My pin map is as follows:
RS - P2.0
RW - P2.1
E - P2.2
D0 - P3.0
D1 - P3.1
D2 - P3.2
D3 - P1.3 (P3.3 is broken)
D4 - P3.4
D5 - P3.5
D6 - P3.6
D7 - P3.7
The wirings have been checked many times and I have used a logic analyzer on every single pin RS-D7. All of these tests have shown that the pins are going high and low correctly and the way they should. The full assembly file can be found here (do ignore my silly code comments). The result of the code is that none of the commands do anything, after all the commands the screen just stays as a single row of rectangles. Thank you for taking the time to help me and if this is the wrong forum for this please direct me to the right one! :D
I also did my best to make a schematic of my current setup but I'm very new to this so it might not be great.
simulate this circuit – Schematic created using CircuitLab
Also here are photos of my LCD screen https://imgur.com/a/SXDUFv0
Update
I have ordered a new LCD because I'm pretty sure the problems are caused by the fact my current one has an I2C backpack soldered on it and that I'm not using it. I will update this post again when I receive the new LCD.
Update 2
I have received my new LCD screen without the I2C backpack but I am still experiencing issues. Running my program does nothing but sometimes randomly the first initializing command will work and will change the screen from 1 line to 2 lines. This is the only command I can get to work and even then it takes a few tries. I'm basically completely lost on where to go from here. I have updated the schematics to my current setup and my updated code is here. Any and all help is appreciated.
Photo of the screen on power up: https://imgur.com/a/LIbCDqi
Photo of the screen after the one command goes through: https://imgur.com/a/GjRXWIG
Update 3
It turns out that I had the ground wiring wrong and now the code is working great with the new LCD! Thank you @Justme, @6v6gt, and @Jens for their combined help!