************************************************************************** *** ** *** 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 Reste1 rmb 1 * dizaine de seocnde Reste2 rmb 1 * dizaine de seocnde Quot1 rmb 1 * varible pour recuperer position du curseur Memoire rmb 1 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 #$BB stab Memoire ***VALEUR A CONVERTIR *** *Postionne ecran: Centaine ldaa #$47 *1ere ligne 6eme position68 bsr gotoxy ldab #$3E *1ere ligne 6eme position68 bsr char Dizaine * 75 / 10 X1=7 R1=5 * 7 / 10 X2=0 R2=7 * X2 R2 R1 = 0 7 5 clra ldab Memoire ldx #10 *10 idiv * d(=valeur) / x(=10) Quotient >>X Reste>>D * B=Reste1 X=Quotient1 addb #$30 * ajoute 30 pour ASCCI stab Reste1 * affiche Reste1 xgdx *Passe X(=Quotient1) dans B ldx #10 * 7/10 idiv *d(=Quotient1) / x(=10) Quotient >>X Reste>>D addb #$30 * ajoute 30 au Reste2 stab Reste2 *affiche Reste2 xgdx *Passe X(=Quotient2) dans B addb #$30 *Ajoute 30 pour ASCCI stab Quot1 *Affiche Quotient2 ***Affichage bsr char ldab Reste2 bsr char ldab Reste1 bsr char ldab #$3C *1ere ligne 6eme position68 bsr char bra Fin Fin stop ******************************************************* *position du curseur sur l'ecran LCD M4 fcc "CONVERT: HEX>DEC",0 m_5 fcb %00000000 end