I'm game, don't forget I couldn't turn an LED on a few weeks ago though!Getting an LCD up and running might be a good experiment, and it's also a handy tool for debugging code later.
Dave
I'm game, don't forget I couldn't turn an LED on a few weeks ago though!Getting an LCD up and running might be a good experiment, and it's also a handy tool for debugging code later.
Dave
Is there a surplus store over there like this?
http://www.allelectronics.com/make-a...splays-/1.html
Dave
Always wear safety glasses while programming.
There's RS
They have these (and I've got an account).
http://uk.rs-online.com/web/search/s...20Alphanumeric
Or Maplins again:
http://www.maplin.co.uk/Search.aspx?...=lcd&source=15
The RS range seems far superior.
Dave
Last edited by LEDave; - 28th March 2010 at 19:59.
Sure, most of us couldn't flash an LED when we started.
But Mackrackit is doing a nice job of getting you up to speed, and a parallel LCD display isn't that hard to set up.
You'll need to set up 4 pins on your PIC, all on one port for your LCD data lines, and 2 more pins for Enable and Register Select
You'll need to make sure that those 6 pins are setup as digital outputs and any other stuff that shares those pins (ADC, comparators, etc) are disabled.
Once the pins are set correctly then you'll add a few DEFINE's to your program to tell the PIC where to find your LCD and what pins are what.
Like this, but with YOUR particular ports and pin numbers that you are using:
Then it's just a matter of using the LCDOUT command...Code:DEFINE LCD_DREG PORTD 'Set LCD Data port DEFINE LCD_DBIT 4 'Set starting Data bit (0 or 4) if 4-bit bus DEFINE LCD_RSREG PORTE 'Set LCD Register Select port DEFINE LCD_RSBIT 0 'Set LCD Register Select bit DEFINE LCD_EREG PORTE 'Set LCD Enable port DEFINE LCD_EBIT 2 'Set LCD Enable bit DEFINE LCD_BITS 4 'Set LCD bus size (4 or 8 bits)
or if you wanted to display the content of a variable as a decimal number:Code:LCDOUT $fe, 2, "HELLO WORLD"
It's easy!Code:myvariable var word myvariable = 3955 LCDUT $fe, 2, DEC myvariable
steve
Has anyone used this one? Is it any good?
http://uk.rs-online.com/web/search/s...duct&R=5326795
Dave
Always wear safety glasses while programming.
Hi B_B
Ok, I'm sold
These LCD's look like great fun and a really useful interface.
When my first LED came on, that was brilliant. When my seven segment display /
driver lit up and counted up to nine that was cool.
These look in a different league, can't wait.
Dave
That one doesn't look like it's got a backlight. One with a backlight would be sexier...
Here in the US, I find these to be a good deal for $10USD.
http://search.digikey.com/scripts/Dk...ywords=c0220az
Don't know about UK vendors.
steve
Last edited by Byte_Butcher; - 28th March 2010 at 22:44.
Interrupt on change (interrupt when the state of a pin changes)
Again this is a snippet from another chip (16F873A) but it will give you something to start with.
Code:ON INTERRUPT GOTO MYINT INTCON = %10010000 'PORTB.0 CHANGE DISABLE MYINT: IF PORTB.0 = 1 THEN ' DO SOMETHING ELSE 'DO SOMETHING ELSE ENDIF INTCON.1 = 0 RESUME ENABLE 'THE ABOVE WILL ALSO DEBOUNCE THE SWITCH
Dave
Always wear safety glasses while programming.
Cheers mackrackit,
I made a little table up that other newbies who are maybe following this thread might find useful. It hinges on what you said the other day about setting the prescaler (TMR0) and using that with (I = I +1) to set up a delay of your choosing.
Didn't quite come out as planned and every time I edit it the changes I make it just resets.BIT TMR0 Time_u_secs HZ
000 1:2 512 976
001 1:4 1024 488
010 1:8 2048 244
011 1:16 4096 122
100 1:32 8192 61
101 1:64 16384 30.5
110 1:128 32768 15.2
111 1:256 65536 7.6
Still, I'm sure you get the drift (might be worth checking my figures as well though).
Any thoughts on that LCD?
Dave
Last edited by LEDave; - 29th March 2010 at 16:39.
I've just had a thought.
It's probably dangerous for me to offer advice right now, no matter how well intensioned. As some of my conclusions maybe a little off the mark.
Dave
Bookmarks