salut
j'essai envin de faire touner un moteur unipolaire
avec le PORTA4 ,PORTB3,PORTB6,PORTB7
j'ai configurer OPTION_REG 10000000 pour desactiver les resistances interne et les interuptions inactif
pouvez me dire ou est mon erreur et me metre laisser un code asm
Plutôt que de passer par un zip, lourd à contrôler et à valider, j'ai opté pour la balise code (#) faite pour cela.Code:;********************************************************************** ; PROGRAMME MOTOR UNIPOLAIRE piloter avec les PINS PA4,PB3,PB6,PB7 * ; INTERUPTION PIN PB0 AVEC LE PIC16F88 * ;********************************************************************** ; * ; NOM: MOTOR UNIPOLAIRE * ; Date: 00/04/2009 * ; Version: 1.0 * ; Circuit: Platine d'essais * ; Auteur: * ; * ;********************************************************************** ; * ; Fichier requis: P16F88.inc * ; * ;********************************************************************** ; * ; Notes: Ce petit programme permet de faire tourné un motor pas a pas * ; * ; * ; * ;********************************************************************** LIST p=16F88 ; Définition de processeur #include <p16F88.inc> ; Définitions de variables __CONFIG _CONFIG1, _CP_OFF & _CCP1_RB3 & _DEBUG_ON & _WRT_PROTECT_OFF & _CPD_OFF & _LVP_OFF & _BODEN_OFF & _MCLR_ON & _PWRTE_ON & _WDT_OFF & _HS_OSC ; '__CONFIG' précise les parametres encodés dans le processeur au moment de ; la programmation. Les définitions sont dans le fichier include. ; Voici les valeurs et leurs définitions : ; _CP_ON Code protection ON : impossible de relire ; _CP_OFF Code protection OFF ; _PWRTE_ON Timer reset sur power on en service ; _PWRTE_OFF Timer reset hors-service ; _WDT_ON Watch-dog en service ; _WDT_OFF Watch-dog hors service ; _LP_OSC Oscillateur quartz basse vitesse ; _XT_OSC Oscillateur quartz moyenne vitesse ; _HS_OSC Oscillateur quartz grande vitesse ; _RC_OSC Oscillateur a réseau RC ;********************************************************************* ; ASSIGNATIONS * ;********************************************************************* OPTIONVAL EQU H'80' ; Valeur registre option ;********************************************************************* ; DEFINE * ;********************************************************************* ;********************************************************************* ; DECLARATIONS DE VARIABLES * ;********************************************************************* CBLOCK 0x20 ; début de la zone variables compteur : 1 ; compteur de boucles 1 dans tempo ENDC ;********************************************************************** ; DEMARRAGE SUR RESET * ;********************************************************************** ORG 0x80 ; Adresse de départ apres reset goto INIT ; Adresse 0: initialiser ;********************************************************************** ; ROUTINE INTERRUPTION * ;********************************************************************** ;********************************************************************** ; INTERRUPTION RB0/INT * ;********************************************************************** ;********************************************************************* ; INITIALISATIONS * ;********************************************************************* INIT clrf PORTA ; Sorties portA a 0 clrf PORTB ; Sorties portA a 0 bsf STATUS,RP0 ; page 1 bank1 clrf ANSEL ; toutes les broches du CAN en I/O digitales. movlw OPTIONVAL ; charger masque movwf OPTION_REG ; initialiser registre option ; Effacer RAM ; ------------ movlw 0x20 ; initialisation pointeur movwf FSR ; pointeur d'adressage indirec clrf INDF ; effacer ram pointée par FSR ; configurer PORTS ; --------------- bcf TRISA,4 ;PA4 EN SORTI bcf TRISB,3 ;PB3 EN SORTI bcf TRISB,6 ;PB6 EN SORTI bcf TRISB,7 ;PB7 EN SORTI goto START ;********************************************************************* ; SOUS-ROUTINE DE TEMPORISATION * ;********************************************************************* tempo movlw 0xEE ; on charge la valeur dans w movwf compteur ; initialiser compteur de boucles boucle2 decfsz compteur,f ; décrémenter compteur, sauter si 0 goto boucle2 ; boucle si pas 0 bcf PORTA,3 bcf PORTA,6 bcf PORTA,7 bcf PORTB,4 return ;********************************************************************* ; PROGRAMME PRINCIPAL * ;********************************************************************* START bsf TRISA,4 ;PA4 call tempo call tempo bsf TRISB,3 ;PB3 call tempo call tempo bsf TRISB,6 ;PB6 call tempo call tempo bsf TRISB,7 ;PB7 goto START END
.
-----