************************************************************************** *** ** *** convertisseur Hexa >> ASCCI sur LCD ** *** d'un mot dans la pile b ** ************************************************************************** **voir pour lire port en entree et afficher valeur sur LCD **voir integrer inteeruption mot sur port a lire !! PORTB equ $1004 PORTA equ $1000 *instructions DDRA equ $1001 Memoire rmb 1 * dizaine de seocnde Plus rmb 1 * dizaine de seocnde Position rmb 2 * varible pour recuperer position du curseur org $FE00 * start of EEPROM ******************************************************* *Configuration port ******************************************************* 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 * (#$01) jmp Deb ******************************************************* ***envoi caractere sur port B :RS au niveau haut*** char stab 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 rts ****Délai avant instruction suivante*** delay staa PORTA ldaa #$01 dedans ldy #$2FFF dedans2 dey *tempo wait instruction 115ms bne dedans2 *21.5ms deca * bne dedans rts ****envoi instruction 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 gotoxy oraa #$80 * evalue busy avant d'envoyer valeur portB bsr fonc rts ******************************************************* *Convertisseur ******************************************************* **positionne message 1ere ligne : Deb ldaa #$00 bsr gotoxy ldx #M4 *charge Message bcl5 ldab 0,x * lit 1ere valeur pointeur #unite beq fin * si fin de chaine ( valeur /) : stop bsr char *..sinon affiche le caractere inx bra bcl5 * boucle affichage des sceondes fin Main ***VALEUR A CONVERTIR *** *ldab #%11111111 *BA << 18 *ldab #%11001101 *cd << 180 ldab #%11000101 *C5 << 180 * ldab #%10110100 *B4 << 180 * ldab #%01100100 *64 << 100 ***VALEUR A CONVERTIR *** stab Memoire stab Plus *init centaine a zero : Centaine ldaa #$47 *1ere ligne 6eme position68 bsr gotoxy ldab #$3E bsr char *affiche '>' *init dizaine :caractere suivant Dizaine ldab Memoire *1011 0100 lsrb * 0101 1010 lsrb * 0010 1101 lsrb * 0001 0110 lsrb * 0000 1011 bsr Converti bpl Aff_Hex Fin ldab Memoire *affiche "4" bsr char *init unité : caractere suivant Unite ldab Plus *recuperation initial stab Memoire bsr Converti bpl Aff1_Hex Fin1 ldab Memoire *affiche "4" bsr char ldab #$3C bsr char *affiche '>' bra end ******************************************** Aff_Hex ldaa #$07 aba staa Memoire jmp Fin Aff1_Hex ldaa #$07 aba staa Memoire jmp Fin1 Converti stab Memoire bset Memoire,#$30 *0000 1011 >> $3x bclr Memoire,#$C0 *0011 1011 ldab Memoire cmpb #$39 rts end stop ******************************************************* *position du curseur sur l'ecran LCD M4 fcc "CONVERTISSEUR : ",0 m_5 fcb %00000000 end