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 |
![]() |
Adressage du LPC14 en RD avec adresse I2C 71h SCL |
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 |