Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

[PIERIN] Modulo per pilotaggio display alfanumerico

Raccolta di codici sorgenti

Moderatore: Foto UtentePaolino

3
voti

[1] [PIERIN] Modulo per pilotaggio display alfanumerico

Messaggioda Foto UtenteTardoFreak » 17 giu 2013, 15:44

Un saluto a tutti i partecipanti,
Mi sto apprestando a scrivere un modulo per il pilotaggio dei display LCD alfanumerici con controllore HD44780.
Vorrei soltanto sapere se c'è qualcun altro che lo sta facendo per evitare di:
- Rompergli le scatole e magari "bruciare" un argomento per un articolo :(
- Fare in due la stessa cosa. ||O

Il modulo io l' ho già scritto tanto tempo fa in una galassia molto lontana :mrgreen: quindi per ora rimango in attesa di conferme/smentite/consigli prima di farne un articolo. :ok:
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
Avatar utente
Foto UtenteTardoFreak
73,9k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15754
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare

0
voti

[2] Re: [PIERIN] Modulo per pilotaggio display alfanumerico

Messaggioda Foto Utenterusty » 17 giu 2013, 15:47

Hai fatto benissimo, stavo appunto pensando di farlo, dopo aver finito di scrivere sto benedetto articolo. :ok:
Avatar utente
Foto Utenterusty
4.075 2 9 11
Utente disattivato per decisione dell'amministrazione proprietaria del sito
 
Messaggi: 1578
Iscritto il: 25 gen 2009, 13:10

0
voti

[3] Re: [PIERIN] Modulo per pilotaggio display alfanumerico

Messaggioda Foto UtenteTardoFreak » 17 giu 2013, 15:52

Ok, aspettiamo un giorno/due per vedere se ci sono altri che hanno intenzione di farlo e poi decideremo chi lo fa.
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
Avatar utente
Foto UtenteTardoFreak
73,9k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15754
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare

0
voti

[4] Re: [PIERIN] Modulo per pilotaggio display alfanumerico

Messaggioda Foto UtenteTardoFreak » 18 giu 2013, 16:08

Questa sera dopo cena inizierò a mettere "in bella" il programma.
Se poi domani qualcuno si farà vivo mi fermerò.
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
Avatar utente
Foto UtenteTardoFreak
73,9k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15754
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare

0
voti

[5] Re: [PIERIN] Modulo per pilotaggio display alfanumerico

Messaggioda Foto Utentefairyvilje » 20 giu 2013, 18:57

Ma perché? Secondo me avere più versioni di una stessa "libreria" non è una cosa necessariamente sbagliata anzi :)
"640K ought to be enough for anybody" Bill Gates (?) 1981
Qualcosa non ha funzionato...

Lo sapete che l'arroganza in informatica si misura in nanodijkstra? :D
Avatar utente
Foto Utentefairyvilje
15,0k 4 9 12
G.Master EY
G.Master EY
 
Messaggi: 3047
Iscritto il: 24 gen 2012, 19:23

0
voti

[6] Re: [PIERIN] Modulo per pilotaggio display alfanumerico

Messaggioda Foto UtenteMedo » 15 nov 2013, 17:41

Un saluto a tutti sono nuovo,proprio in questi giorni dopo anni che non usavo il PIC,mi è venuta l'idea di provare a scrivere su un display lcd. Ho già scritto il sorgente pero mi da problemi di esecuzione ovvero mi da 'hardware stack underflow' e non capisco quale sia il motivo..se posto il programma potete aiutarmi?
Avatar utente
Foto UtenteMedo
5 2
 
Messaggi: 14
Iscritto il: 15 nov 2013, 15:35

0
voti

[7] Re: [PIERIN] Modulo per pilotaggio display alfanumerico

Messaggioda Foto UtenteMedo » 17 nov 2013, 16:02

Codice: Seleziona tutto
LIST P=16F84A
   RADIX DEC
   #INCLUDE "P16F84A.INC"
   ERRORLEVEL -302
   __CONFIG 3FF1H

ORG 0CH
   msCount          RES 2
   #DEFINE           ENABLE   PORTA,0
   #DEFINE           RS       PORTA,1           ;Register_select=0 invio un comando Register_select=1 Invio dato
   #DEFINE           WRITE    PORTA,2
   usDelayCounter    EQU 012H
   CLEAR                EQU 013H
   DATCOM             EQU 014H               
   
ORG 00H
   
INIT_PORT                              ;Impostazione PORTA e PORTB IN uscita
   BCF STATUS,RP0
   CLRF PORTB
   CLRF PORTA
   BSF STATUS,RP0
   MOVLW 0X00
   MOVWF TRISB
   MOVWF TRISA
   BCF STATUS,RP0

INIT_LCD
   MOVLW 30                        ;Imposto il tempo di attesa prima di inviare i comandi
   CALL msDELAY                   ;Chiamo routine di ritardo
   MOVLW 12
   CALL LCD_SEND_COMMAND
   MOVLW 0X3C                      ;imposto il funzionamento a 8bit
   CALL LCD_SEND_COMMAND
   MOVLW 0X01                      ;Scrivo in CLEAR il dato da inviare per refreshare il dispaly
   MOVWF CLEAR
   CALL LCD_SEND_COMMAND
   NOP                          ;Pulizia del display 
   MOVLW 2
   CALL msDELAY                     
   MOVLW CLEAR
   BSF ENABLE
   CALL LCD_SEND_COMMAND
   MOVLW 2
   CALL msDELAY
   MOVLW 00H                  ;Imposto il cursore sulla prima riga

LCD_LOCATE
   CALL LCD_SEND_COMMAND
   MOVWF PORTB
   BSF ENABLE
   MOVLW 1
   CALL msDELAY
   RETURN

SHOW
   MOVLW 10H                    ;Dico al display dove iniziare a scrivere
   CALL LCD_LOCATE
   MOVLW 'C'                 ;Scrivo in WORK la lettera
   CALL LCD_SEND_DATA           ;Chiamo la routine per inviare la lettera al display
   MOVLW 'I'
   CALL LCD_SEND_DATA
   MOVLW 'A'                 ;Scrivo in WORK la lettera
   CALL LCD_SEND_DATA           ;Chiamo la routine per inviare la lettera al display
   MOVLW 'O'
   CALL LCD_SEND_DATA
LOOP
   GOTO LOOP

LCD_SEND_DATA         
   BSF RS                       ;Dico al display che invio un dato
   MOVWF DATCOM                 ;Si scrive in DATCOM una lettera precedentemente scritta in WORK
   MOVWF PORTB                  ;Invio il dato sul PORTB
   BSF ENABLE                   ;Abilito il display ad accettare il dato per 46uS
   BSF WRITE               ;Abilito il display per la scrittura
   MOVLW 14
   MOVWF usDelayCounter
   CALL usDELAY
   BCF ENABLE                  ;Si disattiva la trasmissione di qualsiasi dato
   RETURN

LCD_SEND_COMMAND               
   BCF RS                       ;Dico al display che sto inviando un comando.
   MOVWF DATCOM                 ;Si scrive in DATCOM un comando precedentemente scritto in WORK
   MOVWF PORTB                  ;Invio il comando sul PORTB
   BSF ENABLE                   ;Abilito il display ad accettare il dato per 46uS
   BSF WRITE                ;Abilito il display per la scrittura
   MOVLW 14
   MOVWF usDelayCounter
   CALL usDELAY
   BCF ENABLE                   ;Disabilito la trasmissione di qualsiasi comando
   RETURN      
 
msDELAY
   MOVWF msCount+1       ;scrivo il valore di msDELAY precedentemente salvato in W nel registro msDelayCounter+1
   CLRF msCount+0        ;Azzero msCount+0 che al primo decremento partira da 255

msDELAYLOOP
   NOP                ;ROUTINE DA 1ms 1+3(256-1)+255+3=1024 CHE SI MOLTIPLICA PER msDELAYCounter+1
   DECFSZ msCount+0,1
   GOTO msDELAYLOOP
   DECFSZ msCount+1,1
   GOTO msDELAYLOOP
   RETURN
usDELAY
   DECFSZ usDelayCounter,1      ;Con usDelayCounter=14 la formula sarà come sopra 3(15-1)+2+2=46uS
   GOTO usDELAY
   NOP
   NOP
   RETURN
   END
Avatar utente
Foto UtenteMedo
5 2
 
Messaggi: 14
Iscritto il: 15 nov 2013, 15:35

0
voti

[8] Re: [PIERIN] Modulo per pilotaggio display alfanumerico

Messaggioda Foto UtenteMedo » 17 nov 2013, 22:50

Purtroppo ancora non avete risposto comunque il software che ho scritto aveva dei problemi diciamo grammaticali,però non ho ancora risolto il problema. Più che altro volevo informativi che la versione 8.92 come ho scritto sopra da dei problemi (compreso il compilatore ) diversi dalla 7.60,oggi l'ho disinstallata e ho messo la 6. Questa versione non da problemi e compila senza dare nessun tipo di errore secondo voi sono normali tutte queste differenze?
Avatar utente
Foto UtenteMedo
5 2
 
Messaggi: 14
Iscritto il: 15 nov 2013, 15:35

0
voti

[9] Re: [PIERIN] Modulo per pilotaggio display alfanumerico

Messaggioda Foto Utenteivanpascolo » 10 nov 2014, 22:27

Benissimo per il display alfanumerico... spero sia fatto con il PIC e con il compilatore XC8.
Se qualcuno vuole presentare una bella libreria pensi anche ad un display 128x64 con i driver st7565 o NT7534 (sono i piu' proposti dai fornitori di display)
Avatar utente
Foto Utenteivanpascolo
20 3
New entry
New entry
 
Messaggi: 71
Iscritto il: 29 set 2014, 20:44


Torna a Firmware e programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 5 ospiti