LCD's with Shift Registers, and LCDOUT


Results 1 to 12 of 12

Threaded View

  1. #1
    Join Date
    Jul 2003
    Location
    Colorado Springs
    Posts
    4,959

    Default LCD's with Shift Registers, and LCDOUT

    Notice: LCDOUT HighJack routines MUST be installed in the PBPPIC??.LIB file before using these interfaces.
    For more information on how to install the HighJack routines, see this thread...

    LCD_AnyPin.pbp
    http://www.picbasic.co.uk/forum/showthread.php?t=7038

    PC064PYL I bought a bunch of these displays via eBay a couple years ago. They just looked so cute I couldn't resist.

    2x8 HD44780 based LCD's with backlight. P/N PC064PYL

    Running the Sample program shown below.

    I should have looked closer at the auction, because it had a 5 pin interface using 74HC164's (shift registers) as a 9-bit input to a normal HD44780 display. ... I was able to get one working using SHIFTOUT, but it was really a pain since you couldn't use LCDOUT, or DEC, or HEX, or ... _____. So they sat in a box on the shelf for a couple years, with me thinking it was a stupid buy. (@ 75 cents apiece, maybe not all that stupid).

    But now that there's "HighJack". (previously shown in the LCD_AnyPin.pbp thread)
    You can do pretty much whatever you want with LCD's.

    In this case, the "Little Cutie" is rejuvenated by being able to use normal LCDOUT statements, even though it's a Synchronous Serial interface.

    I redrew the schematic for the input circuit.
    The only datasheet I could find looks like it was copied a dozen times before being scanned.
    Here's a copy of part of the datasheet.

    And this is the re-draw ...




    The display uses an 8 bit interface, so it makes things pretty easy.
    Shift in the RS bit, followed by the data byte LSB first.
    Once all nine bits are shifted in, pulse the Enable line for at least 1uS.

    But then, you don't need to worry about that stuff because it's handled in the Include file.
    All you have to do is use LCDOUT.

    Assuming that you've properly installed the HighJack routines as mentioned above.
    This sample program should give an idea of how simple it is to use PC064PYL.pbp.
    Code:
    ; Initialize your Hardware first, set CONFIGs, OSC, Turn off A/D etc 
    ;----[ Change these to match your LCD ]--------------------------------------- 
    LCD2x8_CLK  VAR PORTB.0 ; Clock - Pin 1 
    LCD2x8_DAT  VAR PORTB.1 ; Data - Pin 2 
    LCD2x8_E    VAR PORTB.2 ; Enable - Pin 5 
    INCLUDE "PC064PYL.pbp" ; *** Include MUST be AFTER LCD Pin assignments **** 
    
    ;----[ Your Main program starts here ]---------------------------------------- 
    LoopCount VAR WORD 
    Main: 
        LCDOUT $FE,$80,"Hello,",$FE,$C0,"From DT!" 
        PAUSE 3000 
        LCDOUT $FE,1 ; clear screen 
        FOR LoopCount = 0 TO 65535 
            LCDOUT $FE,$80, IDEC LoopCount 
            LCDOUT $FE,$C0, IHEX4 LoopCount 
          ; pause 100 ; Slow it down, if you want 
        NEXT LoopCount 
    GOTO Main
    Just assign the pins used for the LCD.
    Include the PC064PYL.pbp file.

    And away you go, ... using LCDOUT just like you always have.
    Except it's an itty bitty display.

    While this is an easy way to use a PC064PYL, it's also a way that you can hook up ANY HD44780 Display.
    It just happens that the "Little Guy" has them built in.

    However, it seems like a waste to have 2 - 74HC164's, when the second one is only using 1 out of 8 bits. You could use a 4-bit interface and save the extra chip, but it still takes 5 wires going to the LCD. So I wouldn't recommend using this EXACT same way of doing things, unless it's already built-in, like the PC064PYL.
    There's something very close that only requires 1 chip and 4 wires, and that's what I'll tackle in the next post in this thread.

    There are 2 files required to use the PC064PYL driver with PicBasic Pro. They are ...
    PC064PYL.pbp
    VirtualPort.bas   (included from the PC064PYL.pbp file)
    Both files are included in the .ZIP file below. VirtualPort.bas is the same as the file from the LCD_AnyPin thread and doesn't need to be overwritten, but it doesn't matter if you do since they're the same.
    Extract the files to your PBP folder.
    Attached Files Attached Files
    Last edited by Darrel Taylor; - 29th July 2012 at 23:30.
    DT

Similar Threads

  1. LCDOUT custom commands - how to?
    By flotulopex in forum mel PIC BASIC Pro
    Replies: 68
    Last Post: - 18th April 2015, 16:36
  2. Help with Circuit
    By Art in forum General
    Replies: 14
    Last Post: - 23rd December 2009, 13:21
  3. A/d 16f88
    By Steves in forum mel PIC BASIC Pro
    Replies: 5
    Last Post: - 31st May 2009, 01:19
  4. PIC16F684 + LCD to use the 256bytes of EEPROM - HELP
    By xnihilo in forum mel PIC BASIC Pro
    Replies: 3
    Last Post: - 7th March 2008, 14:19
  5. LCDout Command causes Interrupt!!??
    By Tom Gonser in forum mel PIC BASIC Pro
    Replies: 8
    Last Post: - 31st March 2005, 04:18

Members who have read this thread : 1

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