no text on LCD


Closed Thread
Results 1 to 31 of 31

Thread: no text on LCD

Hybrid View

  1. #1
    Join Date
    Jul 2003
    Posts
    2,358


    Did you find this post helpful? Yes | No

    Default

    The posted TXT is the HEX compiled version of the program below. Download it, rename is as HEX (this forum doesn't permit HEX extensions on attachments at this time), and stuff it into your PIC. It assumes your PIC is running at 4MHz.

    Code:
    	'
    	'	LCD Test Program
    	'	================
    
    	'
    	' 	PIC Defines
    	' 	-----------
    	@ DEVICE pic16F84, XT_OSC
    		' System Clock Options	
    	@ DEVICE pic16F84, WDT_ON
    		' Watchdog Timer
    	@ DEVICE pic16F84, PWRT_ON
    		' Power-On Timer
    	@ DEVICE pic16F84, PROTECT_OFF
    		' Program Code Protection
    
    	'
    	'	Hardware Defines
    	'	================
    		'
    		' 	LCD Display
    		'	-----------
    		'	Don't forget to GROUND D0-D3 on LCD.
    		'
    	Define LCD_DREG PORTB			' Port for LCD Data
    	Define LCD_DBIT 0			' Use lower 4 bits of Port
    	Define LCD_RSREG PORTA			' Port for RegisterSelect (RS) bit
    	Define LCD_RSBIT 1			' Port Pin for RS bit
    	Define LCD_EREG PORTA			' Port for Enable (E) bit
    	Define LCD_EBIT 2			' Port Pin for E bit
    	Define LCB_BITS 4			' Using 4-bit bus
    	Define LCD_LINES 2			' Using 2 line Display
    	Define LCD_COMMANDUS 2000		' Command Delay (uS)
    	Define LCD_DATAUS 50			' Data Delay (uS)
    		'
    		'
    		'	Confidence LED
    		'	--------------
    		'	This LED will BLINK continuously to prove your program is running
    		'	and will verify your oscillator/xtal is good.
    		'	Connect LED either...
    		'	(a) Anode to Vdd (+5v) via 330R Resistor and Kathode to pin A0
    		'	or (b) Anode to pin A0 via 330R Resistor and Kathode to Vss (0v).
    		'	
    	BlinkyLED var PortA.0			' This LED will BLINK
    
    	'
    	'	Program Start
    	'	-------------
    	TRISA=%00000000				' Set all I/O to OUTPUT
    	TRISB=%00000000
    	'
    	Pause 2000				' Wait 2 seconds for Hardware to settle
    						' should account for the crappiest and
    						' slowest junk LCD
    Loop:
    	LCDOUT $FE,1				' Clear LCD
    	High BlinkyLED				' Set LED pin High
    	Pause 1000				' Wait one Second
    
    	LCDOUT "Hello Dj tempo"			' Write message
    	Low BlinkyLED				' Set LED pin Low
    	Pause 1000				' Wait one Second
    
    	Goto Loop				' Loop around and do it forever
    
    	End
    Ensure your connect your LCD EXACTLY as per the schematic. If you haven't already done so, go back and check again. Ensure LCD-D4 connects to PortB0 etc. Ensure LCD-D0 thru LCD-D3 are grounded to Vss (0v).

    If your connect an LED as directed in the listing and it doesn't blink, check your oscillator circuit. Easiest for novices is to use a 4MHz 3-pin ceramic Resonator with integral Capacitors.

    If the LED blinks, but still nothing on the LCD, then connect a 10K Pot between Vdd and Vss with the wiper going the the Contrast Vo pin, instead of having that pin connected directly to Ground. Some LCD's don't like having the Contrast pin connected directly to Vss, it applies TOO MUCH contrast and all you get is solid black squares. Yet if that pin is left unconnected, you don't get anything displaying either.

    Good luck with the faultfinding - it's actually the fun part of electronics.

    Melanie
    Attached Files Attached Files

  2. #2
    Join Date
    Sep 2004
    Location
    montreal, canada
    Posts
    6,898


    Did you find this post helpful? Yes | No

    Default

    if you still want to stick to ASM, try the one in attachment.. yeah same concept here, you'll need to rename it to .asm.

    That was fun to do

    Enjoy
    Attached Files Attached Files
    Steve

    It's not a bug, it's a random feature.
    There's no problem, only learning opportunities.

  3. #3
    Join Date
    Jun 2007
    Posts
    19


    Did you find this post helpful? Yes | No

    Default

    why is it that when i copy any of these text files and try to convert it in to a hex file it always shows up with lots of errors, about 60 errors each time.

    therefore i can not copy any of these files and download them on to the micro controller as it is not creating a hex file.
    But the code i have written shows with no errors anymore just warnings.

    am i doing something wrong?
    i normaly create a text file in notepad, then i use MPASM to convert the text file in to a HEX file, i then use PROGPIC 2 along with my velleman hardware programmer board to download on to the PIC, it has worked on other PIC such as 16F627 to create effects such as flashing LED's.

    i downloaded that file of yours mel, when an LED is connected between pin A0 and +5v it constantley flashes almost 1 sec on 1 sec off, all other data lines on the LCD are now grounded and a 10k pot between +5V and 0V with the wiper conn to V0 (contrast), adjustment of the pot varies the contrast but still no luck wit writing on lcd, still shows as 2 rows of blocks on line 1 and 3.
    Last edited by Dj tempo; - 19th June 2007 at 15:50.

  4. #4
    malc-c's Avatar
    malc-c Guest


    Did you find this post helpful? Yes | No

    Default

    If the PIC is flashing the LED then the device is running OK

    You say you use Notepad to generate the HEX code via MPSAM. Why not try downloading the MPLAB from Microchip and use its editor to edit the code and then save the file as an ASM format and then quickbuild the project. I did this with the "final lcd code 2" text copied from your original post on 17th. However whilst it compiles fine, it still throws up a few warnings that might give others a hint as to what might be wrong ?
    Code:
    Clean: Deleting intermediary and output files.
    Clean: Done.
    Executing: "C:\Program Files\Microchip\MPASM Suite\MPAsmWin.exe" /q /p16F84 "lcdtest.asm" /l"lcdtest.lst" /e"lcdtest.err"
    Warning[205] C:\LCDTEST.ASM 13 : Found directive in column 1. (__CONFIG)
    Warning[202] C:\LCDTEST.ASM 20 : Argument out of range.  Least significant bits used.
    Warning[202] C:\LCDTEST.ASM 28 : Argument out of range.  Least significant bits used.
    Warning[224] C:\LCDTEST.ASM 434 : Use of this instruction is not recommended.
    Warning[224] C:\LCDTEST.ASM 436 : Use of this instruction is not recommended.
    Warning[224] C:\LCDTEST.ASM 438 : Use of this instruction is not recommended.
    Warning[205] C:\LCDTEST.ASM 598 : Found directive in column 1. (END)
    Loaded C:\lcdtest.COD.
    BUILD SUCCEEDED: Tue Jun 19 16:02:30 2007

  5. #5
    malc-c's Avatar
    malc-c Guest


    Did you find this post helpful? Yes | No

    Default

    Doing the same with Mister-e's code it compiles fine without any errors

    Code:
    Clean: Deleting intermediary and output files.
    Clean: Done.
    Executing: "C:\Program Files\Microchip\MPASM Suite\MPAsmWin.exe" /q /p16F84A "mretest.asm" /l"mretest.lst" /e"mretest.err"
    Loaded C:\mretest.COD.
    BUILD SUCCEEDED: Tue Jun 19 16:13:21 2007
    I just don't have the hardware to test the resulting HEX file with a 4 line LCD

  6. #6
    Join Date
    Jun 2007
    Posts
    19


    Did you find this post helpful? Yes | No

    Default

    do you mean MPLAB IDE 7.60? as i have just downloaded.
    what do you mean by quick build?

    i have tried many files including those of nigels but i still have problems converting to a HEX file.

  7. #7
    malc-c's Avatar
    malc-c Guest


    Did you find this post helpful? Yes | No

    Default

    I have ver 7.50, but its more or less the same.

    Copy Mister_e's code from the post above. launch MPLAB and select FILE > NEW from the tool bar options. A blank window will appear called UNTITLED and the cursor will be blinking at the top left.

    Paste the code into the window, the window will change to UNTITLED*

    Select CONFIGURE > SELECT DEVICE from the toolbar options, and select the chip you are using from the drop down list and click OK

    Select FILE > SAVE AS from the toolbar options and select the root of the C drive as the location to save the file to. Give it a name, say LCD and in the file type select the second option ( Assembly source files). Now click on SAVE - The window will now be titled LCD.asm

    From the toolbar select PROJECT > QUICKBUILD LCD.ASM

    The MPSAM window should pop up and compile the code, and a window called OUTPUT should appear with the summary of the build.

    You should then be able to locate the LCD.HEX file in the root of C:

    Hope this helps

Similar Threads

  1. Replies: 2
    Last Post: - 5th November 2009, 18:07
  2. 16f688 LCD what have I done wrong
    By spitfiredriver in forum mel PIC BASIC Pro
    Replies: 6
    Last Post: - 8th August 2009, 20:54
  3. Play with LCD on PICDEM
    By The IceMan in forum mel PIC BASIC
    Replies: 5
    Last Post: - 22nd August 2008, 17:56
  4. LCD issue with EasyPIC5
    By manwolf in forum mel PIC BASIC Pro
    Replies: 12
    Last Post: - 15th June 2008, 10:17
  5. LCD will not start
    By btaylor in forum mel PIC BASIC Pro
    Replies: 49
    Last Post: - 24th May 2007, 03:30

Members who have read this thread : 0

You do not have permission to view the list of names.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts