Je fais actuellement un capacimètre, avec un Pic16F883, voici son datasheet
J'ai pris la méthode temps de charge d'un condensateur, qui me donne un temps en micro-seconde
Mais la conversion analogique me prend à elle seule trop de temps, ce qui fausse le résultat.
Auriez vous une autre solution à me proposer que cette méthode.
Je signale que je compte mesurer des grandes valeurs de 1 Farads à 3000 Farads, donc la méthode capacitance et résonance
est a exclure.
pour tout ceux qui éclairerons ma lanterne.......
Je vous donne le code qui est pour l'instant un brouillon, mais opérationnel....
Code : Tout sélectionner
;**********************************************************************************************
Errorlevel-302 ; Supprime le message "Ensure that bank bits are correct"
list p=16F883 ; processeur utilisé
#include <p16F883.inc> ; Définitions des constantes
__CONFIG _CONFIG1, _DEBUG_OFF & _LVP_OFF & _FCMEN_OFF & _IESO_OFF & _BOR_OFF & _CPD_OFF & _CP_OFF & _MCLRE_OFF & _PWRTE_OFF & _WDT_OFF & _INTRC_OSC_NOCLKOUT
__CONFIG _CONFIG2, _WRT_OFF & _BOR21V
;*************************************** assignations ******************************************
#DEFINE lcd_port PORTA ; RA0 ==> D4
; RA1 ==> D5
; RA2 ==> D6
; RA3 ==> D7
#DEFINE lcd_rs PORTA,4 ; RA4 ==> RS
#DEFINE lcd_e PORTA,5 ; RA5 ==> E
;******************************** déclaration des variables ************************************
CBLOCK H'40' ; zone de la sdram en bank 1 : H'20' à H'7F' soit 96 octets
bank0 :1
loop1 :1
loop2 :1
loop3 :1
loop4 :1
loop5 :1
chiffre :4
phrase :1
lettre :1
lecture :1
choix :1
tension :1
tmps :1
temps :1
calibrage :1
calibrage_old :1
dix_millième :1
millième :1
centaine :1
dizaine :1
unité :1
res8 :1
res16 :1
ENDC
;-----------------------------------------------------------------------------------------------
CBLOCK H'A0'
bank1 :1 ; zone de la sdram en bank 1 : H'A0' à H'EF' soit 80 octets
ENDC
;-----------------------------------------------------------------------------------------------
CBLOCK H'120'
bank2 :1 ; zone de la sdram en bank 2 : H'120' à H'16F' soit 80 octets
ENDC
;-----------------------------------------------------------------------------------------------
CBLOCK H'70' ; zone commune en bank 0, bank 1, bank 2, bank 3 : H'70' à H'7F' soit 16 octets
adresse :1
donner :1
w_temp :1
status_temp :1
ENDC
;***************************** adresse de depart après reset ***********************************
ORG H'00'
goto debut
;******************************** lieu des interruptions ***************************************
ORG H'04'
retfie
;********************************** en commence ici ********************************************
debut
;**********************************************************************************************
BANKSEL ANSEL ; on passe en bank 3
;************************ configuration du registre ANSEL en bank 3 *************************
; en mode numérique :
clrf ANSEL ; en mode E/S : 2(RA0), 3(RA1), 4(RA2), 5(RA3), 7(RA5)
;************************ configuration du registre ANSELH en bank 3 *************************
movlw B'00010100' ; en mode numérique : 21(RB0), 22(RB1)
movwf ANSELH ; en mode E/S : 23(RB2), 24(RB3), 25(RB4), 26(RB5)
;**********************************************************************************************
BANKSEL OSCCON ; passe en bank 1
;************************ configuration du registre OSCCON en bank 1 ***************************
; 01111000 oscillateur 8 Mhz
; 01101000 oscillateur 4 Mhz
; 01011000 oscillateur 2 Mhz
; 01001000 oscillateur 1 Mhz
; 00111000 oscillateur 500 Khz
; 00101000 oscillateur 250 Khz
; 00011000 oscillateur 125 Khz
; 00001000 oscillateur 31 Khz
movlw B'01111100' ;
movwf OSCCON ; choix sur 8 Mhz
;************************ configuration du registre OPTION_REG en bank 1 ***********************
movlw B'10000000' ;
movwf OPTION_REG ; résistances hors service ;
;************ configuration des registres TRISA & TRISB & TRISC & TRISE en bank 1 *************
movlw B'00000000' ; configuration des pattes dans TRISA
movwf TRISA ; 2(RA0), 3(RA1), 4(RA2), 5(RA3), 6(RA4), 7(RA5), 10(RA6), 9(RA7)
movlw B'11111111' ; configuration des pates dans TRISB
movwf TRISB ; 21(RB0), 22(RB1), 23(RB2), 24(RB3), 25(RB4), 26(RB5), 27(RB6), 28(RB7)
movlw B'00000000' ; configuration des pattes dans TRISC
movwf TRISC ; 11(RC0), 12(RC1), 13(RC2), 14(RC3), 16(RC5), 15(RC4), 17(RC6), 18(RC7)
movlw B'00001000' ; configuration de la patte dans TRISE
movwf TRISE ; 1,(RE3) MCLR en entrée seulement, ne peut être configuré en sortie.
; alimmentation sous 5 volts patte 8 ou 19 mettre au moins
; patte 20 mettre au plus
;************************ configuration du registre ADCON1 en bank 1 **************************
clrf ADCON1 ; la conversion sera justifié à gauche
; la tension de référence du CAN est l'alimentation du microcontrôleur
;**********************************************************************************************
BANKSEL ADCON0 ; passe en bank 0
;************************ configuration du registre ADCON0 en bank 0 **************************
movlw B'11000000' ; b7 = ADCS1 choisir la fréquence de fonctionnement du
movwf ADCON0 ; b6 = ADCS0 convertisseur en fonction de la fréquence d'horloge du PIC
; b5 = CHS3 sélection du canal
; b4 = CHS2 sélection du canal
; b3 = CHS1 sélection du canal
; b2 = CHS0 sélection du canal
; b1 = GO/DONE indique la fin de la conversion analogique, et permet de lancer la conversion
; b0 = ADON mise en service du convertiseur 0 = arrêt : 1 = marche
;************************ configuration du registre T1CON en bank 0 ***************************
clrf T1CON ;
;********************* configuration du registre INTCON en bank 0,1,2,3 ***********************
clrf INTCON ; b7 = GIE arrêt de toutes les interruptions
;***********************************************************************************************
clrf PORTA
clrf PORTB
clrf PORTC
;*********************** "initialisation du mode 4 bits pour LCD 1602" *************************
call _1s
;----------------------------------------------------------------------------
movlw B'00000010'
call envoi ; mode 4 bits
call e_pulse
;----------------------------------------------------------------------------
movlw B'00000010'
call envoi ; mode 4 bits
call e_pulse
;----------------------------------------------------------------------------
movlw B'00001000'
call envoi ; mode 4 bits
call e_pulse
;----------------------------------------------------------------------------
call _40µs
;----------------------------------------------------------------------------
; "mode 1 ou 2 lignes du lcd"
movlw B'00000010'
call envoi ; utilisation de 2 ligne du LCD
call e_pulse
movlw B'00001100'
call envoi
call e_pulse
;----------------------------------------------------------------------------
call _1640µs
;----------------------------------------------------------------------------
; "choix de voir le curseur"
movlw B'00000000'
call envoi ; autorise l'affichage, et cache le curseur
call e_pulse
movlw B'00001100'
call envoi
call e_pulse
;----------------------------------------------------------------------------
call _40µs
;----------------------------------------------------------------------------
; "curseur de gauche à droite"
movlw B'00000000'
call envoi ; déplacement du curseur après l'apparition
call e_pulse ; d'un caractère de gauche à droite
movlw B'00000110'
call envoi
call e_pulse
;----------------------------------------------------------------------------
call _40µs
;----------------------------------------------------------------------------
; "adresse d'écriture dans GGRAM pour création de caractére"
movlw b'00000100'
call envoi ; adresse d'écriture dans CGRAM à l'adresse 0x00
call e_pulse
movlw B'00000000'
call envoi
call e_pulse
;----------------------------------------------------------------------------
call _40µs
;----------------------------------------------------------------------------
; "création du caractère "é", "à", "µ", "°" dans la GGRAM"
movlw D'32' ; longueur de la donnée
movwf phrase
clrf lecture ; emplacement du départ de la donnée
call affiche ; enregistrement des caractéres dans GGRAM
call efface_lcd ; efface l'écran LCD
;***********************************************************************************************
clrf adresse
call lecture_eeprom
movfw donner
movwf calibrage
;******************************** "calibrage du capacimètre" ***********************************
bt1
btfsc PORTE,3
goto bt2
btfss PORTE,3
goto $-D'1'
call efface_lcd
call _100ms
call canal_AN10 ; sélectionner le canal RB1/AN10
reglage
call ligne1_lcd
movlw D'10' ; longueur de la donnée qui est "Calibrage:"
movwf phrase
movlw D'130' ; emplacement du départ de la donnée
movwf lecture
call affiche
movfw calibrage ;
movwf res8 ;
clrf res16
call traduire
verifier
btfsc PORTE,3
goto $+D'10'
btfss PORTE,3
goto $-D'1'
clrf adresse
movfw calibrage
movwf donner
call ecriture_eeprom
call efface_lcd
call _100ms
goto bt2
call _100ms
call scan
movwf calibrage ;
movwf res8 ;
clrf res16
movfw calibrage
xorwf calibrage_old,W
btfsc STATUS,Z
goto verifier
movfw calibrage
movwf calibrage_old
goto reglage
;***********************************************************************************************
bt2
btfsc PORTB,7
goto bt1
btfss PORTB,7
goto $-D'1'
call efface_lcd
call _100ms
call ligne1_lcd
movlw D'16' ; longueur de la donnée qui est "Analyse en cours"
movwf phrase ;
movlw D'90' ; emplacement du départ de la donnée
movwf lecture
call affiche ; fonction d'écriture sur LCD
call canal_AN12 ; sélectionner le canal RB0/AN12
clrf TMR1L
clrf TMR1H
bsf PORTC,3 ; charge du condensateur
bsf T1CON,TMR1ON ; mise en fonction du timer1
halte
btfss PORTB,6
goto fin
call scan
movwf tension
sublw D'250'
btfsc STATUS,C
goto halte ; bouclé tant que la tension n'est pas plus grande que la tension demandé
fin
bcf T1CON,TMR1ON ; arrêter le timer1
movfw TMR1H
movwf res16
movfw TMR1L
subwf calibrage,W
movwf res8
bcf PORTC,3 ; court-jus sur le condensateur
call ligne1_lcd
movlw D'16' ; longueur de la donnée qui est "Analyse terminée"
movwf phrase
movlw D'106' ; emplacement du départ de la donnée
movwf lecture
call affiche ; fonction d'écriture sur LCD
call ligne2_lcd
movlw D'8' ; longueur de la donnée qui est "Temps : "
movwf phrase
movlw D'122' ; emplacement du départ de la donnée
movwf lecture
call traduire ; traduit le nombre enregistrer dans "res16", & "res8"
goto bt1
;***********************************************************************************************
traduire
call convertir
movfw dix_millième
xorlw D'48'
btfsc STATUS,Z
goto $+D'4'
movfw dix_millième
movwf lettre
call ecrit_lcd
movfw millième
xorlw D'48'
btfsc STATUS,Z
goto $+D'4'
movfw millième
movwf lettre
call ecrit_lcd
movfw centaine
xorlw D'48'
btfsc STATUS,Z
goto $+D'4'
movfw centaine
movwf lettre
call ecrit_lcd
movfw dizaine
xorlw D'48'
btfsc STATUS,Z
goto $+D'4'
movfw dizaine
movwf lettre
call ecrit_lcd
movf unité,W
movwf lettre
call ecrit_lcd
movlw ' '
movwf lettre
call ecrit_lcd
movlw D'2' ; va chercher le "µ" créer dans la GGRAM
movwf lettre
call ecrit_lcd
movlw 's'
movwf lettre
call ecrit_lcd
movlw ' '
movwf lettre
call ecrit_lcd
return
;************************************ "choix de la valeur" *************************************
choix_cap
call ligne1_lcd ; positionner sur la première ligne du LCD
movlw D'6' ; longueur de la donnée qui est "Game: "
movwf phrase ;
movlw D'32' ; emplacement du départ de la donnée
movwf lecture ;
call affiche ; fonction d'écriture sur LCD
;-----------------------------------------------------------------------------------------------
movlw D'10' ; longueur de la donnée
movwf phrase ;
movfw choix
xorlw D'6'
btfsc STATUS,Z
clrf choix
farad
movfw choix
xorlw D'0'
btfss STATUS,Z
goto millifarad
movlw D'38' ; emplacement du départ de la donnée "Farad "
movwf lecture ;
millifarad
movfw choix
xorlw D'1'
btfss STATUS,Z
goto microfarad
movlw D'48' ; emplacement du départ de la donnée "MilliFarad"
movwf lecture ;
microfarad
movfw choix
xorlw D'2'
btfss STATUS,Z
goto nanofarad
movlw D'59' ; emplacement du départ de la donnée "MicroFarad"
movwf lecture ;
nanofarad
movfw choix
xorlw D'3'
btfss STATUS,Z
goto picofarad
movlw D'70' ; emplacement du départ de la donnée "NanoFarad "
movwf lecture ;
picofarad
movfw choix
xorlw D'4'
btfss STATUS,Z
goto affiche_choix
movlw D'80' ; emplacement du départ de la donnée "PicoFarad "
movwf lecture ;
affiche_choix
call affiche ; fonction d'écriture sur LCD
return
;***********************************************************************************************
canal_AN10
bsf ADCON0,5 ; b5 = CHS3 sélection du canal RB1/AN10
bcf ADCON0,4 ; b4 = CHS2 sélection du canal RB1/AN10
bsf ADCON0,3 ; b3 = CHS1 sélection du canal RB1/AN10
bcf ADCON0,2 ; b2 = CHS0 sélection du canal RB1/AN10
return
;***********************************************************************************************
canal_AN12
bsf ADCON0,5 ; b5 = CHS3 sélection du canal RB0/AN12
bsf ADCON0,4 ; b4 = CHS2 sélection du canal RB0/AN12
bcf ADCON0,3 ; b3 = CHS1 sélection du canal RB0/AN12
bcf ADCON0,2 ; b2 = CHS0 sélection du canal RB0/AN12
return
;***********************************************************************************************
scan
bsf ADCON0,ADON ; on lance l’acquisition (charge du condensateur)
nop
nop ; pause, temps de charge du condensateur
nop
nop
bsf ADCON0,GO ; lancer la conversion A/D
btfsc ADCON0,GO ; si le bit GO est à 1 on va à la ligne 1
goto $-D'1' ; convertion n'est pas terminer
bcf ADCON0,ADON ; fin de conversion, éteindre convertisseur
movfw ADRESH ; transférer le résultat dans W
return
;***********************************************************************************************
convertir
; "16 bits"
clrf unité
clrf dizaine
clrf centaine
clrf millième
clrf dix_millième
btfss res16,7
goto $+D'11'
movlw D'3' ; 32768
addwf dix_millième,F
movlw D'2' ; 2768
addwf millième,F
movlw D'7' ; 768
addwf centaine,F
movlw D'6' ; 68
addwf dizaine,F
movlw D'8' ; 8
addwf unité,F
btfss res16,6
goto $+D'11'
movlw D'1' ; 16384
addwf dix_millième,F
movlw D'6' ; 6384
addwf millième,F
movlw D'3' ; 384
addwf centaine,F
movlw D'8' ; 84
addwf dizaine,F
movlw D'4' ; 4
addwf unité,F
btfss res16,5
goto $+D'9'
movlw D'8' ; 8192
addwf millième,F
movlw D'1' ; 192
addwf centaine,F
movlw D'9' ; 92
addwf dizaine,F
movlw D'2' ; 2
addwf unité,F
btfss res16,4
goto $+D'9'
movlw D'4' ; 4096
addwf millième,F
movlw D'0' ; 096
addwf centaine,F
movlw D'9' ; 96
addwf dizaine,F
movlw D'6' ; 6
addwf unité,F
btfss res16,3
goto $+D'9'
movlw D'2' ; 2048
addwf millième,F
movlw D'0' ; 048
addwf centaine,F
movlw D'4' ; 48
addwf dizaine,F
movlw D'8' ; 8
addwf unité,F
btfss res16,2
goto $+D'9'
movlw D'1' ; 1024
addwf millième,F
movlw D'0' ; 024
addwf centaine,F
movlw D'2' ; 24
addwf dizaine,F
movlw D'4' ; 4
addwf unité,F
btfss res16,1
goto $+D'7'
movlw D'5' ; 512
addwf centaine,F
movlw D'1' ; 12
addwf dizaine,F
movlw D'2' ; 2
addwf unité,F
btfss res16,0
goto $+D'7'
movlw D'2' ; 256
addwf centaine,F
movlw D'5' ; 56
addwf dizaine,F
movlw D'6' ; 6
addwf unité,F
;**********************************************************************************************
; "8 bits"
btfss res8,7
goto $+D'7'
movlw D'1' ; 128
addwf centaine,F
movlw D'2' ; 28
addwf dizaine,F
movlw D'8' ; 8
addwf unité,F
btfss res8,6
goto $+D'5'
movlw D'6' ; 64
addwf dizaine,F
movlw D'4' ; 4
addwf unité,F
btfss res8,5
goto $+D'5'
movlw D'3' ; 32
addwf dizaine,F
movlw D'2' ; 2
addwf unité,F
btfss res8,4
goto $+D'5'
movlw D'1' ; 16
addwf dizaine,F
movlw D'6' ; 6
addwf unité,F
movlw B'00001111' ; 8, 4, 2, 1
andwf res8,W
addwf unité,F
;**********************************************************************************************
total_unite
movfw unité
movwf tmps
movfw dizaine
call decompose
movwf dizaine
movfw tmps
movwf unité
total_dizaine
movfw dizaine
movwf tmps
movfw centaine
call decompose
movwf centaine
movfw tmps
movwf dizaine
total_centaine
movfw centaine
movwf tmps
movfw millième
call decompose
movwf millième
movfw tmps
movwf centaine
total_millieme
movfw millième
movwf tmps
movfw dix_millième
call decompose
movwf dix_millième
movfw tmps
movwf millième
movlw D'48'
addwf unité,F
addwf dizaine,F
addwf centaine,F
addwf millième,F
addwf dix_millième,F
return
;********************* séparer les nombres des chiffres, et additionnes ************************
decompose
movwf temps
movfw tmps
sublw D'10' ; retir 10 de W
btfsc STATUS,Z ; si le bit Z est à 1 on va à la ligne 1
goto $+D'4' ; si Z = 1 , résultat égal
btfss STATUS,C ; si le bit C est à 0 on va à la ligne 1
goto $+D'2'
goto $+D'5'
movlw D'10'
subwf tmps,F
incf temps,F
goto $-D'10'
movfw temps
return
;****************************** affiche le texte sélectionner *********************************
affiche
movlw D'4' ; page 4, tableaux de 256 octets.
movwf PCLATH ;
;
movfw lecture ; "lecture" est l'emplacement de la lettre
incf lecture,F ; déplacement de la lecture
call selection ; on va chercher la lettre
movwf lettre ; "lettre" contient la donnée
call ecrit_lcd ; écriture du caractère sur lcd
decfsz phrase,F ; "phrase" est la longueur du texte
goto $-D'6' ;
return
;************** "efface l'écran, et raméne le curseur à la premier ligne du lcd" **************
efface_lcd
movlw B'00000000'
call envoi ; efface l'écran, et raméne le curseur au début
call e_pulse
movlw B'00000001'
call envoi
call e_pulse
call _1640µs
return
;********************** "H'80'se placer en début de la ligne 1 du lcd" ************************
ligne1_lcd
movlw B'00001000'
call envoi ; ligne 1 du lcd
call e_pulse
movlw B'00000000'
call envoi
call e_pulse
call _40µs
return
;********************** "H'C0'se placer en début de la ligne 2 du lcd" ************************
ligne2_lcd
movlw B'00001100'
call envoi ; ligne 2 du lcd
call e_pulse
movlw B'00000000'
call envoi
call e_pulse
call _40µs
return
;************************ "écrit ou créer, un caractére sur le lcd" ***************************
ecrit_lcd
swapf lettre,W
call envoi
bsf lcd_rs
call e_pulse
bcf lcd_rs
movf lettre,W
call envoi
bsf lcd_rs
call e_pulse
bcf lcd_rs
call _40µs
return
;************** pour écrire dans les bits 0,1,2,3, sans toucher aux bits 4,5,6,7 **************
envoi
andlw B'00001111'
movwf loop5
btfsc lcd_port,7
bsf loop5,7
btfsc lcd_port,6
bsf loop5,6
btfsc lcd_port,5
bsf loop5,5
btfsc lcd_port,4
bsf loop5,4
movf loop5,W
movwf lcd_port
return
;************************** "envoie une fin d'émision sur le lcd" *****************************
e_pulse
nop
nop
bsf lcd_e
nop
nop
bcf lcd_e
return
;****************************** "pour écrit dans l'eeprom" *************************************
ecriture_eeprom
BANKSEL EEADR ; on passe en bank 2
movfw adresse ; adresse d'écriture dans l'eeprom
movwf EEADR ;
movfw donner ; donner à écrire
movwf EEDAT ;
BANKSEL EECON1 ; on passe en bank 3
clrf EECON1 ; remise a zero des eventuelles erreurs
bcf EECON1,EEPGD ; préparation à l'autorisation
bsf EECON1,WREN ; autoriser accès en écriture
bcf INTCON,GIE ; on coupe les interruptions
btfsc INTCON,GIE ; contrôl si les interruptions sont bien coupés
goto $-D'2' ; remonte à la ligne 2 jusqu'a coupures des interruptions
movlw 0x55 ; séquence spécifique (c'est comme ça, il faut le savoir)
movwf EECON2 ; séquence spécifique
movlw 0xAA ; séquence spécifique
movwf EECON2 ; séquence spécifique
bsf EECON1,WR ; lance une opération d'écriture
btfsc EECON1,WR ; on attend que l'operation d'ecriture soit finie (de l'ordre de la ms
goto $-D'1' ; remonte à la ligne 2 jusqu'a fin d'écriture
bcf EECON1,WREN ; interdiction de l'écriture
BANKSEL PORTA ; on passe en bank 0
return
;******************************** "pour lire dans l'eeprom" ************************************
lecture_eeprom
BANKSEL EEADR ; on passe en bank 2
movfw adresse
movwf EEADR ; W contient l'adresse de la lecture
BANKSEL EECON1 ; on passe en bank 3
bcf EECON1,EEPGD ; préparation à la lecture
bsf EECON1,RD ; lecture de l'EEPROM
BANKSEL EEDAT ; on passe en bank 2
movf EEDAT,W ; la valeur lue dans l'éeprom est placée dans W
movwf donner ; récupération du résultat
BANKSEL PORTA ; on passe en bank 0
return
;************************* "pause de 1 seconde pour horloge de 8 Mhz" **************************
_1s
movlw D'93'
movwf loop1
movlw D'38'
movwf loop2
movlw D'11'
movwf loop3
decfsz loop1,F
goto $-D'1'
decfsz loop2,F
goto $-D'3'
decfsz loop3,F
goto $-D'5'
return
;********************* "pause de 100 millisecondes pour horloge de 8 Mhz" **********************
_100ms
movlw D'186'
movwf loop1
movlw D'4'
movwf loop2
movlw D'2'
movwf loop3
decfsz loop1,F
goto $-D'1'
decfsz loop2,F
goto $-D'3'
decfsz loop3,F
goto $-D'5'
return
;********************* "pause de 1640 microseconde pour horloge de 8 Mhz" **********************
_1640µs
movlw D'65'
movwf loop1
movlw D'5'
movwf loop2
decfsz loop1,F
goto $-D'1'
decfsz loop2,F
goto $-D'3'
return
;********************** "pause de 40 microseconde pour horloge de 8 Mhz" ***********************
_40µs
movlw D'26'
movwf loop1
decfsz loop1,F
goto $-D'1'
return
;***********************************************************************************************
ORG H'400'
selection
addwf PCL,1
;--------------------------- on commence à 0 pour la lecture ---------------------------------
; "création du caractère "é" dans la GGRAM"
dt B'00001100',B'00000000',B'00001110',B'00010001',B'00011111',B'00010000',B'00001110',B'00000000' ; 0
; "création du caractère "à" dans la GGRAM"
dt B'00000110',B'00000000',B'00001110',B'00000001',B'00001111',B'00010001',B'00001111',B'00000000'
; "création du caractère "µ" dans la GGRAM"
dt B'00000000',B'00010001',B'00010001',B'00010001',B'00010011',B'00011101',B'00010000',B'00010000'
; "création du caractère "°" dans la GGRAM"
dt B'00001000',B'00010100',B'00001000',B'00000000',B'00000000',B'00000000',B'00000000',B'00000000'
;--------------------------- on commence à 32 pour la lecture ----------------------------------
dt "Game: Farad MilliFarad MicroFarad NanoFarad PicoFarad " ; 32
;--------------------------- on commence à 90 pour la lecture ----------------------------------
dt "Analyse en cours"
;--------------------------- on commence à 106 pour la lecture ---------------------------------
dt "Analyse termin",0,"e"
;--------------------------- on commence à 122 pour la lecture ---------------------------------
dt "Temps : Calibrage:"
ORG H'2100'
DE 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
End
Quelque photo :
ici mesure d'un condensateur de 100 nano-farads
ici mesure d'un condensateur de 10 nano-farads
A+