Scritta "HELLO WORLD" su Display 20X4 pilotato da un microcontrollore AT90S4433 programmato in assembly.
Sono nuovo di questo forum!
Uso un display LCD 20X4 con il driver SPLC780D compatibile con lo standard Hitachi HD44780.
Voglio controllarlo con un AVR AT90S4433, per il microcontrollore uso un oscillatore a 2 MHz.
Ho più volte programmato e riprogrammato l'AVR cercando di correggere ogni volta gli eventuali errori, ma niente da fare il display si accende ma non si vede nulla.
Premetto che la parte Hardware va bene e il contrasto del LCD anche.
Vorrei che qualcuno gentilmente, che conosce un po' questo micro e il linguaggio di programmazione Assembly, mi scriva un semplice programma che mi faccia comparire la scritta "HELLO WORLD" così da confrontarlo con il mio. Spero riuscirete a darmi una mano perché, è più di un mese che sono fermo con questo progetto XD
Inserisco qui due link:
- quello del microcontrollore AT90S4433
http://www.atmel.com/Images/doc1042.pdf
- quello del display LCD (SPLC780D)
http://www.hebeiltd.com.cn/lcm.datashee ... 80D_DS.pdf
Grazie mille in anticipo.
inserisco anche i collegamenti delle porte che ho effettuato:
- TUTTA LA PORTA D da D0-----D7 del micro l'ho collegata appunto a D0----D7 del LCD (quindi modalità a 8 bit)
- PORTB 2 del micro l'ho collegato all' ENABLE del LCD
- PORTB 4 del micro l'ho collegato all' RS del LCD
- PORTB 5 del micro l'ho collegato all' R/W del LCD
Grazie davvero !
Scritta su Display LCD 20X4 pilotato da un microcontrollore
Moderatore:
Paolino
4 messaggi
• Pagina 1 di 1
0
voti
Ciao
MGtech benvenuto.
Posta il tuo di programma ( usa i tag "code" in alto nella barra strumenti ), in questo modo qualcuno ti può dire quali errori presenta.
Facendo in questo modo faciliti le eventuali risposte.
MGtech ha scritto:Vorrei che qualcuno gentilmente, che conosce un po' questo micro e il linguaggio di programmazione Assembly, mi scriva un semplice programma che mi faccia comparire la scritta "HELLO WORLD" così da confrontarlo con il mio.
Posta il tuo di programma ( usa i tag "code" in alto nella barra strumenti ), in questo modo qualcuno ti può dire quali errori presenta.
Facendo in questo modo faciliti le eventuali risposte.
1
voti
Ho scritto un paio di articoli (prima parte e seconda parte) sul pilotaggio dei display alfanumerici. Benché siano per i PICMicro potresti magari prendere spunto.
Ciao.
Paolo.
Ciao.
Paolo.
"Houston, Tranquillity Base here. The Eagle has landed." - Neil A.Armstrong
-------------------------------------------------------------
PIC Experience - http://www.picexperience.it
-------------------------------------------------------------
PIC Experience - http://www.picexperience.it
-

Paolino
32,6k 8 12 13 - G.Master EY

- Messaggi: 4226
- Iscritto il: 20 gen 2006, 11:42
- Località: Vigevano (PV)
0
voti
MGtech,
ti allego il semplice codice ASM che ti ho scritto per pilotare il display e scrivere "Hello world" sul display 20x4.
Penso dovrebbe funzionare, purtroppo non mi ritrovo at90s4433....
Il display è connesso nella modalità 4 bit come potrai vedere nella parte inizializzazione LCD.
Il clock è settato a 2Mhz e i valori di ritardo sono calcolati tenendo conto di questo clock.
Mi sarebbe piaciuto vedere quello che avevi scritto tu
di sicuro .... ehm. comunque per sta volta
va bene così, ma chiarmente non è questa la strada per imparare a programmare ... eh?
La prossima volta prima di chiedere mostra quello che tu hai scritto e poi chiedi .... a buon intenditore poche parole
. Qui siamo disponibili ma non stupidi.
ti allego il semplice codice ASM che ti ho scritto per pilotare il display e scrivere "Hello world" sul display 20x4.
Penso dovrebbe funzionare, purtroppo non mi ritrovo at90s4433....
Il display è connesso nella modalità 4 bit come potrai vedere nella parte inizializzazione LCD.
Il clock è settato a 2Mhz e i valori di ritardo sono calcolati tenendo conto di questo clock.
Mi sarebbe piaciuto vedere quello che avevi scritto tu
va bene così, ma chiarmente non è questa la strada per imparare a programmare ... eh?
La prossima volta prima di chiedere mostra quello che tu hai scritto e poi chiedi .... a buon intenditore poche parole
- Codice: Seleziona tutto
;
.include "C:\Cyclone\AVR\inc\4433DEF.INC"
;
.DSEG
.CSEG
.ORG 0
_Reset:
ldi yl,Low(RAMEND)
out SPL,yl
sbiw yl,32
rcall LcdIni
;-------Posiziona il cursore su 1,1
ldi r24,0x7F
push r24
ldi zl,Low(1)
pop r24
add r24,zl
rcall _LCtr
;-------Punta a "Hello world"
ldi zl,Low(S000*2)
ldi zh,high(S000*2)
rcall _LSc
;-------End
L0000:
rjmp L0000
;-------Stringa puntata
S000: .db "Hello world", 0
;-------Inizializza Lcd
LcdIni: in zl,DDRD
ori zl,0xf0
out DDRD,zl
sbi DDRB,4
sbi DDRB,2
cbi PORTB,4
cbi PORTB,2
ldi zl,0x10
rcall _Wms
ldi r24,0x03
rcall _LOut
ldi zl,0x05
rcall _Wms
rcall _LEN
ldi zl,0x06
rcall _Wus
rcall _LEN
cbi PORTD,4
rcall _LEN
ldi r24,0x28
rcall _LCtr
ldi r24,0x06
rcall _LCtr
ldi r24,0x0c
rcall _LCtr
ldi r24,0x01
rcall _LCtr
ldi zl,0x03
rcall _Wms
ret
_Lch: sbi PORTB,4
rjmp _LNib
_LCtr: cbi PORTB,4
_LNib: mov r21,r24
Swap r24
rcall _LOut
mov r24,r21
_LOut: in r23,PORTD
andi r23,0x0f
Swap r24
andi r24,0xf0
Or r24,r23
out PORTD,r24
rcall _LEN
ret
;-------Lcd Enable
_LEN: sbi PORTB,2
Nop
Nop
cbi PORTB,2
push zl
ldi zl,0x04
rcall _Wus
pop zl
ret
;-------Lcd constante stringa
_LSc: lpm
tst r0
breq _LSc1
mov r24,r0
rcall _Lch
adiw zl,1
rjmp _LSc
_Lsc1: ret
;-------Wait msec
_Wms: ldi r20,0x14
_Wms1: ldi r21,0x42
_Wms2: dec r21
brne _Wms2
dec r20
brne _Wms1
dec zl
brne _Wms
ret
;-------Wait usec
_wus: ldi r22,12
_wus1: dec r22
brne _wus1
dec zl
brne _wus
ret
4 messaggi
• Pagina 1 di 1
Torna a Firmware e programmazione
Chi c’è in linea
Visitano il forum: Nessuno e 7 ospiti

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)



