'--------Title-------- ' File......LCD1.pbp ' Started....3/18/06 ' Microcontroller used: Microchip Technology PIC16F88 ' microchip.com ' PicBasic Pro Code: micro-Engineering Labs, Inc. ' melabs.com '--------Program Desciption-------- ' Prints simple message to 16 x 2 parallel ' LCD which uses Hitachi 44780 controller. ' Most hobby LCD's use this controller. '----------Related Lessons--------- ' See LCD BASICS lesson at: ' http://cornerstonerobotics.org/curriculum/lessons_year2/erii14_lcd1.pdf ' ' lcd1.pbp is used in the lesson LCD Command Control Codes at: ' http://cornerstonerobotics.org/curriculum/lessons_year2/erii15_lcd2_lcd_command_control_codes.pdf '------------Comments-------------- ' A practical guide to interfacing and ' programming LCD modules can be found at ' www.epemag.wimborne.co.uk/resourses.htm ' or by googling everyday practical electronics lcd ' The article includes LCD pin functions. '-----New PicBasic Pro Command----- ' The PicBasic Pro Compiler Manual is on line at: ' http://www.microengineeringlabs.com/resources/index.htm#Manuals ' ' LCDOUT Item{,Item...} ' Display Items on an intelligent Liquid Crystal Display. PBP ' supports LCD modules with a Hitachi 44780 controller or ' equivalent. ' Look around page 95 in the PicBasic Pro Compiler Manual '---------PIC Connections--------- ' 16F88 Pin Wiring ' --------- ---------- ' RA0 LCD pin 11(DB4) ' RA1 LCD pin 12(DB5) ' RA2 LCD pin 13(DB6) ' RA3 LCD pin 14(DB7) ' RA4 LCD Register Select(RS) ' RB3 LCD Enable(E) ' See schematic for the other usual PIC connections '---------LCD Connections--------- ' LCD Pin Wiring ' --------- ---------- ' 1 Ground(Vss) ' 2 + 5v(Vdd) ' 3 Center of 20K Pot(Contrast) ' 4 RA4(Register Select,RS) ' 5 Ground(Read/Write,R/W) ' 6 RB3(Enable) ' 7 No Connection(DB0) ' 8 No Connection(DB1) ' 9 No Connection(DB2) ' 10 No Connection(DB3) ' 11 RA0(DB4) ' 12 RA1(DB5) ' 13 RA2(DB6) ' 14 RA3(DB7) '---------Revision History-------- ' 11/28/07 Change MCU from 16F84A to 16F88 ' 11/28/07 Add 16F88 oscillator and ANSEL = 0 ' initializations '----------Initialization--------- ANSEL = 0 ' Configure all pins to digital ' operation since not using ADC ' (Analog to Digital Converter) OSCCON = $60 ' Sets the internal oscillator in the ' 16F88 to 4 MHz '------------Main Code------------ pause 1000 ' Pause to allow LCD to setup start: lcdout $FE,1,"Hello World" ' Clears LCD screen, displays ' Hello World pause 500 ' Pause 1/2 second goto start ' Go to start label end