Aller au contenu

labat

Membres
  • Compteur de contenus

    239
  • Inscription

  • Dernière visite

Tout ce qui a été posté par labat

  1. labat

    c koi come language ?

    Oui c'est bien un .ASM le fichier !
  2. labat

    c koi come language ?

    Et t'y a compris quelque chose
  3. Bonjour tout le monde. J'ai récupéré le programme d'un baromètre, seulement je ne sais pas en qu'elle language il est écris ( désolé je ne mis conné pas trop ). Si quelqu'un arrive a le comprendre, je voudrais savoir si il y aurait un moyen de le modifier pour qu'il sauvegarde l'altitude, lorsqu'on l'arete, sinon il faut la rerentrer chaque fois qu'on le rallume. Voila le programme : ;************************************************************** ;* GS 4/2005 * ;* B A R O / A L T I M E T R E V 2 * ;* * ;************************************************************** ;* FUSES : CPoff , WDToff , LVPoff , Clock 8 Mhz * ;************************************************************** ; This is the version 2 file with the on/off button tied ; to the MCLR pin, instead to the RA2... LIST r=dec __CONFIG B'11111100110010' INCLUDE "P16F876.INC" INCLUDE "MATH16.INC" ;DECLARATION DES VARIABLES INCLUDE "BARO.INC" ;Zone datas bargraph en bank1 #Define BAR_DATA 0A0h #Define ALT_DATA 0B2h #Define DNV_DATA 0C4h ;PINS I/O - AFFICHEUR LCD #Define ENABLE PORTB,4 ; B0-B3 datas #Define RS PORTB,5 #Define LCDPOW PORTB,7 ; commande alim LCD ;PINS I/O - CAPTEUR BARO MS3354 #Define MCLK PORTC,2 #Define SCLK PORTC,4 #Define DOUT PORTC,5 #Define DIN PORTC,3 #Define TX PORTA,0 #Define RX PORTA,1 #Define BUZZER PORTC,6 ; beep juste sur clavier #Define K_SELECT PORTA,3 #Define K_VALID PORTA,4 ;CONSTANTES GLOBALES DU SYSTEME #Define F_SECH 128 ; pour avoir une (incr a 255) #Define MIN_BARO 10 ;30 ; 30 mins entre acqu baro #Define MCLKMASK 16 ; pour xor out #Define S9600 64 ; temp bit emission !!! #Define R9600_2 24 ; ' ' recep. !!! ;Positions du bargraph ecran (ddram) #Define BARG_UP 0 +12 #Define BARG_LOW 64+12 ;FLAGS #Define CARRY16 FLAGS,0 #Define FKEY FLAGS,1 #Define FLAG_0 FLAGS,2 ; ote premiers '0' si =0 #Define F_AQU FLAGS,4 #Define READY FLAGS,5 ; =1 moyenne mesure complete #Define C5MSB FLAGS,7 ;Le registre CCPR1L est inchange en cas de reveil de sleep ; ou de mclr reset, il sert de flag si allume ou pas ;Pr‚fixes des commandes du MS5534 #Define B_AQUD1 10100000B #Define B_AQUD2 10010000B #Define B_RDW1 01010100B #Define B_RDW3 01100100B #Define B_RDW2 01011000B #Define B_RDW4 01101000B ;+++++++++++++++ RESET GENERAL ++++++++++++++++++++++ org 0x0000 goto start ; org 8 ; goto start org 4 ;10 ;++++++++ INTERRUPTION DU TIMER 1 ++++++++++++++++++++ INT_ISR movwf W_SAVE ; sauve W swapf STATUS,0 ; sauve STATUS clrf STATUS movwf SR_SAVE tmr1_it bcf PIR1,TMR1IF ; raz tmr it flag movlw F_SECH ; movwf TMR1H ; raz compteurs ;une seconde est passee... no_aqubg incf SECONDE,1 ; incr les secondes movf SECONDE,0 sublw 59 btfsc STATUS,C goto f_it ;une minute est passee... clrf SECONDE incf MINUTE,1 ; incr les minutes movf MINUTE,0 sublw 59 btfsc STATUS,C goto f_it ;une heure est passee... bsf F_AQU ; Lance data aqu pour bargraph clrf MINUTE incf HEURE,1 ; incr les heures movf HEURE,0 sublw 23 btfss STATUS,C clrf HEURE ; un jour passe ! f_it swapf SR_SAVE,0 ; remet STATUS movwf STATUS swapf W_SAVE,1 swapf W_SAVE,0 ; Remet W retfie ;------------ PROGRAMME PRINCIPAL ---------------------- start bsf STATUS,RP0 movlw 11111110B ; movwf TRISA ; movlw 00000000b ; conf les I/O movwf TRISB ; movlw 10100011b ; movwf TRISC movlw 01000000B ; 0 movwf OPTION_REG movlw 6 movwf ADCON1 bcf STATUS,RP0 ;Raz les its clrf INTCON clrf PIR1 clrf PIR2 bsf BUZZER ; pas de buzz clrf FLAGS ; raz les flags ;Init Timer1 movlw 00001110B ; conf TIMER1 int clock movwf T1CON ; avec prescaler 1:8 clrf PIR1 clrf PIR2 ;Raz les 3 tampons datas bargraphs movlw BAR_DATA movwf FSR movlw 3*18 movwf TPO1 razmem movlw 10 movwf INDF ; clrf incf FSR,1 decfsz TPO1,1 goto razmem ;Init en timer0 & 1 its bsf STATUS,RP0 movlw 00000001B ; Timer 1 it movwf PIE1 bcf STATUS,RP0 ;Lance le PWM a 33 khz pour MCLK OSC_ON bsf STATUS,RP0 movlw 14 movwf PR2 ; clock fosc / 4 = 4 mhz bcf STATUS,RP0 movlw 2 movwf CCPR1L ; duty cycle 50/50 movlw 00000101B movwf T2CON movlw 00101100B ; PWM mode movwf CCP1CON ;Init complete de l'heure et du pointeur barometre movlw F_SECH ; movwf TMR1H ; & raz les ctrs movlw 12 movwf HEURE clrf MINUTE clrf SECONDE bsf T1CON,TMR1ON ; lance comptage heure movlw MIN_BARO ; Raz ctr du barometre movwf BARO_CTR movlw BAR_DATA ; raz les ptr bargraph baro movwf BAR_PTR ; (next val to write) movlw ALT_DATA ; & bargraph alti movwf ALT_PTR ; movlw DNV_DATA ; & deniv movwf DNV_PTR ; clrf D_ALTH ; raz delta clrf D_ALTL ; altimetre clrf D_DENIVH ; raz delta clrf D_DENIVL ; denivelee movlw 027h movwf PRESSREF_H ; init 1013.2*10 movlw 094h ; comme press ref movwf PRESSREF_L call ON_OFF ; alterne ON<-->Off call INITLCD ; Init le LCD movlw 040h ; Ecran d'acceuil call SETPTRLCD ; movlw M_COPYR call MSGBOX movlw 4 call SETPTRLCD movlw M_VSOFT call MSGBOX call TEMPOLL ;Lance It du timer 1 bsf INTCON,PEIE ; TMR1 it enable bsf INTCON,GIE ; global it ;---------- Debut Mode Barometre --------------------- BAROMET call FX movlw 2 call SETPTRLCD movlw M_MBARO call MSGBOX call TEMPOLL call CLS ;Debut de la boucle principale debut btfss READY ; si READY=0 bsf F_AQU ; force aquisition call KEY2TEST ; test si Set Heure btfsc FKEY goto SET_TIME ;Mesure la pression call MOYENNE ; mesures + moyenne call KEYVAL ; test si -> Altimetre btfsc STATUS,C goto ALTIM ;Gestion du Bargraph btfss F_AQU ; test flag si new val goto nosavbar bcf F_AQU ; il y a une new movf PR_SUMH,0 ; data a stocker movwf TPO1 movf PR_SUML,0 movwf TPO2 movf BAR_PTR,0 ; ptr zone datas movwf GR_PTR movlw BAR_DATA ; debut zone datas movwf GR_MIN call BARSTORE ; store la valeur movf GR_PTR,0 ; prend new ptr movwf BAR_PTR nosavbar movlw BAR_DATA ; debut zone datas movwf GR_MIN movf BAR_PTR,0 ; ptr zone datas movwf GR_PTR call BARGRAPH ; dessin bargraph juste ! ;Aff la pression call IDNMEA ; '$WI' call SEND movlw 'p' call SEND movf PRESS_H,0 movwf PR_SUMH call SEND movf PRESS_L,0 movwf PR_SUML call SEND movlw 1 call SETPTRLCD call AFFPRESS ; aff la pression ;Affiche Heure / Temperature call AFFTIMDEG goto debut ;------------- Mode Altimetre ------------------------------ ALTIM call FX movlw 2 call SETPTRLCD movlw M_MALTI call MSGBOX call TEMPOLL call CLS debut2 call KEYVAL ; test si -> baro btfsc STATUS,C goto DENIV ;Mesure la pression call MOYENNE ; mesures + moyenne movf PRESS_H,0 movwf TPO1 movf PRESS_L,0 movwf TPO2 ;Calcul de l'altitude (dure 5 mS) bcf INTCON,GIE movlw 08h movwf PCLATH call ALTIT ; result = PR_SUMH.L = AARGB2.3 clrf PCLATH bsf INTCON,GIE movf AARGB2,0 movwf PR_SUMH movf AARGB3,0 movwf PR_SUML movf D_ALTL,0 ; ajoute la addwf PR_SUML,1 ; compensation btfsc STATUS,C ; en altit incf PR_SUMH,1 movf D_ALTH,0 addwf PR_SUMH,1 ;Gestion du Bargraph btfss F_AQU ; test flag si new val goto nosavalt bcf F_AQU movf PR_SUML,0 ; data a stocker movwf TPO2 movf PR_SUMH,0 movwf TPO1 movf ALT_PTR,0 ; ptr zone datas movwf GR_PTR movlw ALT_DATA ; debut zone datas movwf GR_MIN call BARSTORE ; store new val movf GR_PTR,0 ; prend new ptr movwf ALT_PTR nosavalt movlw ALT_DATA ; debut zone datas movwf GR_MIN movf ALT_PTR,0 ; ptr zone datas movwf GR_PTR call BARGRAPH ; dessin juste ;Envoie sur port com call IDNMEA ; '$WI' movlw 'a' ; altitude port com call SEND affalt movf PR_SUMH,0 call SEND movf PR_SUML,0 call SEND ;Aff l'altitude movlw 0 call SETPTRLCD movlw 'A' call SENDCHRLCD movlw 'l' call SENDCHRLCD movlw 't' call SENDCHRLCD movlw '=' call SENDCHRLCD movf PR_SUMH,0 ; test si alt negative andlw 128 btfsc STATUS,Z goto altposit movlw '-' call SENDCHRLCD comf PR_SUMH,1 ; complement comf PR_SUML,1 ; a incf PR_SUML,1 ; deux btfsc STATUS,Z incf PR_SUMH,1 altposit call AFFALTIT ; affiche altit dans PR_SUMH.L call KEY2TEST ; test si Set Altit btfsc FKEY goto SET_ALT ;Affiche la Heure / Temp. call AFFTIMDEG goto debut2 ;------------- Mode Denivelee-metre ------------------------------ DENIV call FX movlw 2 call SETPTRLCD movlw M_DENIV call MSGBOX call TEMPOLL call CLS debut3 call KEYVAL ; test si -> baro btfsc STATUS,C goto TEMPDEG ;Mesure la pression call MOYENNE ; mesures + moyenne movf PRESS_H,0 movwf TPO1 movf PRESS_L,0 movwf TPO2 ;Calcul de l'altitude (dure 5 mS) bcf INTCON,GIE movlw 08h movwf PCLATH call ALTIT ; result = PR_SUMH.L = AARGB2.3 clrf PCLATH bsf INTCON,GIE movf AARGB2,0 movwf PR_SUMH movf AARGB3,0 movwf PR_SUML movf D_DENIVL,0 ; ajoute la addwf PR_SUML,1 ; compensation btfsc STATUS,C ; en altit incf PR_SUMH,1 movf D_DENIVH,0 addwf PR_SUMH,1 ;Gestion du Bargraph btfss F_AQU ; test flag si new val goto nosavalt2 bcf F_AQU movf PR_SUML,0 ; data a stocker movwf TPO2 movf PR_SUMH,0 movwf TPO1 movf DNV_PTR,0 ; ptr zone datas movwf GR_PTR movlw DNV_DATA ; debut zone datas movwf GR_MIN call BARSTORE ; store new val movf GR_PTR,0 ; prend new ptr movwf DNV_PTR nosavalt2 movlw DNV_DATA ; debut zone datas movwf GR_MIN movf DNV_PTR,0 ; ptr zone datas movwf GR_PTR call BARGRAPH ; dessin juste ;Envoie sur port com call IDNMEA ; '$WI' movlw 'd' ; altitude port com call SEND movf PR_SUMH,0 call SEND movf PR_SUML,0 call SEND ;Aff la denivelee movlw 0 call SETPTRLCD movlw 'd' call SENDCHRLCD movlw '=' call SENDCHRLCD movf PR_SUMH,0 ; test si alt negative andlw 128 btfsc STATUS,Z goto denposit movlw '-' call SENDCHRLCD comf PR_SUMH,1 ; complement comf PR_SUML,1 ; a incf PR_SUML,1 ; deux btfsc STATUS,Z incf PR_SUMH,1 goto afdenv denposit movlw '+' call SENDCHRLCD afdenv call AFFALTIT ; affiche altit dans PR_SUMH.L call KEY2TEST ; test si Set Altit btfsc FKEY goto SET_DENIV ;Affiche la Heure / Temp. call AFFTIMDEG goto debut3 ;------------------------------------------------------------ TEMPDEG call FX movlw 2 call SETPTRLCD movlw M_TEMPDEG call MSGBOX call TEMPOLL call CLS debut4 call KEYVAL ; test si -> baro btfsc STATUS,C goto BAROMET call AFFTEMPDEG call AFFTDEG goto debut4 ;Envoie retour chariot et Prefixe NMEA IDNMEA movlw 13 call SEND movlw 10 call SEND movlw '$' call SEND movlw 'W' call SEND movlw 'I' call SEND return ;----------------------------------------------------------- ;Gere la mise en ou hors tension du systeme ; sort : - en sleep mode eteint avec FLAGON = 0 ; - tout re-allume avec FLAGON = 1 ;Gere la mise en ou hors tension du systeme ; sort : - en sleep mode eteint avec FLAGON = 0 ; - tout re-allume avec FLAGON = 1 ON_OFF movlw 1 xorwf CCPR2L,1 btfss CCPR2L,0 goto met_on call CLS movlw 6 call SETPTRLCD movlw M_OFF call MSGBOX call TEMPOL met_off bsf LCDPOW bsf STATUS,RP0 ;BANK1 movlw 11111111b ; conf les I/O movwf TRISB ; movlw 11111111b ; movwf TRISC bcf STATUS,RP0 ;BANK0 sleep ; met en mode veille goto start met_on bsf STATUS,RP0 movlw 00000000b ; conf les I/O movwf TRISB ; movlw 10100011b ; movwf TRISC bcf STATUS,RP0 bcf LCDPOW ; Allume le LCD return ;---------------------------------------------------------- ;Aff la pression en abcde.f en hpa AFFPRESS btfsc READY goto aff_bok movlw '-' call SENDCHRLCD movlw '-' call SENDCHRLCD movlw '-' call SENDCHRLCD movlw '-' call SENDCHRLCD movlw '-' call SENDCHRLCD movlw '-' call SENDCHRLCD goto aff_n aff_bok call DECTODIG movf TPO1,0 call SENDCHRLCD movf TPO2,0 call SENDCHRLCD movf TPO3,0 call SENDCHRLCD movf TPO4,0 call SENDCHRLCD movlw ',' call SENDCHRLCD movf TPO5,0 call SENDCHRLCD aff_n movlw ' ' call SENDCHRLCD movlw 'h' call SENDCHRLCD movlw 'P' call SENDCHRLCD movlw 'a' call SENDCHRLCD return ;---------------------------------------------------------- ;Affiche Temperature/HEURE AFFTEMPDEG movlw 000h call SETPTRLCD ;btfss STATUS,Z call SENDCHRLCD movlw 'I' call SENDCHRLCD movlw 'l' call SENDCHRLCD movlw ' ' call SENDCHRLCD movlw 'f' call SENDCHRLCD movlw 'a' call SENDCHRLCD movlw 'i' call SENDCHRLCD movlw 't' call SENDCHRLCD movlw ' ' call SENDCHRLCD movlw ':' goto aff_deg return AFFTDEG movlw 040h call SETPTRLCD call SENDCHRLCD movlw 'I' call SENDCHRLCD movlw 'l' call SENDCHRLCD movlw ' ' call SENDCHRLCD movlw 'e' call SENDCHRLCD movlw 's' call SENDCHRLCD movlw 't' call SENDCHRLCD movlw ' ' call SENDCHRLCD movlw ':' call AFFHEURE ; aff heures movlw ':' ; & minutes call SENDCHRLCD call AFFMINUTE movlw ':' ; & secondes call SENDCHRLCD call AFFSECONDE return ;Affiche la Degres / Temperature AFFTIMDEG movlw 041h call SETPTRLCD movf SECONDE,0 ; 2sec/4 aff degres/heure andlw 10 btfss STATUS,Z goto aff_deg call AFFHEURE ; aff heures movlw ':' ; & minutes call SENDCHRLCD call AFFMINUTE movlw ':' ; & secondes call SENDCHRLCD call AFFSECONDE return aff_deg call IDNMEA ; '$WI' movlw 't' ; temperature port com call SEND movf TEMP_H,0 ; aff la temperature movwf PR_SUMH call SEND movf TEMP_L,0 movwf PR_SUML call SEND btfsc TEMP_H,7 goto temp_neg ;temperature positive (cas normal) call DECTODIG movlw ' ' call SENDCHRLCD afftemp movf TPO3,0 call SENDCHRLCD movf TPO4,0 call SENDCHRLCD movlw ',' call SENDCHRLCD movf TPO5,0 call SENDCHRLCD movlw 0DFh ; 'ø' call SENDCHRLCD movlw 'C' call SENDCHRLCD movlw ' ' call SENDCHRLCD return ;Temperature negative (cas rare) temp_neg comf TEMP_H,0 ; aff la temperature movwf PR_SUMH comf TEMP_L,0 movwf PR_SUML call DECTODIG movlw '-' call SENDCHRLCD goto afftemp ;------------------------------------------------------------ ;Fait le menu reglage heure . SET_TIME call CLS movlw M_REGLERH ; "Regler Time ?" call MSGBOX call ANTIREB call YESNO btfss FKEY goto BAROMET call CLS movlw M_REGLERH call MSGBOX movlw 10 call SETPTRLCD movlw M_HEURES call MSGBOX ;debut reglage Heures (HEURE) inch call KEYSEL btfss STATUS,C goto noinch incf HEURE,1 ; incr heure movf HEURE,0 ; bloque a 24h xorlw 24 btfsc STATUS,Z clrf HEURE noinch movlw 042h call SETPTRLCD call AFFHEURE ; aff Heures movlw ':' call SENDCHRLCD call AFFMINUTE call TEMPOC call KEYVAL btfss STATUS,C goto inch call ANTIREB movlw 10 call SETPTRLCD movlw M_MINS call MSGBOX ;Regle les minutes incm call KEYSEL btfss STATUS,C goto noincm incf MINUTE,1 ; inc minutes movf MINUTE,0 ; bloque a 60 xorlw 60 btfsc STATUS,Z clrf MINUTE noincm movlw 042h call SETPTRLCD call AFFHEURE ; aff min movlw ':' call SENDCHRLCD call AFFMINUTE call TEMPOC call KEYVAL btfss STATUS,C goto incm call ANTIREB clrf SECONDE ; movlw F_SECH ; raz secondes movwf TMR1H ; goto BAROMET ;------------------------------------------------------------ ;Menu raz de la denivelee SET_DENIV call CLS movlw M_RAZDENIV ; "Raz deniv ?" call MSGBOX call ANTIREB call YESNO btfss FKEY goto DENIV comf AARGB3,1 ; dAlt = - altit incf AARGB3,1 ; btfsc STATUS,Z ; decf AARGB2,1 comf AARGB2,0 movwf D_DENIVH movf AARGB3,0 movwf D_DENIVL goto DENIV ;------------------------------------------------------------ ;Menu de reglage de l'altitude de reference SET_ALT call CLS movlw M_SETALTIT ; "Regler Alt Ref?" call MSGBOX call ANTIREB call YESNO btfsc FKEY goto alt_abs call CLS movlw M_SETPRESS ; "Regler Press ref ?" call MSGBOX call ANTIREB call YESNO btfss FKEY goto ALTIM ;**** Regle l'altimetre par pression QNH **** alt_prabs call CLS movlw M_SETPRESS call MSGBOX razp1 movlw 026h movwf C1H ; demarre a 990mB movlw 0ACh movwf C1L incp1 call KEYSEL btfss STATUS,C goto noincp1 incf C1L,1 ; ajoute 0.1mB btfsc STATUS,Z incf C1H,1 movf C1H,0 ; bloque a 1030mB xorlw 028h btfsc STATUS,Z goto razp1 noincp1 movlw 040h call SETPTRLCD movf C1H,0 movwf PR_SUMH movf C1L,0 movwf PR_SUML call AFFPRESS ; decompose PR_SUMH.L call TEMPOCC call KEYVAL btfss STATUS,C goto incp1 call ANTIREB movf C1H,0 movwf PRESSREF_H movf C1L,0 ; sauve pressref movwf PRESSREF_L ; et raz clrf D_ALTH ; le delta alt clrf D_ALTL goto ALTIM ;**** Regle l'altitude par altitude connue **** alt_abs call CLS movlw M_SETALTIT call MSGBOX bsf FLAG_0 ; aff les 0 ;debut reglage altitude reference (C1H.L) raz0m movlw 13 call SETPTRLCD ; affich pas de 100m movlw M_100M call MSGBOX clrf C1H clrf C1L ;Regle par pas de 100m inc100 call KEYSEL btfss STATUS,C goto noinc100 movlw 100 ; ajoute 100m addwf C1L,1 btfsc STATUS,C incf C1H,1 movf C1H,0 ; bloque a 9000m xorlw 024h btfsc STATUS,Z goto raz0m noinc100 movlw 040h call SETPTRLCD movf C1H,0 movwf PR_SUMH movf C1L,0 movwf PR_SUML call AFFALTIT ; decompose PR_SUMH.L call TEMPOC call KEYVAL btfss STATUS,C goto inc100 call ANTIREB movlw 13 call SETPTRLCD ; affich pas de 10 m movlw M_10M call MSGBOX ;Regle par pas de 10 m inc10 call KEYSEL btfss STATUS,C goto noinc10 movlw 10 ; ajoute 10m addwf C1L,1 btfsc STATUS,C incf C1H,1 movf C1H,0 ; bloque a 9000m xorlw 024h btfsc STATUS,Z clrf C1H noinc10 movlw 040h call SETPTRLCD movf C1H,0 movwf PR_SUMH movf C1L,0 movwf PR_SUML call AFFALTIT ; decompose PR_SUMH.L call TEMPOC call KEYVAL btfss STATUS,C goto inc10 call ANTIREB movlw 13 call SETPTRLCD ; affich pas de 1 m movlw M_1M call MSGBOX ;Regle par pas de 1 m inc1 call KEYSEL btfss STATUS,C goto noinc1 movlw 1 ; ajoute 10m addwf C1L,1 btfsc STATUS,C incf C1H,1 movf C1H,0 ; bloque a 9000 m xorlw 024h btfsc STATUS,Z clrf C1H noinc1 movlw 040h call SETPTRLCD movf C1H,0 movwf PR_SUMH movf C1L,0 movwf PR_SUML call AFFALTIT ; decompose PR_SUMH.L call TEMPOC call KEYVAL btfss STATUS,C goto inc1 call ANTIREB comf AARGB3,1 ; last altit = - altit incf AARGB3,1 ; btfsc STATUS,Z decf AARGB2,1 comf AARGB2,1 movf AARGB3,0 ; calc le delta addwf C1L,1 ; en altitude btfsc STATUS,C ; dans D_ALT incf C1H,1 ; movf AARGB2,0 ; et raz pressref addwf C1H,0 ; a 1013.2 mB movwf D_ALTH movf C1L,0 movwf D_ALTL movlw 027h movwf PRESSREF_H ; movlw 094h ; raz a Pref = 1013mb movwf PRESSREF_L ; bcf FLAG_0 ; cache pas les '0' goto ALTIM ;------------------------------------------------------------ ;Affiche l'altitude AFFALTIT movlw ' ' call SENDCHRLCD btfsc READY goto aff_aok movlw '-' call SENDCHRLCD movlw '-' call SENDCHRLCD movlw '-' call SENDCHRLCD movlw '-' call SENDCHRLCD goto aff_m aff_aok call DECTODIG ; decompose PR_SUMH.L movf TPO1,0 xorlw ' ' btfsc STATUS,Z goto aff_2c movf TPO1,0 call SENDCHRLCD aff_2c movf TPO2,0 xorlw ' ' btfsc STATUS,Z goto aff_3c movf TPO2,0 call SENDCHRLCD aff_3c movf TPO3,0 xorlw ' ' btfsc STATUS,Z goto aff_4c movf TPO3,0 call SENDCHRLCD aff_4c movf TPO4,0 xorlw ' ' btfsc STATUS,Z goto aff_5c movf TPO4,0 call SENDCHRLCD aff_5c movf TPO5,0 call SENDCHRLCD aff_m movlw 'm' call SENDCHRLCD movlw ' ' call SENDCHRLCD return ;---------------------------------------------------------- ;Stocke la valeur TPO1,2 dans [GR_MIN...GR_MIN+15] en bank1 ;et pointee par GR_PTR qui est incr. GR_PTR. BARSTORE movf GR_PTR,0 ; prend le ptr movwf FSR bcf STATUS,C rrf TPO1,1 ; divise / 2 rrf TPO2,1 movf TPO2,0 ; sto LSB first movwf INDF incf FSR,1 movf TPO1,0 ; sto MSB second movwf INDF incf FSR,1 movf GR_MIN,0 addlw 16 xorwf FSR,0 btfss STATUS,Z goto norazptr bsf READY ; 1ø tour datas ok movf GR_MIN,0 ; raz ptr movwf FSR ; de la zone norazptr movf FSR,0 ; save new val ptr movwf GR_PTR return ;---------------------------------------------------------- ;Represente sur 8 barres de 1 (min) a 16 pas (max) ; (1 point de haut = 8m ou 0.8 mBar) ;Datas 8 * 16bits pointees par GR_MIN BARGRAPH movlw 0Bh call SETPTRLCD ; met les movlw 7 ; ordonees call SENDCHRLCD movlw 04Bh call SETPTRLCD movlw 7 call SENDCHRLCD clrf C3H ; raz somme clrf C3L ; ;Fait la moyenne des datas dans C3H.L movf GR_MIN,0 movwf FSR movlw 8 movwf C1H clrf C1L ; raz extra carry _moyl1 movf INDF,0 addwf C3L,1 btfsc STATUS,C incf C3H,1 incf FSR,1 movf INDF,0 addwf C3H,1 btfsc STATUS,C incf C1L,1 ; inc carry si > ffffh incf FSR,1 decfsz C1H,1 goto _moyl1 ;div la moyenne par 8 rrf C1L,1 ; prend extra carry rrf C3H,1 rrf C3L,1 bcf STATUS,C rrf C3H,1 rrf C3L,1 bcf STATUS,C rrf C3H,1 rrf C3L,1 ;fait moy = - moy comf C3L,1 comf C3H,1 incf C3L,1 btfsc STATUS,Z incf C3H,1 movlw BARG_LOW+7 ; init lcd bas/droite movwf C2L ; C2L = save posit Lcd call SETPTRLCD movf GR_PTR,0 movwf FSR decf FSR,1 decf FSR,1 movlw 8 movwf C1H ; C1H = n loops showbar movlw 2 ; test si roll subwf GR_MIN,0 xorwf FSR,0 btfss STATUS,Z goto noroll movf GR_MIN,0 addlw 14 movwf FSR noroll movf INDF,0 ; lit lsb first movwf C4L incf FSR,1 movf INDF,0 movwf C4H decf FSR,1 decf FSR,1 decf FSR,1 movf C3L,0 ; fait VAL - moy addwf C4L,1 btfsc STATUS,C incf C4H,1 movf C3H,0 addwf C4H,1 movf C4H,0 ; test si ecart > 256 andlw 128 btfsc STATUS,Z goto deltapos movf C4H,0 ; ecart negatif xorlw 0ffh btfss STATUS,Z goto blocmin comf C4L,0 ; c4h posit andlw 128 btfsc STATUS,Z goto nosat blocmin clrf C4L ; bloque au min goto nosat deltapos movf C4H,0 ; difference positive btfsc STATUS,Z goto nosat2 movlw 127 movwf C4L ; bloque au max goto nosat nosat2 movf C4L,0 ; test lsb delta andlw 128 btfsc STATUS,Z goto nosat movlw 127 movwf C4L ; bloque au max nosat call SHOWVAL ; trace la val C4L decfsz C1H,1 goto showbar return ;---------------------------------------------------------- ;Dessine la valeur C4L sur les deux lignes SHOWVAL movlw 127 addwf C4L,1 bcf STATUS,C rrf C4L,1 bcf STATUS,C ; divise par 16 rrf C4L,1 bcf STATUS,C rrf C4L,1 bcf STATUS,C rrf C4L,0 andlw 15 movwf C4L andlw 8 btfsc STATUS,Z goto lowline ;Dessine la valeur C4L de >7 a 15 movlw 0ffh ; carre noir en bas call sendcarr movlw 040h subwf C2L,0 ; sur ligne haute call SETPTRLCD movf C4L,0 andlw 7 ; fait le carre call sendcarr ; mince du haut goto recul lowline movf C4L,0 andlw 7 ; fait le carre call sendcarr ; mince du haut movlw 040h subwf C2L,0 call SETPTRLCD movlw 32 ; carre blanc en haut call sendcarr recul movlw 1 subwf C2L,0 ; recule movwf C2L ; call SETPTRLCD return sendcarr movwf TPO1 ; remplace le chr7 par ff xorlw 7 ; et affiche btfss STATUS,Z ; goto fsdcarr movlw 0ffh movwf TPO1 fsdcarr movf TPO1,0 call SENDCHRLCD return ;------------------------------------------------------- ;Fait 4 mesures completes Press+Temp -> PRESS_H/L MOYENNE movlw 4 ; 4 loops movwf BARO_MOY clrf PR_SUML clrf PR_SUMH clrf PR_SUMHH no_zer call PRESSTEMP ; mesure P & Temp movf ACCCL,0 addwf PR_SUML,1 ; btfsc STATUS,C ; additionne incf PR_SUMH,1 ; dans PR_SUM movf ACCCH,0 ; addwf PR_SUMH,1 btfsc STATUS,C incf PR_SUMHH,1 decfsz BARO_MOY,1 goto no_zer bcf STATUS,C rrf PR_SUMHH,1 rrf PR_SUMH,1 ; divise par 4 rrf PR_SUML,1 bcf STATUS,C rrf PR_SUMHH,1 rrf PR_SUMH,1 rrf PR_SUML,1 ;Moyenne avec last valeur movlw 3 movwf C1H somm3 movf PRESS_L,0 addwf PR_SUML,1 ; btfsc STATUS,C ; additionne incf PR_SUMH,1 ; 3 * old value movf PRESS_H,0 ; addwf PR_SUMH,1 decfsz C1H,1 goto somm3 bcf STATUS,C rrf PR_SUMH,1 rrf PR_SUML,1 bcf STATUS,C ; divise rrf PR_SUMH,1 ; rrf PR_SUML,0 ; par 4 movwf PRESS_L movf PR_SUMH,0 movwf PRESS_H return ;------------------------------------------------------------ ;Raz et fait mesures et calculs complets de temp & press ;Renvoie : TEMPH.L = Temp & ACCCH.L = Press PRESSTEMP call RESET_SEQ ;Lit et stocke les W1...W4 movlw 7 movwf TPO1 ; Lecture de W1 movlw B_RDW1 call CMDBARO call RDBARO bcf C5MSB bcf STATUS,C rrf TPO1,1 rrf TPO2,1 btfsc STATUS,C bsf C5MSB ; sauve le C5 msb movf TPO1,0 movwf C1H movf TPO2,0 movwf C1L movlw 7 ; Lecture de W2 movwf TPO1 movlw B_RDW2 call CMDBARO call RDBARO movf TPO2,0 andlw 00111111B addlw 50 movwf C6L ; Store C6+50 bcf STATUS,C btfsc C5MSB bsf STATUS,C rrf TPO1,1 rrf TPO2,1 bcf STATUS,C rrf TPO1,1 rrf TPO2,1 bcf STATUS,C rrf TPO1,1 rrf TPO2,0 andlw 11111000B movwf C5L movf TPO1,0 movwf C5H ; Store C5 * 8 movlw 4Fh ; x + 20224 addwf C5H,1 ; UT1 est dans C5H/L movlw 7 movwf TPO1 ; Lecture de W3 movlw B_RDW3 call CMDBARO call RDBARO ; data lues dans TPO1,2 movf TPO2,0 movwf C3H ; sauve 1/2 C3 bcf STATUS,C rrf TPO1,1 rrf TPO2,1 bcf STATUS,C rrf TPO1,1 rrf TPO2,1 bcf STATUS,C rrf TPO1,1 rrf TPO2,1 bcf STATUS,C rrf TPO1,1 rrf TPO2,1 bcf STATUS,C rrf TPO1,1 rrf TPO2,1 bcf STATUS,C rrf TPO1,1 rrf TPO2,1 movf TPO2,0 movwf C4L movf TPO1,0 movwf C4H ; Store C4 movlw 2 subwf C4H,1 ; C4 = C4 - 512 movlw 7 movwf TPO1 ; Lecture de W4 movlw B_RDW4 call CMDBARO call RDBARO ; data lues dans TPO1,2 movf C3H,0 movwf TPO3 clrf C2L rrf TPO3,1 ; prend les b6,b7 de C2 rrf C2L,1 rrf TPO3,1 rrf C2L,1 movf TPO2,0 andlw 00111111B iorwf C2L,1 ; merge & store C2L movf TPO3,0 andlw 00001111B ; store C2H movwf C2H bcf STATUS,C rrf TPO1,1 rrf TPO2,1 bcf STATUS,C rrf TPO1,1 rrf TPO2,1 bcf STATUS,C rrf TPO1,1 rrf TPO2,1 bcf STATUS,C rrf TPO1,1 rrf TPO2,1 bcf STATUS,C rrf TPO1,1 rrf TPO2,1 bcf STATUS,C rrf TPO1,1 rrf TPO2,1 movf TPO2,0 movwf C3L movf TPO1,0 movwf C3H ; Store C3 ;debut du calcul de Temperature call RESET_SEQ ; reset avant conv movlw 7 ; Lecture de D2 movwf TPO1 movlw B_AQUD2 call CMDBARO call TEMPO9600 ; tempo mini 0.1mS wait_dout2 btfsc DOUT goto wait_dout2 call RDBARO ; data lues dans TPO1,2 ;Test de securite si temp < -10øC bloque a -10ø !!! movlw 050h subwf TPO1,0 btfsc STATUS,C goto nosat10 movlw 050h ; bloque a -10øC movwf TPO1 nosat10 comf C5L,1 ; UT1 = - UT1 incf C5L,1 ; btfsc STATUS,Z ; = ACCBH/L decf C5H,1 comf C5H,1 bcf STATUS,C movf TPO2,0 addwf C5L,1 btfsc STATUS,C incf C5H,1 movf TPO1,0 addwf C5H,1 ; C5H.L = dT (= D2 - UT1) btfsc STATUS,C goto d2suput1 ; ;------ Cas ou Temp<20øC , complemente et recomplemente -------- ; comf C5H,1 ; complemente dT comf C5L,1 movf C5L,0 movwf ACCAL movf C5H,0 movwf ACCAH movf C6L,0 movwf ACCBL clrf ACCBH call MUL1616 ; ACCBC=ACCA*ACCB = dT*(C6+50) bcf STATUS,C rrf ACCBL,1 rrf ACCCH,1 ; fait que 2 shift rrf ACCCL,1 ; pour 2^10 bcf STATUS,C rrf ACCBL,1 rrf ACCCH,1 rrf ACCCL,1 comf ACCBL,1 comf ACCCH,1 ; recomplemente comf ACCCL,1 movlw 200 ; Temp = 200 + ... addwf ACCCH,1 btfsc STATUS,C incf ACCBL,1 movf ACCBL,0 movwf TEMP_H ; Store TEMP movf ACCCH,0 movwf TEMP_L ;fait : OFF = C2*4 + (C4-512)*dT)/2^12 movf C5L,0 movwf ACCAL movf C5H,0 movwf ACCAH movf C4L,0 movwf ACCBL movf C4H,0 movwf ACCBH call MUL1616 ; ACCBC=ACCA*ACCB = dT*(C4-512) movlw 12 ; pour 2^12 call R_SHIFT finoff0 bcf STATUS,C rlf C2L,1 rlf C2H,1 ; fait C2 * 4 bcf STATUS,C rlf C2L,1 rlf C2H,1 movf ACCCL,0 ; C2=OFF=C2+(...)/2^12 addwf C2L,1 btfsc STATUS,C finoff incf C2H,1 ;Fait : SENS = C1 + (C3*dT)/2^10 +24576 movf C5L,0 movwf ACCAL movf C5H,0 ; ici C5 inverses movwf ACCAH movf C3L,0 movwf ACCBL movf C3H,0 movwf ACCBH call MUL1616 ; ACCB.C= dT * C3 movlw 10 ; pour / 2^10 call R_SHIFT comf ACCCL,1 ; recomplemente comf ACCCH,1 goto fin20deg ; ;----- Cas ou temp > 20øC , le dT etait deja bien >0 ---------- ; d2suput1 movf C5L,0 movwf ACCAL movf C5H,0 movwf ACCAH movf C6L,0 movwf ACCBL clrf ACCBH call MUL1616 ; ACCBC=ACCA*ACCB = dT*(C6+50) bcf STATUS,C rrf ACCBL,1 rrf ACCCH,1 ; fait que 2 shift rrf ACCCL,1 ; pour 2^10 bcf STATUS,C rrf ACCBL,1 rrf ACCCH,1 rrf ACCCL,1 movlw 200 ; Temp = 200 + ... addwf ACCCH,1 btfsc STATUS,C incf ACCBL,1 movf ACCBL,0 movwf TEMP_H ; Store TEMP movf ACCCH,0 fintemp movwf TEMP_L ;Debut calcul Pression ;fait : OFF = C2*4 + (C4-512)*dT)/2^12 movf C5L,0 movwf ACCAL movf C5H,0 movwf ACCAH movf C4L,0 movwf ACCBL movf C4H,0 movwf ACCBH call MUL1616 ; ACCBC=ACCA*ACCB = dT*(C4-512) movlw 12 ; pour 2^12 call R_SHIFT bcf STATUS,C rlf C2L,1 rlf C2H,1 ; fait C2 * 4 bcf STATUS,C rlf C2L,1 rlf C2H,1 movf ACCCL,0 ; C2=OFF=C2+(...)/2^12 addwf C2L,1 btfsc STATUS,C incf C2H,1 ;Fait : SENS = C1 + (C3*dT)/2^10 +24576 movf C5L,0 movwf ACCAL movf C5H,0 movwf ACCAH movf C3L,0 movwf ACCBL movf C3H,0 movwf ACCBH call MUL1616 ; ACCB.C= dT * C3 movlw 10 ; pour / 2^10 call R_SHIFT fin20deg movf ACCCL,0 addwf C1L,1 ; C1 + (C3*dT)/2^10 btfsc STATUS,C incf C1H,1 movf ACCCH,0 addwf C1H,1 movlw 96 ; + 24576 addwf C1H,1 ; C1 = SENS (environ 50000) finsens ;Fait : X=(SENS*(D1-7168))/2^14 - OFF call RESET_SEQ ; reset avant conv movlw 7 ; Lecture de D1 movwf TPO1 movlw B_AQUD1 call CMDBARO movlw 042h movwf TPO1 ; msb movlw 068h movwf TPO2 ; lsb call TEMPO9600 ; tempo mini 0.1 mS wait_dout1 btfsc DOUT goto wait_dout1 call RDBARO movlw 28 subwf TPO1,1 ; D1 - 7168 movf C1L,0 movwf ACCAL movf C1H,0 movwf ACCAH movf TPO2,0 movwf ACCBL movf TPO1,0 movwf ACCBH call MUL1616 ;ACCB.C= (D1-7168) * SENS movlw 14 call R_SHIFT ; fait / 2^14 comf C2L,1 ; fait ACCCH.L - OFF(C2) incf C2L,1 ; commence par C2 = - C2 btfsc STATUS,Z decf C2H,1 comf C2H,1 bcf STATUS,C ; puis additionne movf ACCCL,0 addwf C2L,1 btfsc STATUS,C incf C2H,1 movf ACCCH,0 finx addwf C2H,1 ; C2H.L = (sens*...)-OFF = X movf C2H,0 ; fait X * 25 movwf ACCAH movf C2L,0 movwf ACCAL movlw 5 movwf ACCBL clrf ACCBH call MUL1616 ; ACCB.C= 5 * X movlw 4 call R_SHIFT ; = (X*5)/2^4 movlw 0C4h ; ACC += 2500 addwf ACCCL,1 btfsc STATUS,C incf ACCCH,1 movlw 9 addwf ACCCH,1 ; PRESS*10 dans ACCCH.L finpress return ;-------------------------------------------------------- ;Shifte W fois ACCB.C vers la droite pour diviser ;Use : TPO6 R_SHIFT movwf TPO6 rrfloop2 bcf STATUS,C rrf ACCBH,1 rrf ACCBL,1 rrf ACCCH,1 rrf ACCCL,1 decfsz TPO6,1 goto rrfloop2 return ;------------------------------------------------------- AFFHEURE movf HEURE,0 movwf PR_SUML clrf PR_SUMH call DECTODIG movf TPO4,0 call SENDCHRLCD movf TPO5,0 call SENDCHRLCD return AFFMINUTE movf MINUTE,0 movwf PR_SUML clrf PR_SUMH call DECTODIG movf TPO4,0 call SENDCHRLCD movf TPO5,0 call SENDCHRLCD return AFFSECONDE movf SECONDE,0 movwf PR_SUML clrf PR_SUMH call DECTODIG movf TPO4,0
  4. labat

    commentaire d'une image

    Ouai donc en fait c'est assez compliqué ! Tant pis j'ai pas trop le temp de me lancer dans le php, donc on verra sa une autre fois. Merci pour l'aide quand même.
  5. labat

    commentaire d'une image

    Personne ne sait ! J'ai deja un aexemple, mais il faut utiliser outlook pour envoyer le mail. <form method="POST" enctype="text/plain" action="mailto:adresse e-mail"> <p> Nom </p> <p><input type="text" name="T1" size="13"></p> <p><select name="D1" size="1"> <option value="Commentaire">Commentaire</option> </select></p> <p><textarea rows="7" name="S1" cols="54"></textarea></p> <p>Entrez votre adresse e-mail</p> <p><input type="text" name="T3" size="20"></p> <p> </p> <p><input type="submit" value="Envoyer" name="B1"><input type="reset" value="Effacer" name="B2"></p> </form> Je voudrais savoir si il y aurait un moyen de faire sans.
  6. Salut je voudrais savoir si quelqu'un saurait comment faire, pour mettre un code html, afin que chaque personne qui regarde l'image, puisse laisser un commentaire avec son pseudo, et que le commentaire soit envoyer sur mon adresse e-mail, sans utiliser outlook.
  7. labat

    problème port usb

    A oups c'est vrai que je les avez oublié cela ! Tellement habitué a mon autre clavier Je vais d'abord essayer de réinstaller tout l'usb, car ma livebox n'est pas reconnu non plus.
  8. labat

    problème port usb

    C'est déja en "ALL PORTS" ! C'est pour sa que je trouve cela bizarre. Je me demande si ce ne serait pas un bug de XP, car j'arrive a entrer dans le bios avec.
  9. labat

    problème port usb

    Salut j'ai un clavier USB, seulement, lorsque j'allume mon pc, celui-ci est détecté car j'arrive a accéder au bios, mais lorsque XP a fini de se lancer, plus de clavier ! Celui-ci ne fonctionne plus. Dans les propriétés systèmes, j'ai : Périphérique USB inconnu. Pour que le clavier fonctionne corectement, je suis obligé de le débrancher, d'allumer le pc et de le brancher une fois que XP a fini de se lancé. C'est la même chose pour ma livebox. Si je veus qu'elle soit reconnu, je suis obligé de la brancher aprés le lancement de XP. Si quelqu'un a une idée...
  10. Ton adaptateur est-il branché en PCI ? Essaie de brancher ta carte son sans l'adaptateur, ou en la changeant de port PCI, ainsi que ton adaptateur, s'il est en PCI bien sur.
  11. Tu utilise quoi comme logiciel de gravure ?
  12. Essaie de changer de disquette et vérifie que tu as copier les bons fichiers. Vérifie les branchements de ton lecteur aussi, car un élastique qui bloque l'accés au lecteur c'est un peu bizarre
  13. Voir ICI
  14. Merci jeanbi. C'est juste pour protéger un peu, que tout le monde n'aille pas voir ce qu'il y a sur la page. Je recherche pas de la sécurité a 100%.
  15. Salut je voudrais savoir s'il y aurait un moyen, de mettre un mot de passe, pour accéder a une page web en html ??? Je sais que cela est possible en php, mais je voudrais savoir, si l'on peut le faire en html. Si quelqu'un aurait le code, je suis preneur !
  16. labat

    cablage audio carte mere

    Bon en fait j'ai trouvé sur le site du constructeur de mon boitier Mic In : 1 ground : 2 mic bias : 3 spkout R : 5 return R : 6 spkout L : 9 return L : 10 Et maintenant, sa marche très bien ! Merci pour votre aide !!!!!
  17. labat

    cablage audio carte mere

    Bon voila une photo du brochage de la carte mère : Par contre je n'ai pas réussi a prendre les broches du boitier en photos ( désolé je suis pas tres doué ) Mais j'ai noter la couleur des fils, sachant que chaque fil est indépendant, c'est a dire qu'il faut les brancher un pa un. Mic IN : jaune Ground : noir Ground : noir spkout R : vert return R : blanc spkout L : bleu return L : marron Mic Bias : rouge Voila si quelqu'un a une idée...
  18. labat

    cablage audio carte mere

    Je prendrai des photos des connecteurs demain car la j'ai pas mon numérique ! Pour le lien, je suis deja aller voir, et j'ai la meme chose dans le manuel que j'ai eu avec la carte mere.
  19. labat

    Probléme driver Samsung ts h552

    Peut etre aussi que nero ne tolere pas alcohol, ce qui crée donc un conflit.
  20. Vérifie que les cables audio de tes enceintes ne ce trouve pas a proximité de prises électriques, ou qu'ils ne soient pas entourés autour de cables électriques.
  21. labat

    Probléme driver Samsung ts h552

    J'ai le même graveur que toi : samsung TS-H552B. J'utilise nero, et je n'ai aucun probleme avec celui-ci. Dans les propriétés systèmes, il porte le nom suivant : TSSTcorp CD/DVDW TS-H552B Je te conseil d'utiliser nero, tout comme DD11, mais pas en dessous de la version 6.3, car sinon tu risque d'avoir des problèmes pour la gravure de DVD.
  22. Salut je viens de changer mon boitier, mais je ne comprend pas comment brancher les ports audio de celui-ci, sur la carte mère, car les noms des broches ne correspondent pas. voila les broches que j'ai : CARTE MERE : 1 MIC 2 GND 3 REF 4 POWER 5 front audio R 6 rear audio R 7 Reserved 8 no pin 9 front audio L 10 rear audio L Boitier : speakout R return R speakout L return L mic IN mic Bias ground ground et une derniere dont je me rapele plus le nom. Si quelqu'un pourrait m'aider a brancher correctement toutes ces broches.
  23. labat

    espace disque qui disparait !

    Bon cela n'a pas résolu mon problème ! Je crois que je vais être bon pour faire un formatage complet du disque ! Car si j'ai bien appercu le résultat du scandisk, j'ai a peu prés 16 Go dans des secteurs défectueux, ce qui doit donc correspondre a mon espace manquant. Merci pour ton aide vinch
  24. labat

    espace disque qui disparait !

    Merci je vais essayer sa ce soir !
  25. labat

    espace disque qui disparait !

    Je voudrais bien le défragmenter, mais seulement le défragmenteur de windows me demande 15% d'espace disque disponible pour la défragmentation ! Donc je sais pas ou mettre mes données !
×
×
  • Créer...