Version avec PIC16F877
:
Rajout de circuits DS1307,PCF8574,24LC256 pilotées en I2C software, LCD piloté
en SPI
Montage de l'écran LCD sur
un circuit imprimé:
![]() |
![]() |
![]() |
circuit imprimé coté cuivre et coté connecteur |
3 realisations : 2 LCD 6x14 et 1 LCD 8x16 |
version LCD 8x16 |
![]() |
![]() |
![]() |
Nokia_3310_LCD_Adapter.jpg |
circuit imprimé original du nokia |
version LCD 6x14 |
fichier de test ,
version Nokia 6 ou nokia 8 Lignes (choix
avec directive define) :
Nokia_3310_LCD_877_6L_8L_ok.asm
; version speciale pour test Nokia LCD 3310 placé sur
support CI
; le LCD est reinitialisé a chaque boucle pour pouvoir
trouver rapidement le positionnement exact
; du LCD sur le circuit imprimé et bloquer la fixation
du LCD par 3 vis/ecrou
Executables en 2 version de nokia :
nokia_3310_test 6L
nokia_3310_test 8L
Prototype:
Platine Circuit
Imprimé
version ARES LITE : 16F877_Nokia_8x16_2010_cuivre.LYT
12/04/10 Test Platine avec NOKIA_877_090409.asm => pas
d'affichage LCD, Prg plante ? était OK en montage volant
..
14/04/10 Test
avec version MikroC 8.2.0 , pour tester surtout la partie LCD car
limite de 2K.
ATTENTION probleme
si compilé avec version Mikroc Pro 5.40.. la partie LCD ne fonctionne plus..why
?
source: .Nokia_LCD_16F877.c
chargeur : Nokia_16F877_tst_OK.hex
Le Nokia LCD est OK
avec la version en C donc => erreur hardware ou bug
avec la version ASM..
24/04/10 Bug Hardware trouvé ! Erreur de routage
circuit imprimé :
La resistance de rappel 2,7K au +5V etait connectéee du
coté LCD au lieu du coté RC3 PIC !
programme version ASM LCD ...OK apres cette rectification
Test
individuel du PCF8574
Raccordement de 8
leds via 8 R de 390 ohms sur les sorties du PCF8574
L'adresse est : base= 0x40 + adresse hardware Pins 1,2,3
correspondant à A0,A1,A2 avec A0 au +5V via R=2,7K A1 et
A2 au 0V
donc 001X = 2 ( ne pas oublier le bit0 qui est le bit de
Lecture ecriture dans l'adresse !) ce qui donne 0x40 + 0x02
= 0x42
Test avec resultat
LSB de CH1 (RA1 ) Analog input LSB , complement
envoyé sur le PCF8574 0x42
car c'est un bit à 0 qui allume la led !
programme source : PCF8754_1.asm
Chargeur: PCF8754_1.hex
16F877_Nokia_8x16_CI_100424.LYT
Description et
fonctionnalites
Gestion RS232 avec terminal PC
Affichage sur LCD nokia 3310.
Affichage permanent de la date et heure (sauvegardée par
pile)
Acquisition et affichage de 2 voies analogiques 0 -5V
Affichage en °C du Channel 0
Affichage en points du Channel 1
Affichage sous forme de barregraphe horizontal du Channel
1
Sur les 3 lignes restantes
affichage du Msg : Ports
8bs PCF8754
Affichage des 8 bits en ecriture
Possibilité de modification via Terminal PC :
via commande "E" , qui RAZ l'affichage des Bits
sur LCD,
Saisir ensuite les 8 valeurs de bits 0 ou 1, (echo sur
LCD et sur terminal PC) , et terminer par ENTER (CR LF)
touche ESC pour aborter la saisie en cas d'erreur..
Mise à jour de l'affichage binaire et Hexadecial sur le
LCD et actualisation des sorties PCF8574
Lecture permanente des 8 bits du 2em PCF8574 , affichage
en binaire et en hexa sur la derniere ligne LCD
Mise à jour Date et Heure ( ex
apres changement de Pile!):
Via Commande clavier "U" comme Update
Invite de commande sur ecran terminal suivant le format
AAMMJJWWHHMMSS
08052600141100<ENTER> pour 2008 Mai 26 Lundi 14H11M00S
La saisie se fait sous interruption , et stockage dans un
buffer de 16 caracteres,le caractere LineFeed 0A sert de
terminateur.
Coté Terminal, valider le CR comme LF+CR
Programme source (ASM)
et chargeur Hex
maj: mars 2012
Fichier source : Platine_16F877_nokia_Xport_Archos_120226
Fichier executable : Platine_16F877_nokia_Xport_Archos_120226.
Résultats sur terminal VBray
Historique :
;Last = NOKIA_877_platine_120226.asm"
; chargement *.HEX avec PIC DOWNLOADER 1.09 sur com2
19200 bauds
; Rappel : bootloader incorpore dans le PIC16F877
;-------------------------------------------------------------
Bug sur Cde ecriture PCF8574
corrigé
;28/03/2011 encore un bug trouvé! la
mise a l'heure s'effectue mais ne tient plus suite
coupure
; alim et reprend les valeurs par defauts
;=> forcage OPTION_REG a 0x00 pour re-activer
systematiquement le pull-up sur portB
;sur le proto il y avait une R + led, mais pas sur le
Circuit imprimé!!!
;12/09/09 rajout starter=# et finisher =& dans la
trame RS32
;17/07/09 modif routine reception
;12/07/2009 modif pour adaptation specifique au XPORT
; schema voir 16F877_Nokia_Xport_090502.DSN
;29 mai 2009 adaptation reception directe 8 bits pour
Xport
;27/03/09 echelle 0,00 a 40.96°C sur EA1 CH0 avec LM35DZ
+ Ampli 10x => resolution 0,04°C
;16/03/2009 Envoi complet sur RS232 sans passer par le
menu pour Test avec XPORT Webserver
;13/03/2009 : Bug sur jour Date envoyée sur RS232 (mais
OK sur LCD!)
;Nov 2008.. 3 voies analogiques
; 06/07/2008 correction Bug : si Bargraphe =0 sautait la
suite du traitement...
; 27/05 /208 modif saisie car par car avec affichage echo
sur LCD
; test OK debordement taille buffer (16 car max)
; modif SP effacement LCD .. 9 au lieu de 8 lignes et 97
au lieu de 96 pixel
; 25/05 rajout lecture permanente port PCF8574_2
; affichage Ecr PCF8574 en binaire et hexadec... saisie
par paquet
; rev 23/05 PB avec deplacement table caracteres en 1000H
pour avoir plus de place code..
; attention gestion de PCLATH obligatoire avec code
debordant l'adresse 0x7FF = page 0
; programme en page 2 > 0x1000 appelé apres BSF
PCLATH,4 (BCF PCLATH,3)
; attention BCF PCLTAH,4 si appel de SP en page 0
; rajout ecriture PCF8574
; rev 23/05/2008 rajout saisie M MAJ date .. testé OK
; rev 17/04 /2008 table car 5x7 placee en page 5 au
lieu de 4
; rev 14/04/2008 avec nouveau LCD 3310 certifi mont
sur support C.I.
; on obtient bien 8 lignes de 96 car (l'ancien n'affichait
que 5 lignes et 1/2 ...a moitie HS!!!!)
;rev 23/03/2008
;************************
;affichage
sur LCD:
;************************
(avec echo sur RS232
! pour debugging ou enregistrement via Terminal PC)
Date
et heure CH0 + 4,93 Deg CH1 0030 POINTS CH2 00030 POINTS ========= bargraph Ports 8b PCF8574 Ecr 10001100 =8Ah Lec 11110001 =F1h ou ;MAJ DS1307 6em ;AAMMJJWWHHMMSS ;08052605181800 |
1ere ligne 2eme 3eme 4eme 5eme 6eme 7eme 8eme 6eme 7eme 8eme |
*********************************************
Raccordement platine 16F877 au XPORT
Package socket et
interface VB6 disponible : Client_Xport_Platine_16F877_120301.zip
liaison ethernet Platine 16F877 avec socket en VB6
NEW ! application en basic RFO sur tablette
ARCHOS 43it
Possible depuis la disponibilite de l'application
"socket" depuis Octobre 2011 pour recupere les
datas d'un flux ethernet
sans passer par de la programmation en JAVA .( en
apparence !)
Application 100% Asm
16F877
package source, Hex .. 16F877_Platine_Archos.zip
Trame emise toutes les 2,4 secondes. (limite=2sec
traitement complet coté Archos!)
Liason platine 16F877 -> RS232 TTL 19200bds ->
moduel Xport -> Ethernet -> FreeBox
application RFOBasic :
source basic : _Socket_Archos_Platine_16F877_Xport_120228.bas
5 mesures analogiques 10bits
8E = Lectures 8 leds rouges
8S reparties en 4 eclairages et 4 Chauffages
pas de
retour d'ordre avec PCF8574 , valable uniquement avec MCP23017
16S, version interface18F
Liaison Archos .. en Wifi
voir sur
rubrique ARCHOS43it
Version transposée sous
MikroC Pro 6.01 (registered)
Transfert des fonctionalites definies dans la version
precedente 100% ASM , en Langage C MikroC
Gestion Nokia LCD 8 lignes
de 16 cars conservé
Gestion UART 19200,8,N,1 Conservee
Nota: Le bootloader du 16F877 est conservé (10Mhz 19200,8,N,1)
car est compatible avec MikroC
L'outil PIC
Downloader 1.09.exe
est rajouté dans les Tools de MikroC, pour etre
directement accessible
La liaison RS232 doit etre connectée sur le DB9 de la
platine ! (programme terminal désactivé!)
Il suffit de lancer Downloader 1.09 ,
Verfiier que le bon port COM est activé, ainsi que la
vitesse 19200 bds
selectionner le fichier HEX compilé puis cliquer sur
"Write" , et faire un bref Power OFF/power ON
aussitot le bandeau de chargement se deroule.. "message
All OK" en fin de chargement
Le (programme) terminal peut alors etre connecté
Rajout gestion DS1307 .. problematique.. Coupe une partie d'affichage
Nokia, des l'init I2C.
BOULETTE ! j'avais oublié que le nokia en SPI,
mobilisait deja RC6 et RC7 , donc
Rajout Liaison bus I2C en version Software I2C
utilisant RB6 et RB7 .. => OK..
Probleme avec Taille RAM insuufusante , necessite de
manipuler IRP_bit !! MANUELLEMENT !
Problemes avec taille ROM insuffisante, si usage de trop
de texte en flash ROM
Rajout gestion Eeprom 32K bytes , avec commandes clavier
STA : , demmarre le stockage sur Eeprom 24LC256, sans
modifier l'index en cours
HAL :, Halte (Pause) stockage s
RAZ : Remet à zero l'index de stockage
REL : relit L'Eeeprom de 0x00000 à valeur de l'index
dans ce programme seule la mesure ADC0 est sauvegardée =>
2 bytes par valeur (0000 à 1023)
Probleme
avec Bootloader et PIC DOWNLOADER 1.09, des que la taille programme Appli approche la
limite du bootloader
Comment proteger l'espace 0x1F00.. 0x1FFF ?
refonte du bootlaoder dans le PIC16F877 8Ko
j'en profite pour mettre un bootloader dans le 16F874
(4Ko seulemnt)
Il s'avere que la version PIC Downloade 1.09 est
problematique :
genere une rreur à >95% de chargement ! mais charge
quand meme !! ?
mais obliger de faire Power Off Power On pour lancer le
programme applicatif .
Le fait de repasser à la version Pic Downloader
1.08 elimine ce probleme,
Download OK .." message All OK" et enchainement
du lancement de l'appli ..OK
modif Tools MikroC pour pointer sur la version Downloader
1.08
Comnande speciale DUMP
Flash ROM complete
DUM<CR> permet le DUMP complet avec
adresse hexa à gauche et 16 valeurs par ligne de tout l'espace
Flash PIC16F877
soit de 0x0000 à 0x1FFF, englobe donc le bootloader !
Chargeur : 16F877_Platine_Nokia_24LC256_RS_140712
source MikroC : 16F877_Platine_Nokia_RS_24LC256_140629
rev 2016
Projet
Projet Zippé 16F877_Platine_Nokia_2016
fichier source 16F877_Platine_Nokia_RS_24LC512_2016.c
fichier log Resultat : 16F877_Platine_Nokia_24LC512_RS.log
fichier Macro Terminal VBray : 16F877_Platine_Nokia_RS.tmf
chargeur 16F877_Platine_Nokia_24LC512_RS.hex
correspondance connexions Nokia LCD
Connecteur Blanc LCD sur la carte |
Fil de liaison | Pin de connection LCD 8x16 |
1 | Blanc 1 liseret rouge. | Pin 1 |
2 | Blanc 2 liserets Rouges | Pin 2 |
3 | Blanc 3 liserets Rouges | Pin 3 |
4 | Blanc 4 liserets Rouges | pin 4 |
5 | Blanc | pin 5 |
6 | Bleu | Pin 6 |
7 | Violet | Pin 7 |
8 | Gris | Pin 8 |
L'evolution
de ce projet reste limitée à cause du faible espace
Memoire RAM.! ..
Version transposée pour 18F4685
(MikroC 6.62)
apres avoir pu mettre un bootloader approprié dans ce
MCU
Simple echange de MCU 16F877 par 18F4685 compatible
Hardware pin à pin
comparatif
details ICI
Questions ? :paulfjujo@free.fr
retour à l'index
général