******************************************************* ******* MESSAGE SUR LCD ******** ******************************************************* *Message dans FCB !!! *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 ->W RW=1 ->R * E=0 ->Invalide E=1 ->Afficheur actif * pour adapter le branchement du LCD : modifier * §fonc §fonc1 §char et §char1 pour le bus de donnée LCD (8 bits) * §DELAY , §DELAY1 pour le bus de priorité. (RS RW E) **Initialisation variable port*** PORTB equ $1004 *donnes PORTA equ $1000 *instructions PORTC equ $1003 *instructions PORTF equ $1005 *instructions DDRA equ $1001 DDRC equ $1007 ** variable : Position rmb 2 * varible pour recuperer position du curseur org $Fe00 * positionnement EEPROM lds #$0150 *pile ldaa #$FF staa DDRA *port A en sortie *------------------------------------ * initialisation LCD*** *------------------------------------ Init ldaa #$F2 * E=0 , RW=1 , RS=0 sur PORTA bsr delay 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 home ldaa #%00000001 *0000 0001 : place curseur position HOME bsr fonc jmp deb *------------------------------------ * MESSAGE *------------------------------------ deb Mess5 ldaa #$00 bsr gotoxy ldy #M4 *charge Message bcl5 ldaa 0,y * lit 1ere valeur pointeur #unite beq fin * si fin de chaine ( valeur /) : stop bsr char *..sinon affiche le caractere bra bcl5 * boucle affichage des sceondes fin stop *------------------------------------------ * affichage caractere ou insctruction LCD *------------------------------------------- ***Délai avant instruction suivante*** ***Ne pas modifier sinon LCD HS*** ***envoi instruction sur port B :RS au niveau bas*** fonc staa PORTB *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 staa PORTB 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 iny * pour passer au caractere suivant rts ***délai d'acceptation instruction par LCD : pas modifier !! delay staa PORTA ldaa #$01 dedans ldx #$2FFF dedans2 dex *tempo wait instruction 115ms bne dedans2 *21.5ms deca bne dedans rts ***ctrl busy !! gotoxy oraa #$80 * evalue busy avant d'envoyer valeur portB bsr fonc rts *----------------------------------- *Lignes a afficher : M4 fcc "-Bonjour...- ",0 m_5 fcb %00000000 *----------------------------------- end