;******************************************************************* ; NOM: pictrain0-1-1.asm (YouBiTonMatic en PIC) ; VERSION 1.1 : simples aménagements de présentation ; AUTEUR: PSi (c) 2007 pour Ptitrain.com - DATE: 22/2/2006 ; ATTENTION : version pour 12F675 LIST p=PIC12F675 ; Définition de processeur #include ; Définitions des constantes errorlevel -302 __CONFIG _CPD_OFF & _BODEN_OFF & _CP_OFF & _WDT_OFF & _PWRTE_ON & _MCLRE_OFF & _INTRC_OSC_NOCLKOUT ; oscillateur interne 4 MHz ;********************************************************************* ; DECLARATIONS DE VARIABLES SPECIFIQUES ;********************************************************************* CBLOCK 0x020 ; Début de la zone des variables CPT_256 : 1 ; compteurs pour la durée de chaque son SAV_TMR1H : 1 ; sauvegarde valeur TMR1 poids fort SAV_TMR1L : 1 ; sauvegarde valeur TMR1 poids faible ENDC ; Fin de la zone des variables #include ; Paramétrage standard ; pour une utilisation standard du PIC (ni convertisseur, ni comparateur...) ; contient également des morceaux de programme standard ;********************************************************************* ; PARAMETRES SPECIFIQUES ;********************************************************************* BANK1 clrf TRISIO ; port en sortie bsf TRISIO,5 ; sauf 5 pour déclenchement clrf WPU ; pas de résistances de rappel sauf bsf WPU,5 ; résistance de rappel sur le port 5 ; registre controle interruptions INTCON BANK0 et 1 clrf INTCON bsf INTCON,GIE ; interruptions activées en permanence bsf INTCON,PEIE ; autorise interruption ; périphériques (notamment timer 1) ; registre interruptions périphériques clrf PIE1 bsf PIE1,TMR1IE ; autorise les interruptions Timer1 BANK0 bcf GPIO,1 ; sortie à 0 ;********************************************************************* ; Boucle principale ;********************************************************************* BouclePrincipale btfsc GPIO,5 ; attente déclenchement goto BouclePrincipale call SON_Tii ; appel des sons call SON_Tii call SON_Tii call SON_Taa call SON_Taa call SON_Tii call SON_Tii goto BouclePrincipale ;********************************************************************* ; Sous programmes ;********************************************************************* ; ; son Tii, 660 Hz SON_Tii movlw d'253' ; valeur poids fort du timer movwf SAV_TMR1H ; sauvegarde movwf TMR1H ; chargement timer poids fort movlw d'27' ; valeur poids faibledu timer movwf SAV_TMR1L ; sauvegarde movwf TMR1L ; chargement timer poids faible bsf T1CON, TMR1ON ; lancement du timer movlw d'255' ; chargement compteur durée movwf CPT_256 boucle_Tii btfsc T1CON, TMR1ON ; test fin durée (=timer arreté) goto boucle_Tii ; attente fin durée return ;********************************************************************* ; ; son Taa, 370 Hz SON_Taa movlw d'250' movwf SAV_TMR1H movwf TMR1H movlw d'201' movwf SAV_TMR1L movwf TMR1L bsf T1CON, TMR1ON movlw d'255' movwf CPT_256 boucle_Taa btfsc T1CON, TMR1ON goto boucle_Taa return ;********************************************************************* ; interruption TMR1 ; appelée à chaque interruption TMR1 inttimer1 bcf T1CON, TMR1ON ; arret timer movfw SAV_TMR1H ; chargement timer poids fort movwf TMR1H movfw SAV_TMR1L ; chargement timer poids faible movwf TMR1L movlw b'000000010' ; inversion sortie xorwf GPIO,f decfsz CPT_256,f ; décrément compteur durée bsf T1CON, TMR1ON ; relancer timer return ;********************************************************************* ; interruption TMR0 ; appelée à chaque interruption TMR0 inttimer0 return END