bonjour tous monde.
svp comment je peau récuperer les données pour afficher en RB0 RB1 RB2 RB3 .. l'astuce est dans iorlw B'xxxxxxxxxx' ...mais j'arrive pas de fixer le pbm..dans proteus isis affiche "stack underflow executing return instruction" l'afficheur allumé mais aucun affichage.. merci d'avance
voici le partie de code..
PIC 16F876 pic utilisé
Code:;ce programme émet un octet avec RS=0 LCD_send bsf PORTA,1 bcf PORTC,2 movwf LCD_TEMP ;charger donnée à envoyer dans LCD_TEMP andlw B'00001111';récupérer que les poids forts iorlw B'00000000' ;placer les poids forts aux entrées RD4-7 et E=1 movwf PORTB nop ;laisser au moins 0.1µs bcf PORTA,1 ;valider les entrées du LCD (E=0 -> 1) call Wait50micros ;normalement c'est inutile bsf PORTA,1 bcf PORTC,2 swapf LCD_TEMP,w ;récupérer les poids faibles andlw B'00001111' iorlw B'00000000';placer les poids faibles aux entrées RD4-7 et E=1 ;2 movwf PORTB nop ;laisser au moins 0.1µs bcf PORTA,1 ;valider les entrées du LCD (E=0 -> 1) call Wait50micros return ;ce programme émet un octet avec RS=1 LCD_sendRS movwf LCD_TEMP ;charger donnée à envoyer dans LCD_TEMP bsf PORTA,1 bsf PORTC,2 ;RS=1 andlw B'00001111' ;récupérer que les poids forts iorlw B'00000000';placer les poids forts aux entrées RD4-7 et E=1 movwf PORTB nop ;laisser au moins 0.1µs bcf PORTA,1 ;valider les entrées du LCD (E=0 -> 1) call Wait50micros bsf PORTA,1 swapf LCD_TEMP,w ;récupérer les poids faibles andlw B'00001111' iorlw B'00000000';placer les poids faibles aux entrées RD4-7 et E=1 ;2 movwf PORTB nop ;laisser au moins 0.1µs bcf PORTA,1 ;valider les entrées du LCD (E=0 -> 1) call Wait50micros bcf PORTC,2 return END
-----