PIC-LCD e MIKROBASIC

Credevo d'aver risolto il problema dell'accesso all'LCD in Basic usando il Mikrobasic ma, dopo l'entusiasmo iniziale dato che le due prime righe funzionano a dovere, mi sono dovuto ricredere quando ho tentato d'accedere alla terza ed alla quarta riga.

Non c'e' verso di far scrivere sulle prime quattro caselle delle 2 righe e non trattasi di difetto hardware dato che lo stesso comportamento e' riscontrabile anche sul simulatore. Ma sono proprio cosi' scadenti questi Basic per PIC? Poi proprio nelle funzione piu' utile perche' gestire in assembler l'LCD e' parecchio noioso.

Prima avevo sbattuto piu' volte la testa con il Picbasicpro che mi scriveva tutto sulla prima riga, pensavo d'aver risolto con il Mikrobasic, ma nada! Mi scoccerebbe dover andare nel file .asm generato per correggere tutti i punti dove ci sono dei caratteri da scrivere su queste due righe, operazione poi da ripetere parecchie volte se si deve mettere a punto un programma con output complicato.

Ciao Celso

.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.

pagina d'elettronica:

formatting link
`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.

Reply to
Celsius
Loading thread data ...

Il giorno Fri, 10 Feb 2006 17:32:25 +0100, "Celsius" ha scritto:

Dopo una breve esperienza con un paio di compilatori, sono tornato all'assembler e ne sono contento. Parere personale, ovviamente.

Reply to
Luigi C.

Celsius ha scritto:

Ma esistono tante di quelle routine già scritte... non devi invertarti la ruota ogni volta.

Reply to
pozz

Non ho capito dov'è la difficoltà. Io uso picbasicpro e faccio così:

LCDOUT $fe,$01,"Prima riga" LCDOUT $fe,$c0,"Seconda riga" LCDOUT $fe,$94,"Terza riga" LCDOUT $fe,$d4,"Quarta riga"

Ciao

Reply to
Roby

Il giorno Fri, 10 Feb 2006 17:32:25 +0100, "Celsius" ha scritto:

Tieni presente che:

- molti lcd 16x1 indirizzano i primi otto caratteri da 0 a 7, e i successivi 8 da $40 a $47

- gli lcd 16x2 indirizzano la prima riga da 0 a $0F, la seconda da $40 a $4F

- gli lcd 16x4 indirizzano la prima riga da 0 a $0F, la seconda da $40 a $4F, la terza da $10 a $1F, la quarta da $50 a $5F.

Sembra una filosofia di indirizzamento un po' bislacca, ma è così.

Io mi trovo bene a programmare in assembler, ho il controllo totale del micro, comunque in rete si trovano molte routine aritmetiche e di gestione lcd già fatte.

Reply to
Luigi C.

Luigi C. wrote in news: snipped-for-privacy@4ax.com:

Utilizzo i picbasicpro (2.46 ma anche sulle precedenti funzionava e sinceramente non ho mai avuto particolari problemi con la scrittura sugli lcd!

provato su display da 16x4

lcdout $fe,1 lcdout $fe,$80,"inizio 1 riga" lcdout $fe,$c0,"inizio 2 riga" lcdout $fe,$94,"inizio 3 riga" lcdout $fe,$d4,"inizio 4 riga"

Ste

Reply to
Ste

"Roby" ha scritto nel messaggio

Vedro' di riprovare magari rifacendo anche l'hardware, ma ho notato un'incongruenza tra i codici della prima riga tua e quelli forniti da Ste, qual'e' quello giusto Ste: lcdout $fe,$80,"inizio 1 riga"

Ciao Celso

.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.

pagina d'elettronica:

formatting link
`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.

Reply to
Celsius

"Luigi C." ha scritto nel messaggio

Me ne sono accorto purtroppo, ma non e' questo il caso. A quel modo bislacco e' possibile rimediare con qualche acrobazia.

Probabilmente tu lo usi spesso e ti ricordi tutto, io invece lo uso solo saltuariamente ed ogni volta dovrei ripassarmi tutto, con il Mikrobasic le cose sono piu' semplici e si ricordano piu' facilmente, per esempio si puo' scrivere sulla prima riga usando questo comando: lcd_out (1, 1,"prima riga").

Ciao Celso

.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.

pagina d'elettronica:

formatting link
`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.

Reply to
Celsius

Celsius ha scritto:

Ciao Celso, io uso normalmente il PicBasicPro con display a 4 righe senza il minimo problema. Lo sai che le righe hanno un indirizzo? Ad esempio:

Line1 CON $80 ' Indirizzo della linea 1 Line2 CON $C0 ' Indirizzo della linea 2 Line3 CON $94 ' Indirizzo della linea 3 Line4 CON $D4 ' Indirizzo della linea 4 ComLCD CON $FE ' Indicatore di comando

lcdout comlcd,line2, " Scrivo su linea 2" lcdout comlcd,line3, " Scrivo su linea 3" lcdout comlcd,line4, " Scrivo su linea 4"

ciao Roberto

Reply to
ro37bis

"ro37bis" ha scritto nel messaggio

Si certo e lo usavo anche, probabilmente mi sfugge qualche altra cosa da mettere prima (come include ecc., uso un PIC 16F84A) Mi manderesti in email p.f. un file completo e testato di tutti i parametri, che scriva su 4 righe? aisiri chiocciola freesurf punto ch Cosi' posso verificare se trattasi di qualche mia omissione. Sul Mikrobasic invece non ho dubbi: trattasi proprio di un bug del compilatore.

Ciao e grazie Celso

.??.·?¯`·.??.·?¯`·.??.·?¯`·.??.·?¯`·.??.·?¯`·.??.·?¯`·.??.

pagina d'elettronica:

formatting link
?.·?¯`·.??.·?¯`·.??.·?¯`·.??.·?¯`·.??.·?¯`·.??.·?¯`·.??.

Reply to
Celsius

In effetti $fe,$01 è il comando per cancellare tutto il contenuto del display e il puntatore ritorna in posizione "home", quindi primo carattere della prima riga. L'indirizzo che dice Ste non l'ho mai provato perchè c'è anche il comando $fe,$02 che ritorna in posizione "home" senza cancellare il display.

Cmq se ti posso dare un consiglio scaricati "Microcode studio", è l'editor gratuito della melabs che ti consente di scrivere il programma, evidenziare le parole chiavi, etc... Ha anche una guida simile ai prodotti microsoft, se premi F1 su una parola chiave ti da l'help della funzione uguale a quella che leggi nel manuale di picbasicpro.

Ciao Roby

Reply to
Roby

Dimenticavo il link:

formatting link

Ciao

Reply to
Roby

"Roby" ha scritto nel messaggio

Scaricato, grazie e' veramente comodo!

Ciao Celso

.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.

pagina d'elettronica:

formatting link
`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.

Reply to
Celsius

Il Sun, 12 Feb 2006 15:10:58 +0100, "Celsius" ha scritto:

Non sono sicurissimo Celso, ma mi pare che i display alfanumerici in standard HD44780 possano differire nell'indirizzo delle diverse righe a seconda di come vengono utilizzati appunti gli hd44780 (o equivalenti), in quanto uno di questi ic non può da solo pilotare oltre 80 caratteri. Consiglio la consultazione dei seguenti:

formatting link

in particolare la figura 4 ed il testo sulla quinta pagina (la 88) prima del paragrafo "experiment 4"

A chi interessa poi c'è anche la seconda parte:

formatting link

MazE

-- per rispondere raddoppiate z & t - double z & t to reply

formatting link

Reply to
MazE

"MazE" ha scritto nel messaggio

Per quanto ne so se riesco a scrivere sulle 4 righe in assembler dovrei riuscirci anche in Basic dato che il codice Basic e' prima tradotto in assembler poi viene compilato. Se mi dicono che con il Picbasicpro si riesce a scrivere su tutte le 4 righe, probabilmente faccio io qualche errore e/o omissione e mi piacerebbe scoprire qual'e' confrontando il sorgente di chi c'e' riuscito con il mio. Comunque il mio LCD e' un 4x16 quindi non supera gli 80 caratteri. Per il Mikrobasic ho segnalato il bug al distributore italiano, spero che possano correggerlo perche' trovo veramente comodo usare il Basic quando non ci sono esigenze d'occupazione di memoria o di velocita'. Con il Mikcrobasic ho fatto un cronometro che conta anche i giorni (usando solo le 2 prime righe) ed il codice non riusciva a stare sul PIC 16f84, e' bastato togliere una riga di codice che faceva la cancellazione di una riga prima della riscrittura per farcelo entrare tutto.

Ciao e grazie per i link Celso

.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.

pagina d'elettronica:

formatting link
`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.

Reply to
Celsius

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.