Le LPC14 combine un circuit afficheur LCD et un circuit gestion clavier sur le même microcontrôleur intégrant l'I2C.
Aucun composant externe n'est requis hormis 4 résistances nécessaires au fonctionnement du clavier.
Les 2 résistances de pull-up de SDA et SCL sont indispensables sur tout citcuit I2C.
Aucun registre interne n'est à gérer pour l'afficheur LCD,la gestion de ce dernier s'opérant en parallele avec le gestion I2C.
La vitesse d'horloge (SCL) est limitée à 100khz.

Il initialise l'afficheur LCD au format 2lignes/16 à 20 caractères,format 4 bits ,à la mise sous tension.
A la fin de l'init, le message 'LPC14 prêt' apparaît brièvement sur l'afficheur.
Le circuit ignore le bus I2C pendant l'initialisation, cette dernière durant environ 300 mS après la mise sous tension.


Le LPC14 répond aux adresses 70,71h ou 72,73h suivant le niveau appliqué sur la broche A0.

- L' accès I2C en lecture permet de rapatrier le code ascii de la touche (la broche INT passant à 0 au relâchement de cette dernière),la broche INT repasse au niveau 1 après lecture I2C.
- L'accès I2C en écriture permet l'envoi d'une instruction ou d'un ensemble de caractères ascii pour affichage sur afficheur LCD.Il est toutefois indispensable de respecter les temps d'exécution des instructions de l'afficheur car ce composant n'assure pas la bufferisation des données envoyées à l'afficheur LCD.

Me consulter si vous souhaitez mettre en oeuvre ce circuit.

Développement sur demande d'un circuit pour clavier 16 touches (4*4) en supprimant la broche A0 (->adresse I2C non sélectionnable).

Adressage du LPC14 en WR avec adresse I2C 70h

SCL
SDA

Adressage du LPC14 en RD avec adresse I2C 71h

SCL
SDA

Important:
Le LPC14 comporte un dispositif de stretching interne qui tire le signal SCL à l'état bas en cas d'occupation interne du circuit.
C'est le cas dans le graphique précédent pour le bit 6 de SCL de l'adresse (2° pulse de syncro en partant de la gauche après le start).On constate que l'état bas entre le premier et le deuxième pulse est plus large que les états bas entre les autres pulses).

Voir spécifications du bus I2C page 13 8.3

Conséquence pour la routine master I2C qui envoie l'octet sur le bus:
La routine master qui vient de fixer SCL à l'état haut doit venir tester si SCL est effectivement à l'état haut,attendre si nécessaire que cette condition soit vérifiée et fixer l'état haut à 5 µS max avec SCL=1 (100khz).
Toute routine I2C master doit traiter le signal de cette manière afin de garantir la compatibilité avec tous les circuits I2C et répondre aux spécifications.

Schéma format PDF
Routine I2C maître en assembleur pour 8051 I2C.A51
Fichier INC associé pour 8051 de base 8051.INC
Routines en C pour utiliser le LPC14 LPC14.C
   

Exemple d'interface IHM réalisé avec le LPC14