I'm programming a PIC16f676 to work with a CFAH0802D-YYH-JP LCD.
I've already checked the code on the BT_Out pin without any of the LCD code and have verified that the frequency counter in the code does indeed work.
The issue is when connected to the LCD screen, the initialization of the LCD fails (a row of black squares is displayed).
I'm new to working with microprocessor to LCD in assembly so any help or suggestions is appreciated
I have looked at your code and find that what your have said in your second sentence is false.
Your claim is that you checked the BT_Out pin that your code has assigned to RA3.
On the PIC16F676 RA3 is an input only pin. Where BT_Out may be it is not on RA3.
The code you have for LCD output look just wrong to me. It's too hard to spot any but the obvious issues.
Your LCD initialization routine uses a CLRF PORTA statement.
This is a bug because not all of the output bits of PORTA are used exclusively by the LCD.
There are other issues in your LCD code that are not exactly bugs but will limit what you can use PORTC bits RC4 and RC5 for.
You method for counting the edges of the input frequency is lame and would be much better if one of the TIMER/COUNTERS in this PIC was used as an event counter.
Your interrupt service routine calls functions that can take a long time to complete. Again this is not a bug, but it is a bad thing to do in an interrupt service routine.
I understand that you are new to all this, but your code needs a lot of improvement.