******************************************************* ****affiche message sur LCD *** ******************************************************* *DONNES SUR PORT B sur $04 *INSTRUCTION SUR PORT A sur $00 * RS->A0 * RW->A1 * E>A2 *NOTE RS=0 ->Instruction * RS=1 ->Data * RW=0 ->ecriture RW=1 ->lecture * E=0 ->Invalide E=1 ->Afficheur actif **Initialisation variable port*** org $FE00 * positionnement EEPROM PORTB equ $04 *donnes PORTA equ $00 *instructions DDRA equ $01 ******************************************************* **Initialisation constante*** lds #$0150 *pile ldx #$1000 *offset ldaa #$FF staa DDRA,x *port A en sortie ******************************************************* ***initialisation LCD*** Init ldaa #$F2 * E=0 , RW=1 , RS=0 sur PORTA bsr delay home ldaa #%00000001 *0000 0001 : place curseur position HOME bsr fonc * (#$01) enter ldaa #%00000110 *0000 0110 : deplacement afficheur droite bsr fonc * (#$06) Curse ldaa #%00001100 *0000 1100 : D=1 afficheur alumé bsr fonc * C=0 *sans curseur * B=0 sans clignotement (#$0C) Bus ldaa #%00111000 *0011 1000 : BUS 8 bits (#$38) bsr fonc ******************************************************* *Affiche message ******************************************************* bsr messg stop ******************************************************* * #$00 : début ligne 1 * #$40 : début ligne 2 * #$10 : début ligne 3 * #$50 : début ligne 4 ******************************************************* * routine du pgm : ******************************************************* *Délai avant instruction suivante*** delay staa PORTA,x ldaa #$01 dedans ldy #$2FFF dedans2 dey *tempo wait instruction 115ms bne dedans2 *21.5ms deca * bne dedans rts * **Test busy avant instruction suivante*** gotoxy oraa #$80 * evalue busy avant d'envoyer valeur portB bsr fonc bsr char rts ***envoi instruction port B : RS au niveau bas*** fonc staa PORTB,x *instruction sur PORTB ldaa #$F0 * E=0 RW=0 RS=0 * RS en mode instruction bsr delay ldaa #$F4 * E=1 RW=0 RS=0 * en front montant >> validation bsr delay ldaa #$F0 * E=0 RW=0 RS=0 bsr delay rts * **envoi caractere sur port B :RS au niveau haut*** char stab PORTB,x ldaa #$11 *E=0,R/W=0,RS=1 * RS en mode données bsr delay ldaa #$15 *E=1,RW=0,RS=1 *E en front montant >> validation bsr delay ldaa #$11 *E=0,RW=0,RS=1 * Reinit E bsr delay rts ******************************************************* ***Message*** ******************************************************* messg ldaa #$02 *E=0,R/W=1,RS=0 pour evaluation busy ldab #$48 *H bsr gotoxy ldab #$65 *E bsr char ldab #$6c *L bsr char ldab #$6C *L bsr char ldab #$6F *O bsr char ldab #$20 *' ' bsr char ldab #$57 *W bsr char ldab #$6F *O bsr char ldab #$72 *R bsr char ldab #$6C *L bsr char ldab #$64 *D bsr char rts end