bonjour,
après avoir essayé pleins trucs sans résultat j'ai décidé de proposé mon pb sur forum, mon projet c'est d'afficher des message sur l'afficheur bt21605 en communicant avec le pic 16f84 en mode 8 bits j'ai réussis de l'initialise en mode 8 bit et 2*16 et 5*7 ma afficheur excute bien les instruction j'arrive a déplace mon curseur et tout mais par contre impossible d'afficher une lettre je vous met mon programme afin que vous pouviez voir mieux . merci
LIST p=16F84 ; Définition de processeur
#include <p16F84.inc> ; Définitions de variables
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _HS_OSC
;***************************** ****************************** **********
; ASSIGNATIONS *
;***************************** ****************************** **********
OPTIONVAL EQU H'88' ; Valeur registre option
; Résistance pull-up off
; Pas de préscaler
;***************************** ****************************** **********
; DEFINE *
;***************************** ****************************** **********
#DEFINE Rs PORTA,0
#DEFINE En PORTA,1 ; Led rouge
#DEFINE lcd PORTB ; bouton-poussoir
;***************************** ****************************** **********
; MACRO *
;***************************** ****************************** **********
LEDON macro
bsf LED
endm
LEDOFF macro
bcf LED
endm
;***************************** ****************************** **********
; DECLARATIONS DE VARIABLES *
;***************************** ****************************** **********
CBLOCK 0x00C ; début de la zone variables
cmpt1 : 1 ; compteur de boucles 1
cmpt2 : 1 ; compteur de boucles 2
cmpt3 : 1 ; compteur de boucles 3
temp1 : 1
coef : 1
ENDC ; Fin de la zone
;***************************** ****************************** ***********
; DEMARRAGE SUR RESET *
;***************************** ****************************** ***********
org 0x000 ; Adresse de départ après reset
goto init ; Adresse 0: initialiser
;***************************** ****************************** **********
; INITIALISATIONS *
;***************************** ****************************** **********
init
clrf PORTA ; Sorties portA à 0
clrf PORTB ; sorties portB à 0
clrf EEADR ; permet de diminuer la consommation
bsf STATUS,RP0 ; sélectionner banque 1
movlw OPTIONVAL ; charger masque
movwf OPTION_REG ; initialiser registre option
; Effacer RAM
; ------------
movlw 0x0c ; initialisation pointeur
movwf FSR ; pointeur d'adressage indirec
init1
clrf INDF ; effacer ram
incf FSR,f ; pointer sur suivant
btfss FSR,6 ; tester si fin zone atteinte (>=40)
goto init1 ; non, boucler
btfss FSR,4 ; tester si fin zone atteinte (>=50)
goto init1 ; non, boucler
; initialisations spécifiques
; ---------------------------
clrf lcd ; LED en sortie (banque1)
movlw b'11100'
movwf PORTA
bcf STATUS,RP0 ; repasser banque 0
goto start ; sauter au programme principal
envois
bsf En
nop
bcf En
return
tempo_30ms
movlw h'7A'
movwf coef
clrf temp1
boucle
decfsz temp1
goto boucle
decfsz coef
goto boucle
return
tempo_450ns
nop
nop
nop
nop
nop
return
tempo_15ms
movlw h'39'
movwf coef
clrf temp1
b1
decfsz temp1
goto b1
decfsz coef
goto b1
return
envois_cmd
bcf Rs
movwf lcd
call envois
call tempo_15ms
return
envois_caracter
bsf Rs
movwf lcd
call envois
call tempo_15ms
return
;***************************** ****************************** **********
; PROGRAMME PRINCIPAL *
;***************************** ****************************** **********
start
call tempo_30ms
movlw h'38'
call envois_cmd ; intialisation en mode 8 bits 2*16 et 5*7
movlw h'38'
call envois_cmd ; intialisation en mode 8 bits 2*16 et 5*7
movlw h'0E'
call envois_cmd ; affichage ONcurseur ON pas de clignotment
movlw h'06'
call envois_cmd ; incrémentation G à D
movlw h'80'
call envois_cmd ; adress podition du 1ere caracter
movlw h'52'
call envois_caracter ; afficher la lettre 'R'
movlw h'81'
call envois_cmd ; adress podition du 2eme caracter
movlw h'52'
call envois_caracter ; afficher la lettre 'R'
ici
goto ici
end
-----