Trying to get LCD to work on 18f45k22 and portB and EasyPic V7 - no luck


Closed Thread
Results 1 to 15 of 15
  1. #1
    Join Date
    Oct 2008
    Posts
    52

    Default Trying to get LCD to work on 18f45k22 and portB and EasyPic V7 - no luck

    Hi,
    I have tried everything I can think of to get this to work...anybody got any ideas what I am doing wrong or a missed setting?

    Thanks Don


    @ __CONFIG _CONFIG1H, _IESO_OFF_1H & _FCMEN_OFF_1H & _PRICLKEN_ON_1H & _PLLCFG_ON_1H & _FOSC_ECMPIO6_1H
    @ __CONFIG _CONFIG2L, _PWRTEN_OFF_2L & _BOREN_SBORDIS_2L & _BORV_190_2L
    @ __CONFIG _CONFIG2H, _WDTPS_32768_2H & _WDTEN_OFF_2H
    @ __CONFIG _CONFIG3H, _MCLRE_EXTMCLR_3H & _T3CMX_PORTB5_3H & _HFOFST_ON_3H & _CCP3MX_PORTB5_3H & _PBADEN_OFF_3H & _CCP2MX_PORTC1_3H
    @ __CONFIG _CONFIG4L, _DEBUG_OFF_4L & _XINST_OFF_4L & _LVP_OFF_4L & _STVREN_ON_4L
    @ __CONFIG _CONFIG5L, _CP0_OFF_5L & _CP1_OFF_5L & _CP2_OFF_5L & _CP3_OFF_5L
    @ __CONFIG _CONFIG5H, _CPB_OFF_5H & _CPD_OFF_5H
    @ __CONFIG _CONFIG6L, _WRT0_OFF_6L & _WRT1_OFF_6L & _WRT2_OFF_6L & _WRT3_OFF_6L
    @ __CONFIG _CONFIG6H, _WRTC_OFF_6H & _WRTB_OFF_6H & _WRTD_OFF_6H
    @ __CONFIG _CONFIG7L, _EBTR0_OFF_7L & _EBTR1_OFF_7L & _EBTR2_OFF_7L & _EBTR3_OFF_7L
    @ __CONFIG _CONFIG7H, _EBTRB_OFF_7H
    '************************************************* ***************
    DEFINE LCD_DREG PORTB
    DEFINE LCD_DBIT 0
    DEFINE LCD_EREG PORTB
    DEFINE LCD_EBIT 5
    DEFINE LCD_RSREG PORTB
    DEFINE LCD_RSBIT 4
    Define LCD_Bits 4
    DEFINE LCD_LINES 2
    Define LCD_Commandus 2000
    Define LCD_DATAUS 50

    ANSELB = %00000000
    TRISB = %00000000


    pause 500
    LCDOUT $FE,1,"Hello"

    END

  2. #2
    Join Date
    May 2013
    Location
    australia
    Posts
    2,379


    Did you find this post helpful? Yes | No

    Default Re: Trying to get LCD to work on 18f45k22 and portB and EasyPic V7 - no luck

    _PLLCFG_ON_1H & _FOSC_ECMPIO6_1H

    what sort of external clock are you using ?
    @ what freq ?

    you have no define OSC

    TRISB = %00000000 is unnecessary for lcd
    Warning I'm not a teacher

  3. #3
    Join Date
    Oct 2008
    Posts
    52


    Did you find this post helpful? Yes | No

    Default Re: Trying to get LCD to work on 18f45k22 and portB and EasyPic V7 - no luck

    Hi Richard,

    I am using an 8mhz ext. crystal..

  4. #4
    Join Date
    Oct 2008
    Posts
    52


    Did you find this post helpful? Yes | No

    Default Re: Trying to get LCD to work on 18f45k22 and portB and EasyPic V7 - no luck

    Richard,

    This code is written in Mikro Basic I think and works...I was trying to convert it to PicBasic..

    Below it I have pasted the Config file that goes with it..

    ' *
    ' * Project name:
    ' Lcd_Test (Demonstration of the LCD library routines)
    ' * Copyright:
    ' (c) Mikroelektronika, 2011.
    ' * Revision History:
    ' 20110929:
    ' - initial release (FJ);
    ' * Description:
    ' This code demonstrates how to use LCD 4-bit library. LCD is first
    ' initialized, then some text is written, then the text is moved.
    ' * Test configuration:
    ' MCU: PIC18F45K22
    ' http://ww1.microchip.com/downloads/e...Doc/41412D.pdf
    ' Dev.Board: EasyPIC7 - ac:LCD
    ' http://www.mikroe.com/easypic/
    ' Oscillator: HS-PLL 32.0000 MHz, 8.0000 MHz Crystal
    ' Ext. Modules: Character Lcd 2x16
    ' http://www.mikroe.com/store/components/various/
    ' SW: mikroBasic PRO for PIC
    ' http://www.mikroe.com/mikrobasic/pic/
    ' * NOTES:
    ' - Turn on Lcd backlight switch SW4.6. (board specific)
    ' *

    program Lcd

    ' Lcd module connections
    dim LCD_RS as sbit at LATB4_bit
    LCD_EN as sbit at LATB5_bit
    LCD_D4 as sbit at LATB0_bit
    LCD_D5 as sbit at LATB1_bit
    LCD_D6 as sbit at LATB2_bit
    LCD_D7 as sbit at LATB3_bit

    dim LCD_RS_Direction as sbit at TRISB4_bit
    LCD_EN_Direction as sbit at TRISB5_bit
    LCD_D4_Direction as sbit at TRISB0_bit
    LCD_D5_Direction as sbit at TRISB1_bit
    LCD_D6_Direction as sbit at TRISB2_bit
    LCD_D7_Direction as sbit at TRISB3_bit
    ' End Lcd module connections

    dim txt1 as char[16]
    txt2 as char[9]
    txt3 as char[8]
    txt4 as char[7]
    i as byte ' Loop variable

    sub procedure Move_Delay() ' Function used for text moving
    Delay_ms(500) ' You can change the moving speed here
    end sub

    main:
    ANSELB = 0 ' Configure PORTB pins as digital

    txt1 = "mikroElektronika"
    txt2 = "EasyPIC7"
    txt3 = "Lcd4bit"
    txt4 = "example"

    Lcd_Init() ' Initialize Lcd
    Lcd_Cmd(_LCD_CLEAR) ' Clear display
    Lcd_Cmd(_LCD_CURSOR_OFF) ' Cursor off
    Lcd_Out(1,6,txt3) ' Write text in first row
    Lcd_Out(2,6,txt4) ' Write text in second row
    Delay_ms(2000)
    Lcd_Cmd(_LCD_CLEAR) ' Clear display4

    Lcd_Out(1,1,txt1) ' Write text in first row
    Lcd_Out(2,5,txt2) ' Write text in second row
    Delay_ms(500)

    ' Moving text
    for i=0 to 3 ' Move text to the right 4 times
    Lcd_Cmd(_LCD_SHIFT_RIGHT)
    Move_Delay()
    next i

    while TRUE ' Endless loop
    for i=0 to 7 ' Move text to the left 8 times
    Lcd_Cmd(_LCD_SHIFT_LEFT)
    Move_Delay()
    next i

    for i=0 to 7 ' Move text to the right 8 times
    Lcd_Cmd(_LCD_SHIFT_RIGHT)
    Move_Delay()
    next i
    wend
    end.

    The config file...

    <?xml version="1.0"?>
    <MCU_DEVICE_FLAGS>
    <DEVICE>
    <DEVICE_NAME>P18F45K22</DEVICE_NAME>
    <VALUE>
    <COUNT>11</COUNT>
    <VALUE0>
    <VAL>$300001:$0033</VAL>
    </VALUE0>
    <VALUE1>
    <VAL>$300002:$001F</VAL>
    </VALUE1>
    <VALUE2>
    <VAL>$300003:$003C</VAL>
    </VALUE2>
    <VALUE3>
    <VAL>$300005:$00BD</VAL>
    </VALUE3>
    <VALUE4>
    <VAL>$300006:$0081</VAL>
    </VALUE4>
    <VALUE5>
    <VAL>$300008:$000F</VAL>
    </VALUE5>
    <VALUE6>
    <VAL>$300009:$00C0</VAL>
    </VALUE6>
    <VALUE7>
    <VAL>$30000A:$000F</VAL>
    </VALUE7>
    <VALUE8>
    <VAL>$30000B:$00E0</VAL>
    </VALUE8>
    <VALUE9>
    <VAL>$30000C:$000F</VAL>
    </VALUE9>
    <VALUE10>
    <VAL>$30000D:$0040</VAL>
    </VALUE10>
    </VALUE>
    </DEVICE>
    </MCU_DEVICE_FLAGS>

  5. #5
    Join Date
    May 2013
    Location
    australia
    Posts
    2,379


    Did you find this post helpful? Yes | No

    Default Re: Trying to get LCD to work on 18f45k22 and portB and EasyPic V7 - no luck

    your config is incorrect for those settings



    Code:
    ASM
      __config  _CONFIG1H, _FOSC_HSHP_1H & _PLLCFG_ON_1H & _PRICLKEN_OFF_1H & _FCMEN_OFF_1H & _IESO_OFF_1H
      __config  _CONFIG2L, _PWRTEN_OFF_2L & _BOREN_SBORDIS_2L & _BORV_190_2L
      __config  _CONFIG2H, _WDTEN_ON_2H & _WDTPS_32768_2H
      __config  _CONFIG3H, _CCP2MX_PORTC1_3H & _PBADEN_OFF_3H & _CCP3MX_PORTB5_3H & _HFOFST_ON_3H & _T3CMX_PORTC0_3H & _P2BMX_PORTD2_3H & _MCLRE_EXTMCLR_3H
      __config  _CONFIG4L, _STVREN_ON_4L & _LVP_OFF_4L & _XINST_OFF_4L & _DEBUG_OFF_4L
      __config  _CONFIG5L, _CP0_OFF_5L & _CP1_OFF_5L & _CP2_OFF_5L & _CP3_OFF_5L
      __config  _CONFIG5H, _CPB_OFF_5H & _CPD_OFF_5H
      __config  _CONFIG6L, _WRT0_OFF_6L & _WRT1_OFF_6L & _WRT2_OFF_6L & _WRT3_OFF_6L
      __config  _CONFIG6H, _WRTC_OFF_6H & _WRTB_OFF_6H & _WRTD_OFF_6H
      __config  _CONFIG7L, _EBTR0_OFF_7L & _EBTR1_OFF_7L & _EBTR2_OFF_7L & _EBTR3_OFF_7L
      __config  _CONFIG7H, _EBTRB_OFF_7H
    ENDASM
    and you need a


    define OSC 32

    statement in your code

    why use a xtal ? why run at 8MHz ?
    when the chip has a int osc that can do 64mhz
    Warning I'm not a teacher

  6. #6
    Join Date
    Oct 2008
    Posts
    52


    Did you find this post helpful? Yes | No

    Default Re: Trying to get LCD to work on 18f45k22 and portB and EasyPic V7 - no luck

    Well that worked fine.....
    Well the board has a crystal hook up but can be strapped in and out.
    I did try just the define osc 32 with my config and it also worked...
    as you probably surmised, I am pretty much a newbie..so why the ocs 32 define and say not 16 or 8?

    By the way thanks a bunch
    Last edited by dbachman; - 19th November 2017 at 00:56.

  7. #7
    Join Date
    May 2013
    Location
    australia
    Posts
    2,379


    Did you find this post helpful? Yes | No

    Default Re: Trying to get LCD to work on 18f45k22 and portB and EasyPic V7 - no luck

    define OSC 32
    tells the compiler to perform all timing calculations for a clock speed of 32 MHz
    it defaults to 4 MHz if omitted , it should match the real clock speed used
    using 8 or 16 is simply wrong


    _PLLCFG_ON with a 8mhz xtal yields a 32 MHz clock

    no point guessing read the manual, read the data sheet
    Warning I'm not a teacher

  8. #8
    Join Date
    Oct 2008
    Posts
    52


    Did you find this post helpful? Yes | No

    Default Re: Trying to get LCD to work on 18f45k22 and portB and EasyPic V7 - no luck

    Soif I was using an internal oscillator, I would define it in Config1h and further in OSCCON?

  9. #9
    Join Date
    May 2013
    Location
    australia
    Posts
    2,379


    Did you find this post helpful? Yes | No

    Default Re: Trying to get LCD to work on 18f45k22 and portB and EasyPic V7 - no luck

    using an internal oscillator, I would define it in Config1h and further in OSCCON?
    yes

    not forgetting if and when the pll is engaged
    and setting define OSC appropriately

    there is a tool called meconfig , look it up and download a copy , it makes life easier.
    pity is that melabs don't update things much anymore so newer chips are missing , its still useful though
    Warning I'm not a teacher

  10. #10
    Join Date
    Oct 2008
    Posts
    52


    Did you find this post helpful? Yes | No

    Default Re: Trying to get LCD to work on 18f45k22 and portB and EasyPic V7 - no luck

    Ok Richard Thank you but it looks like meconfig is not anywhere.. at least I couldn't find it to download..I will keep looking but ME labs has a posting that is discontinued and end of life....

  11. #11
    Join Date
    May 2013
    Location
    australia
    Posts
    2,379


    Did you find this post helpful? Yes | No

    Default Re: Trying to get LCD to work on 18f45k22 and portB and EasyPic V7 - no luck

    I couldn't find it to download.
    me either, thats a shame . i better not have another pc crash or that may be the end of it


    welcome to the Death Spiral of legacy software

    seems the spiral is tightening
    Warning I'm not a teacher

  12. #12
    Join Date
    Oct 2008
    Posts
    52


    Did you find this post helpful? Yes | No

    Default Re: Trying to get LCD to work on 18f45k22 and portB and EasyPic V7 - no luck

    What is the chance you could email me a copy?

  13. #13
    Join Date
    May 2013
    Location
    australia
    Posts
    2,379


    Did you find this post helpful? Yes | No

    Default Re: Trying to get LCD to work on 18f45k22 and portB and EasyPic V7 - no luck

    ok , the install file is only 1900k bytes, but too big to post
    pm me your email and I can send it


    ps
    maybe one of the moderators could upload it to Darrel's central repository , its his work after all

    meConfig install that is
    Last edited by richard; - 20th November 2017 at 03:45.
    Warning I'm not a teacher

  14. #14
    Join Date
    Oct 2008
    Posts
    52


    Did you find this post helpful? Yes | No

    Default Re: Trying to get LCD to work on 18f45k22 and portB and EasyPic V7 - no luck

    I guess I don't know how to pm..lol

  15. #15
    Join Date
    May 2013
    Location
    australia
    Posts
    2,379


    Did you find this post helpful? Yes | No

    Default Re: Trying to get LCD to work on 18f45k22 and portB and EasyPic V7 - no luck

    Quote Originally Posted by dbachman View Post
    I guess I don't know how to pm..lol
    Like this Don
    Attached Images Attached Images  
    Warning I'm not a teacher

Similar Threads

  1. Replies: 3
    Last Post: - 6th November 2011, 20:33
  2. Replies: 36
    Last Post: - 14th March 2011, 19:38
  3. Replies: 6
    Last Post: - 12th March 2011, 14:11
  4. LCD Data on portA and portB
    By EDWARD in forum mel PIC BASIC
    Replies: 31
    Last Post: - 22nd July 2005, 15:27
  5. Lcd On Porta And Portb
    By EDWARD in forum mel PIC BASIC Pro
    Replies: 5
    Last Post: - 5th May 2005, 06:53

Members who have read this thread : 2

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