version 1.0
juill 2013
PIC 18F46K22
et Afficheur Nokia 3310: 8 lignes de 16cars
usage d'un PIC18F46K22 en DIP40 et du Pickit3 Microchip
pour charger l'executable
Environnemen t: MPLAB IDE V8.91 et C18
v3.45.00
Testé avec oscillateur interne
Fosc=16Mhz
Nokia
LCD datasheet (attention,pour
modele 6x14)
Afficheur de 8 lignes de 16 cars
* certains afficheurs ne font que 6 lignes de 14 cars
je ne sais pas quelle reference exacte entre modele 8x16 et 6x14...visuellement, ils sont semblables.
re modif du fichier linker (./_common/18f46k22_GrosseBank.lkr)
car rajout table specifique de caracteres Nokia 5x7 (128-32)*5=480 bytes
#pragma udata GrossBank // 3 bank = 768 bytes
#pragma udata NokiaBank // 2 bank = 512 bytes
J'ai trouvé un bug sur ma fonction nokia LCD senchar(x) .=> rajout d'un cast to int du caractere avant de le multiplier par 5 sinon
par exemple la lettre V non accessible ainsi que minuscules
ATTENTION definition radix DEC dans l'onglet Assembleur ..sinon deboires !
Test fonctions Nokia LCD OK de FOsc=1MHz to 64MHz
Liaison nokia au PortB :
B0,B1,B2,B3,.B4. relié respectivement ( via R=2,7K) à : Nokia 5 (CS), 4 (D/C), 8 (RES), 2(SCK) ,3 (DIn)
Attention: Alim Nokia 3,3V entre 1(Vdd) ,8(Gnd)
Une fois initialisé on doit retrouver environ 8,3V aux bornes du 1µF connecté entre Pin 7 nokia et masse (0V)
B7 et B6 reste libres pour l' ICSP
Affichage:
Ligne 1 :titre (en EEPROM)
Ligne 2 commentaire(en EEPROM)
Ligne 3 Version ( en #define debut de programme)
Ligne 4 valeur brute mesure Entree Ana EA0=RA0 // potar simule le capteur
Ligne 5 valeur mise à l'echelle et en Degre de EA0 , Acq ADC0 (RA0) 0mV -> -273°C 1023mV -> 226.5°C
Ligne 6 valeur de l'indice incrementiel dans la boucle principale
Ligne 7 Bargraph horizontal de 96 points, represente la temperature (EA0)
Ligne 8 affiche le buffer de reception UART (16 car maxi)Pourquoi un 40 pins :
Pour suite usage dans l'appli EDF info L'URAT1 est utilisé pour affichage sur terminal RS232.
Le Port C : C3,C4,C5 utilisés pour une liaison SPI module RTC1302,
le Port D : D7 pour recption trame EDT sur UART2.
sinon un 18F26K22 serait suffisant ..Fonctions dispo:
//---- Nokia 3310 LCD
void initlcd(void);
void sendcmd(char x) ;
void senddata(char x) ;
void cleanram(void);
void gotoxy( char x, char y) ;
void sendchar(char x);
void sendpack(char x) ;
void Nokia_PutRomString(rom char *string);
void Nokia_PutRamString(char *string);
void Nokia_Erase_Ligne(char Ligne);
void Nokia_Bargraph(char Ligne,int Value);
source C18 : 18F46K22_Nokia3310_130729_all.c
chargeur : 18F46K22_Nokia3310_130730.hex
linker: 18f46k22_GrosseBank.lkr
video : Nokia_96x64_Platine_18F4685.webm