Hi all. I´m using FC Student version 4.5.18.74 with PPP version 3.11.15.30. I sucssesfully test a e-Block Keypad with a e-Block LCD Display
with the huge 16F877A, but I couldn´t do that with the more economical 16F88 (18 pins) or even a 16F690 (20 pins).
I tried a lot with them but I always crashed with Port limitations issues. I was wondering: - is it possible to drive a Keypad + LCD Display with these two ucon (16F88 and 16F690) ? Thanks for all of you.
Keypad + 16x2 LCD Dispaly with 16F88/16F690 ?
Moderator: Benj
- Jay Dee
- Posts: 398
- Joined: Tue Aug 18, 2009 6:42 pm
- Has thanked: 121 times
- Been thanked: 154 times
- Contact:
Re: Keypad + 16x2 LCD Dispaly with 16F88/16F690 ?
Hi,
From a relative noob like myself, it looks do able and without a load of pin sharing. (which would be a more pretty solution)
16F88 = 18pins
take away the power pins, and two pins for a crystal, you have 14 left and need 13.
The LCD and Keypad both need to have some of their pins grouped and on the same port... not sure how picky it is but I think just consecutive pins on the same port will work. The RS and EN pins of the LCD can use any port I think.
LCD
PortA Pin2
PortA Pin3
PortA Pin4
PortA Pin5
PortA Pin 1
PortB Pin 3
KEYPAD
PortB Pin0
PortB Pin1
PortB Pin3
PortB Pin4
PortB Pin5
PortB Pin6
PortB Pin7
PortA pins 6 & 7 for the Osc
leaves 1 pin free I think. This method does use the MCLR pin, which I think you can set to be a general input in the config settings when programming the chip.
The above method work in simulation...but dont know in real world.
Only have FC5 but check out OK.
best of luck.
From a relative noob like myself, it looks do able and without a load of pin sharing. (which would be a more pretty solution)
16F88 = 18pins
take away the power pins, and two pins for a crystal, you have 14 left and need 13.
The LCD and Keypad both need to have some of their pins grouped and on the same port... not sure how picky it is but I think just consecutive pins on the same port will work. The RS and EN pins of the LCD can use any port I think.
LCD
PortA Pin2
PortA Pin3
PortA Pin4
PortA Pin5
PortA Pin 1
PortB Pin 3
KEYPAD
PortB Pin0
PortB Pin1
PortB Pin3
PortB Pin4
PortB Pin5
PortB Pin6
PortB Pin7
PortA pins 6 & 7 for the Osc
leaves 1 pin free I think. This method does use the MCLR pin, which I think you can set to be a general input in the config settings when programming the chip.
The above method work in simulation...but dont know in real world.
Only have FC5 but check out OK.
best of luck.
Re: Keypad + 16x2 LCD Dispaly with 16F88/16F690 ?
Suggestion received. I´ll implement it as soon I can. Will return with results. Thank you, Jay.
Re: Keypad + 16x2 LCD Dispaly with 16F88/16F690 ?
Sorry about English mistakes. I tried your circuit but it doesn´t work on real hardware.
To be honest I was expecting this result, because I have tested a lot with this kind of experiment - one PIC16F88 with a LCD Display (eBlock EB005) and a Keypad (eBlock EB0014). As you know, using Flowcode, many times the real circuit behavior aren´t the same as seen at the simulations.
Unfortunately for me, doing the necessary right adjustments in Flowcode Chip/Configure/Expert Screen and View/Project Options menus, are (sometimes) not a trivial task. I posted my last attempt (fluxogram and HEX files). The simulation works fine, but it didn´t on real circuit – only the keypad´s first row are detected (1,2 and 3), but nothing about the others rows (4,5,6,7,8,9,0,* and #).
If you have time, buid up the real circuit to realize the issue and if you get another idea how to do it give a clue. Thanks.
To be honest I was expecting this result, because I have tested a lot with this kind of experiment - one PIC16F88 with a LCD Display (eBlock EB005) and a Keypad (eBlock EB0014). As you know, using Flowcode, many times the real circuit behavior aren´t the same as seen at the simulations.
Unfortunately for me, doing the necessary right adjustments in Flowcode Chip/Configure/Expert Screen and View/Project Options menus, are (sometimes) not a trivial task. I posted my last attempt (fluxogram and HEX files). The simulation works fine, but it didn´t on real circuit – only the keypad´s first row are detected (1,2 and 3), but nothing about the others rows (4,5,6,7,8,9,0,* and #).
If you have time, buid up the real circuit to realize the issue and if you get another idea how to do it give a clue. Thanks.
- Attachments
-
- Keypad 16F88 V1.hex
- (3.37 KiB) Downloaded 288 times
-
- Keypad 16F88 V1.fcf
- (13 KiB) Downloaded 360 times
- Benj
- Matrix Staff
- Posts: 15312
- Joined: Mon Oct 16, 2006 10:48 am
- Location: Matrix TS Ltd
- Has thanked: 4803 times
- Been thanked: 4314 times
- Contact:
Re: Keypad + 16x2 LCD Dispaly with 16F88/16F690 ?
Hello,
Your keypad won't work correctly on PortA of a 16F88 device as the upper two bits of the port are being used for your oscillator source. I would suggest moving to a larger chip such as an 16F877A and you can then use PortC or D for your Keypad and it should all work as expected.
Your keypad won't work correctly on PortA of a 16F88 device as the upper two bits of the port are being used for your oscillator source. I would suggest moving to a larger chip such as an 16F877A and you can then use PortC or D for your Keypad and it should all work as expected.
Regards Ben Rowland - MatrixTSL
Flowcode Product Page - Flowcode Help Wiki - Flowcode Examples - Flowcode Blog - Flowcode Course - My YouTube Channel
Flowcode Product Page - Flowcode Help Wiki - Flowcode Examples - Flowcode Blog - Flowcode Course - My YouTube Channel