Bonjour
je cherche a programmer un pic pour qu'il transmette des caractère sur le port ps2 d'un pc je transmet donc une horloge et un signald e donnée. lorsque je fait une silmulation sous mplab j'obtien le bon chronogramme mais lorsque je le programme en realité j'ai que le signal d'horloge savez vous pourquoi?.
pour vous presenter mon programme ( car je n'ai pas tout commenter)
en gros j'utilise un boucle pour généré l'horloge sur le port RD0
puis j'utilise des variable gue je décremente a chaque passage pour appeler 1seul fois le sous programme startcondition, BIT7, BIT6 etc
je ne vous met pas tt le programme je par sur le fichier de base de bigonoff.
merci
;***************************** ****************************** ******************
; PROGRAMME PRINCIPAL *
;***************************** ****************************** ******************
DEBUT
MOVLW D'1'
movwf AA
MOVLW D'1'
movwf CC
MOVLW D'1'
movwf DD
MOVLW D'1'
movwf EE
MOVLW D'1'
movwf GG
MOVLW D'1'
movwf FF
MOVLW D'1'
movwf HH
MOVLW D'1'
movwf II
MOVLW D'1'
movwf LL
MOVLW D'1'
movwf MM
MOVLW D'1'
movwf NN
MOVLW D'1'
movwf OO
MOVLW D'1'
movwf PP
MOVLW D'1'
movwf QQ
MOVLW D'1'
movwf RR
MOVLW D'1'
movwf SS
MOVLW D'1'
movwf TT
MOVLW D'1'
movwf UU
MOVLW D'1'
movwf VV
MOVLW D'1'
movwf WW
MOVLW D'12'
movwf ZZ
bsf PORTD,1 ; met a 1 la ligne de donnée
; Création du signal d'horloge sur broche 19 (port D0)
start
;***************************** ****************************** ******************
movlw 0x9 ; Initialisation de mariable et mavariable2
movwf mavariable ; valeur 255 = a peu près T à 500µs
movlw 0x9
movwf mavariable2
;***************************** ****************************** *******************
nop
nop
nop
bsf PORTD,0 ;--------------------------------------HORLOGE AU NIVEAU 1
CALL STARTCONDITION
decfsz XX,f
GOTO ici
CALL BIT7
decfsz EE,f
GOTO ici
CALL BIT6
decfsz GG,f
GOTO ici
CALL BIT5
decfsz HH,f
GOTO ici
CALL BIT4
decfsz KK,f
GOTO ici
CALL BIT3
decfsz MM,f
GOTO ici
CALL BIT2
decfsz OO,f
GOTO ici
CALL BIT1
decfsz QQ,f
GOTO ici
CALL BIT0
decfsz SS,f
GOTO ici
CALL PARITE
decfsz UU,f
GOTO ici
CALL STOPCONDITION
ici
decfsz mavariable,f
GOTO ici
bcf PORTD,0 ;--------------------------------------HORLOGE AU NIVEAU 0
ici2
decfsz mavariable2,f
GOTO ici2
GOTO start
; ****************************** *************START************ ****************************** ********
STARTCONDITION
decfsz AA,f ; décrémente A saute l'instruction suivante si a=0
return
bcf PORTD,1 ; met a 0 le bus donnée lorsque l'horloge est a 1
MOVLW D'255'
movwf AA ; a=255 pour que lors du prochain cycle le startcondition ne se déroule pas jusqu'a la fin de l'iniatialisation
MOVLW D'2'
movwf XX
return
; ****************************** *******envoi de l'octet*********************** **************************
;envoi bit 7
BIT7
decfsz CC,f
return
bsf PORTD,1
MOVLW D'255'
movwf CC
MOVLW D'2'
movwf EE
MOVLW D'1'
movwf XX
return
;envoi bit 6
BIT6
decfsz DD,f
return
bcf PORTD,1
MOVLW D'255'
movwf DD
MOVLW D'2'
movwf GG
MOVLW D'1'
movwf EE
MOVLW D'1'
movwf XX
return
; envoi BIT 5
BIT5
decfsz FF,f
return
bsf PORTD,1
MOVLW D'1'
movwf GG
MOVLW D'1'
movwf EE
MOVLW D'1'
movwf XX
MOVLW D'2'
movwf HH
MOVLW D'255'
movwf FF
return
; envoi BIT4
BIT4
decfsz II,f
return
bcf PORTD,1
MOVLW D'2'
movwf KK
MOVLW D'1'
movwf XX
MOVLW D'1'
movwf GG
MOVLW D'1'
movwf EE
MOVLW D'1'
movwf HH
MOVLW D'255'
movwf II
RETURN
; envoi BIT3
BIT3
decfsz LL,f
return
bsf PORTD,1
MOVLW D'255'
movwf LL
MOVLW D'2'
movwf MM
MOVLW D'1'
movwf KK
MOVLW D'1'
movwf HH
MOVLW D'1'
movwf XX
MOVLW D'1'
movwf GG
MOVLW D'1'
movwf EE
return
; envoi BIT 2
BIT2
decfsz NN,f
return
bcf PORTD,1
MOVLW D'255'
movwf NN
MOVLW D'2'
movwf OO
MOVLW D'1'
movwf MM
MOVLW D'1'
movwf KK
MOVLW D'1'
movwf HH
MOVLW D'1'
movwf XX
MOVLW D'1'
movwf GG
MOVLW D'1'
movwf EE
RETURN
; envoi BIT 1
BIT1
decfsz PP,f
return
bcf PORTD,1
MOVLW D'255'
movwf PP
MOVLW D'1'
movwf OO
MOVLW D'1'
movwf MM
MOVLW D'1'
movwf KK
MOVLW D'1'
movwf HH
MOVLW D'1'
movwf XX
MOVLW D'1'
movwf GG
MOVLW D'1'
movwf EE
MOVLW D'2'
movwf QQ
RETURN
; envoi BIT 0
BIT0
decfsz RR,f
return
bcf PORTD,1
MOVLW D'2'
movwf SS
MOVLW D'255'
movwf RR
MOVLW D'1'
movwf OO
MOVLW D'1'
movwf MM
MOVLW D'1'
movwf KK
MOVLW D'1'
movwf HH
MOVLW D'1'
movwf XX
MOVLW D'1'
movwf GG
MOVLW D'1'
movwf EE
MOVLW D'1'
movwf QQ
MOVLW D'255'
movwf PP
MOVLW D'1'
movwf OO
return
PARITE
decfsz TT,f
return
bcf PORTD,1
MOVLW D'1'
movwf SS
MOVLW D'255'
movwf TT
MOVLW D'1'
movwf OO
MOVLW D'1'
movwf MM
MOVLW D'1'
movwf KK
MOVLW D'1'
movwf HH
MOVLW D'1'
movwf XX
MOVLW D'1'
movwf GG
MOVLW D'1'
movwf EE
MOVLW D'1'
movwf QQ
MOVLW D'2'
movwf UU
return
STOPCONDITION
decfsz VV,f
return
bsf PORTD,1
MOVLW D'255'
movwf VV
return
end
-----