Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

02/05/2007 #1


configurar icprog
buenas estoy intentando grabar un pic 16f876a y tengo problemas para configurar el icprog nose que casillas tengo que habilitar en las palabras de configuracion
02/05/2007 #2


El software de winpic800 no te da ese tipo de problemas y es idéntico. es muy intuitivo. Seleccionas el disòsitivo con el cual quieres programar y a funcionar. Puedes usar un monton de programadores.
Es software es gratis.

Saludos
04/05/2007 #3


controlador de motor paso a paso bipolar
estoy intentando programar un pic16f876a,el programa lo hago con lenguaje ensamblador,quiero poder variar la velocidad del motor mediante un potenciometro analogico y ademas quiero que guarde la ultima posicion de cada paso para que al cambiar el sentido de giro comience la secuencia desde dicho paso.
conexiones:RA0 potenciometro,RA2 on/off conversor analogico digital,RA4 y RA5 giro izquirda y derecha(pulsadores),RB salidas al driver L293E
a continuacion os inserto el programa
;montaje para 1 motor
LIST P=16F876A
RADIX HEX
ORG 0X00
goto INICIO
ORG 0x05
VEL1 EQU 0x20
TEMPO1 EQU 0x21
TEMPO2 EQU 0x2C
PASO1 EQU 0x22
PASO2 EQU 0x23
PASO3 EQU 0x24
PASO4 EQU 0x25
POSICION1 EQU 0x26
RESTA1 EQU 0x27
PORTA EQU 0x05
PORTB EQU 0x06
ADRESH EQU 0x01
STATUS EQU 0x03
TRISA EQU 0x85
TRISB EQU 0x86
ADCON1 EQU 0x9F
ADCON0 EQU 0x1F
T1CON EQU 0x10
TMR0_OPT EQU 0x01
TMR1L EQU 0x0E
PIR1 EQU 0x0C
INTCON EQU 0x0B
INICIO bcf STATUS,5 ;elijo banco1
bsf STATUS,6
movlw b'11000000'
movwf TRISB ;puerta b salida
movlw b'00000100' ;ra0,1 y 3 analogicas y resto digital
movwf ADCON1
movlw b'11111111'
movwf TRISA ;puerta a entrada
movlw b'00000010' ;preescaler TMR0
movwf TMR0_OPT
bcf STATUS,5
BCF STATUS,6 ;elijo banco0
clrf PORTB
movlw b'00110001' ;prescaler trm1
movwf T1CON
movlw b'00000011' ;valor inicial vel1
movwf VEL1
movlw b'00001010'
movwf POSICION1 ;inicializo posicion1
movlw b'00001010'
movwf PASO1 ;meto los valores que corresponden a cada paso
movlw b'00001001'
movwf PASO2
movlw b'00000101'
movwf PASO3
movlw b'00000110'
movwf PASO4
;
BUCLE btfsc PORTA,2 ;leo interruptor ra2 si esta on subrrutina leer,offleer pulsadores
CALL LEER
btfsc PORTA,4 ;si ra4 on giro a izquierda, off miro pulsadores
goto IZQUIERDA1
btfsc PORTA,5 ;si ra5 on ,, dercha ,, ,,
goto DERECHA1
goto BUCLE
LEER bcf PIR1,6 ;subrutina leer,pongo a 0 el indicador de fin de conversión a/d y digo de donde lee ra0
movlw b'00000001'
movwf ADCON0 ;activo toma de datos de coversor a/d
CALL PAUSA2 ;pausa para recepcion de datos
movlw b'00000101'
movwf ADCON0 ;activo la conversion de datos a/d de puerta ra0
CALL ESPERA ;espero hasta fin de la conversión
movf ADRESH,0
movwf VEL1 ;guardo valor de conversion en vel1
bcf ADCON0,0 ;desactivo el conversion a/d
return
PAUSA2 movlw 0x28
movwf TEMPO2
call DELAY11
return
DELAY11 bcf PIR1,0
movlw 09 ;tb puedo usarlo para tiempos!!
movwf TMR1L
DELAY11_1 btfss PIR1,0
goto DELAY11_1
decfsz TEMPO2,1
goto DELAY11
return
ESPERA btfss PIR1,6
goto ESPERA
return
IZQUIERDA1 movf POSICION1,0
subwf PASO1,0
movwf RESTA1
btfss RESTA1,1
goto S1IP1
movf POSICION1,0
subwf PASO2,0
movwf RESTA1
btfss RESTA1,1
goto S1IP2
movf POSICION1,0
subwf PASO3,0
movwf RESTA1
btfss RESTA1,1
goto S1IP3
movf POSICION1,0
subwf PASO4,0
movwf RESTA1
btfss RESTA1,1
goto S1IP4
goto BUCLE
DERECHA1 movf POSICION1,0
subwf PASO4,0
movwf RESTA1
btfss RESTA1,1
goto S1DP1
movf POSICION1,0
subwf PASO3,0
movwf RESTA1
btfss RESTA1,1
goto S1DP2
movf POSICION1,0
subwf PASO2,0
movwf RESTA1
btfss RESTA1,1
goto S1DP3
movf POSICION1,0
subwf PASO1,0
movwf RESTA1
btfss RESTA1,1
goto S1DP4
goto BUCLE
S1IP1 movf PASO4,0
movwf PORTB
movwf POSICION1
CALL PAUSA1
goto BUCLE
S1IP2 movf PASO1,0
movwf PORTB
movwf POSICION1
CALL PAUSA1
goto BUCLE
S1IP3 movf PASO2,0
movwf PORTB
movwf POSICION1
CALL PAUSA1
goto BUCLE
S1IP4 movf PASO3,0
movwf PORTB
movwf POSICION1
CALL PAUSA1
goto BUCLE
S1DP1 movf PASO2,0
movwf PORTB
movwf POSICION1
CALL PAUSA1
goto BUCLE
S1DP2 movf PASO3,0
movwf PORTB
movwf POSICION1
CALL PAUSA1
goto BUCLE
S1DP3 movf PASO4,0
movwf PORTB
movwf POSICION1
CALL PAUSA1
goto BUCLE
S1DP4 movf PASO1,0
movwf PORTB
movwf POSICION1
CALL PAUSA1
goto BUCLE
PAUSA1 movf VEL1,0
movwf TEMPO1
call DELAY10
return
DELAY10 bcf INTCON,2
movlw 09 ;tb puedo usarlo para tiempos!!
movwf TMR0_OPT
DELAY10_1 btfss INTCON,2
goto DELAY10_1
decfsz TEMPO1,1
goto DELAY10
return
END
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.