bonsoir tout le monde
je veux afficher une chaine de caractère sur un lcd 2*16 en utilisant la notion de table
voila le programme en assembleur j'essayerai de mettre de commentaire
Code:LIST P=16F84A #include"P16F84A.inc" compt_1 EQU 0X0C compt_2 EQU 0X0D compt_3 EQU 0X0E boutton EQU 0X0F tab_1 EQU 0X10 tab_2 EQU 0X12 temp EQU 0X11 org 0X00 E EQU 3 RS EQU 2 goto start org 0X05 start bsf STATUS,RP0 movlw 0X38 movwf OPTION_REG clrf TRISB clrf TRISA bcf STATUS,RP0 clrf PORTA clrf PORTB bsf INTCON,5 ; procedure initialisation bsf PORTA,E; bcf PORTA,RS; movlw B'00111000' movwf PORTB call top_h movlw B'00000001' movwf PORTB call top_h movlw B'00001110' movwf PORTB call top_h movlw B'00000110' movwf PORTB call top_h movlw B'10000000' movwf PORTB call top_h bsf PORTA,RS ;Affichage de la chaine de caractere movlw 0X14 movwf temp movlw 0X00 movwf tab_2 aff call table_2 movwf PORTB incf tab_2 bcf PORTA,RS ; pour deplacer le curseur a droite movlw 0X1C ;j'envoie 0X1C movwf PORTB bsf PORTA,RS ; je remets le BIT rs en mode donnee decfsz temp goto aff attend goto attend tempo movlw 0x0A movwf compt_1 boucle2 movlw 0x0A movwf compt_2 boucle1 DECFSZ compt_2,1 goto boucle1 DECFSZ compt_1,1 goto boucle2 return top_h call tempo bcf PORTA,E call tempo bsf PORTA,E return table_1 andwf PCL,f retlw '0' retlw '1' retlw '2' retlw '3' retlw '4' retlw '5' retlw '6' retlw '7' retlw '8' retlw '9' table_2 movf tab_2,w andwf PCL,f retlw 'l' retlw 'a' retlw ' ' retlw 'v' retlw 'a' retlw 'l' retlw 'e' retlw 'u' retlw 'r' retlw ' ' retlw 'e' retlw 's' retlw 't' retlw ':' end
pour le schéma
ca marche sans aucun soucis car quand je transfère un caractère en code ASC il s'affiche sans aucun problème
je suis en mode simulation avec ISUS proteus
Merci d'avance
-----