elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


+  Foro de elhacker.net
|-+  Informática
| |-+  Electrónica
| | |-+  Ayuda con un proyecto!
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 2 3 [4] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con un proyecto!  (Leído 22,242 veces)
16BITS

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Re: Ayuda con un proyecto!
« Respuesta #30 en: 19 Febrero 2014, 23:38 pm »

Me Interesa el codigo que me comentas para poder, detenerlo y cambiar el tiempo, ademas el diagrama del zumbador, Suena Aun mejor. Otra cosa me podrias apoyar mostrandome como usar el MPLAB para hacer el proyecto y cargar el PIC.

De Verdad Que Muchas Gracias Compañero!


En línea

Meta


Desconectado Desconectado

Mensajes: 3.438



Ver Perfil WWW
Re: Ayuda con un proyecto!
« Respuesta #31 en: 20 Febrero 2014, 13:18 pm »

Hola:

Nuevo esquema. Se incluye un pequeño altavoz como los que usan los ordenadores o PC viejos o un zumbador piezo eléctrico. A pesar de que funcioinan los dos al mismo tiempo, a la hora de montar el circuito, decidirás mmontar físicamente un altavoz o un zumbador. El zumbador te puede dejar zumbado y funciona 5V directamente. El altavoz requiere un trasistor y una resistencia. Es tu elección final.



Estoy con el programa nuevo para adaptor los códigos del altavoz y zumbador.


Programando y haciendo un tutorial sobre el MPLAB con Word. Esto es trabajo de horas y como comprenderás, tardaré en publicarlo. Te daré el aviso cuando lo acabe.

Saludo.

Edito:
Hecho un minitutorial en pdf.
https://drive.google.com/file/d/0B6HKwsbbpgrLQTBUckNaUTMzYUU/edit?usp=sharing

Saludo.


« Última modificación: 20 Febrero 2014, 15:51 pm por Meta » En línea

Meta


Desconectado Desconectado

Mensajes: 3.438



Ver Perfil WWW
Re: Ayuda con un proyecto!
« Respuesta #32 en: 26 Febrero 2014, 03:26 am »

Holas:

El proyecto sigue en pie, probando bajo PIC16F88 con un motor de 5Vdc, para los lectores les dejo un montaje de prototipo.



Gracias por visitar.
En línea

Meta


Desconectado Desconectado

Mensajes: 3.438



Ver Perfil WWW
Re: Ayuda con un proyecto!
« Respuesta #33 en: 26 Febrero 2014, 21:40 pm »

Hola

Ya que algunos usuarios me piden código, se los paso por ahora en asm para el PIC16F88. Ahor funciona todo. Cuando pueda, presento lomismo para el lenguaje C bajo XC8.

Código
  1. list    P=16F88        ; Procesador.
  2. include <p16F88.inc>   ; Definición de las etiquetas del PIC.
  3. __CONFIG _CONFIG1, _FOSC_INTOSCIO & _WDTE_OFF & _PWRTE_ON & _MCLRE_ON & _BOREN_ON & _LVP_OFF & _CPD_OFF & _WRT_OFF & _CCPMX_RB3 & _CP_OFF
  4. __CONFIG _CONFIG2, _FCMEN_ON & _IESO_ON
  5. ;***************************************
  6. ;Declaracion de variables y constantes
  7. ;***************************************
  8. #define p1          PORTA,4     ; Pulsador 1.
  9. #define p2          PORTA,3     ; Pulsador 2.
  10. #define p3          PORTA,2     ; Pulsador 3.
  11. #define p4          PORTA,1     ; Pulsador 4.
  12. #define motor       PORTB,7     ; Motor DC.
  13. #define led1        PORTB,6     ; Diodo Led 1.
  14. #define led2        PORTB,5
  15. #define led3        PORTB,4
  16. #DEFINE Altavoz     PORTB,3     ; Altavoz.
  17. #DEFINE Zumbador    PORTB,2     ; Zumbador piezoeléctrico.
  18.  
  19. ctte_5_min     equ    .5         ; constante para 5 minutos
  20. ctte_10_min     equ    .10        ; constante para 10 minutos
  21. ctte_20_min     equ    .20        ; constante para 20 minutos
  22. ctte_min       equ    .60        ; para 1 minuto
  23. ctte_timer     equ    .16        ; para 1 segundo
  24. carga_timer     equ    .12        ;
  25.  
  26. variables       udata    0x20
  27. cont_timer      RES 1
  28. cont_seg        RES 1        ; contador de segundos
  29. cont_min        RES 1            ; contador de minutos
  30. tiempo_fijado   RES 1
  31. PDel0           RES 1
  32. PDel1           RES 1
  33. W_TEMP          RES 1
  34. STATUS_TEMP     RES 1
  35. PCLATH_TEMP     RES 1
  36. RAM             RES 1
  37. RAM_1           RES 1
  38. RAM_2           RES 1
  39. RAM_3           RES 1
  40. RAM_4           RES 1
  41. RAM_5           RES 1
  42. RAM_6           RES 1
  43. ;**************************************
  44.    org     0x00
  45.    goto    configuracion
  46.    org     0x04
  47. ;**********************************************************************
  48. ;    Rutinas de interrupciones
  49. ;**********************************************************************
  50. rutina_de_interrupcion
  51. PUSH
  52.    MOVWF   W_TEMP
  53.    SWAPF   STATUS,W
  54.    CLRF    STATUS
  55.    MOVWF   STATUS_TEMP
  56.    MOVF    PCLATH,W
  57.    MOVWF   PCLATH_TEMP
  58.    CLRF    PCLATH
  59.  
  60.    btfss   INTCON,TMR0IF        ;verifica si es interrupción temporizada
  61.    goto    salida_timer0        ;sale de la rutina de interrupción
  62.    movlw   carga_timer          ;
  63.    movwf   TMR0                 ;carga al timer0 para reiniciar cuenta
  64.    movfw   cont_timer           ;
  65.    xorlw   ctte_timer           ;compara si llego al segundo
  66.    btfss   STATUS,Z
  67.    goto    salida_timer0        ;sale de la rutina de interrupción si no es 1 segundo
  68.    clrf    cont_timer           ;
  69.    incf    cont_seg             ;se incrementa cada segundo
  70.    movfw   cont_seg
  71.    xorlw   ctte_min             ;compara si es un minuto
  72.    btfss   STATUS,Z
  73.    goto    salida_timer0        ;sale de la rutina de interrupción
  74.    clrf    cont_seg
  75.    incf    cont_min             ;se incrementa cada minuto
  76. salida_timer0
  77.    incf    cont_timer
  78.    bcf     INTCON,TMR0IF
  79. POP
  80.    MOVF    PCLATH_TEMP,W
  81.    MOVWF   PCLATH
  82.    SWAPF   STATUS_TEMP,W
  83.    MOVWF   STATUS
  84.    SWAPF   W_TEMP,F
  85.    SWAPF   W_TEMP,W
  86.    retfie
  87. ;***********************************************
  88. ;Subrutinas
  89. ;***********************************************
  90. reiniciar_tiempo
  91.    movlw   carga_timer
  92.    movwf   TMR0
  93.    clrf    cont_timer
  94.    clrf    cont_seg
  95.    clrf    cont_min
  96.    banksel OPTION_REG
  97.    bcf     OPTION_REG,T0CS    ; timer0 inicia la cuenta
  98.    banksel PORTA
  99.    bsf     INTCON,GIE         ; interrupciones habilitadas
  100.    bsf     motor
  101.    return
  102. ;*************************************************************
  103. pulsador1
  104.    call    retardo_10ms
  105.    btfsc   p1
  106.    return
  107.    ;***********************************************************
  108.    btfss   p1      ; espera hasta que se suelte el pulsador
  109.    goto    $-1     ;
  110.    ;***********************************************************
  111.    movlw   ctte_5_min
  112.    movwf   tiempo_fijado
  113.    clrf    PORTB
  114.    call    reiniciar_tiempo
  115.    call    PitidoCorto
  116.    bsf     led1
  117.    return
  118. ;*************************************************************
  119. pulsador2
  120.    call    retardo_10ms
  121.    btfsc   p2
  122.    return
  123.    ;***********************************************************
  124.    btfss   p2      ; espera hasta que se suelte el pulsador
  125.    goto    $-1     ;
  126.    ;***********************************************************
  127.    movlw   ctte_10_min
  128.    movwf   tiempo_fijado
  129.    clrf    PORTB
  130.    call    reiniciar_tiempo
  131.    call    PitidoCorto
  132.    bsf     led2
  133.    return
  134. ;*************************************************************
  135. pulsador3
  136.    call    retardo_10ms
  137.    btfsc   p3
  138.    return
  139.    ;***********************************************************
  140.    btfss   p3      ; espera hasta que se suelte el pulsador
  141.    goto    $-1     ;
  142.    ;***********************************************************
  143.    movlw   ctte_20_min
  144.    movwf   tiempo_fijado
  145.    clrf    PORTB
  146.    call    reiniciar_tiempo
  147.    call    PitidoCorto
  148.    bsf     led3
  149.    return
  150. ;*************************************************************
  151. pulsador4
  152.    call    retardo_10ms
  153.    btfsc   p4
  154.    return
  155.    ;***********************************************************
  156.    btfss   p4      ; espera hasta que se suelte el pulsador
  157.    goto    $-1     ;
  158.    ;***********************************************************
  159.    call    detener_tiempo
  160.    call    Pitido
  161.    return
  162. ;*************************************************************
  163. detener_tiempo
  164.    clrf    PORTB
  165.    banksel OPTION_REG
  166.    bsf     OPTION_REG,T0CS    ; timer0 detenido
  167.    banksel PORTA
  168.    bcf     INTCON,GIE        ; interrupciones desactivadas
  169. ;*************************************************************
  170. retardo_10ms
  171.    movlw   .8
  172.    movwf   PDel0
  173. PLoop1
  174.    movlw   .249
  175.    movwf   PDel1
  176. PLoop2
  177.    clrwdt
  178.    clrwdt
  179.    decfsz  PDel1,1
  180.    goto    PLoop2
  181.    decfsz  PDel0,1
  182.    goto    PLoop1
  183. PDelL1
  184.    goto    PDelL2
  185. PDelL2
  186.    clrwdt
  187.    return
  188. ;******************************************************
  189. ; Subrutinas "PitidoLargo", "Pitido" y "PitidoCorto"
  190. ;*******************************************************
  191. PitidoLargo
  192.    bsf     Altavoz
  193.    bsf     Zumbador
  194.    call    Retardo_500ms
  195. ;******************************************************
  196. Pitido
  197.    bsf     Altavoz
  198.    bsf     Zumbador
  199.    call    Retardo_200ms
  200. ;******************************************************
  201. PitidoCorto
  202.    bsf     Altavoz
  203.    bsf     Zumbador
  204.    call    Retardo_20ms
  205.    bcf     Altavoz
  206.    bcf     Zumbador
  207.    return
  208. ;**************************************************
  209. Retardo_500ms
  210.    movlw   0x03
  211.    movwf   RAM
  212.    movlw   0x18
  213.    movwf   RAM_1
  214.    movlw   0x02
  215.    movwf   RAM_2
  216. Retardo_500ms_0
  217.    decfsz  RAM, f
  218.    goto    $+2
  219.    decfsz  RAM_1, f
  220.    goto    $+2
  221.    decfsz  RAM_2, f
  222.    goto    Retardo_500ms_0
  223.    goto    $+1
  224.    return
  225. ;******************************************************
  226. Retardo_200ms
  227.    movlw   0x3E
  228.    movwf   RAM_3
  229.    movlw   0x9D
  230.    movwf   RAM_4
  231. Retardo_200ms_0
  232.    decfsz  RAM_3, f
  233.    goto    $+2
  234.    decfsz  RAM_4, f
  235.    goto    Retardo_200ms_0
  236.    goto    $+1
  237.    nop
  238.    return
  239. ;******************************************************
  240. Retardo_20ms
  241.    movlw   0x9E
  242.    movwf   RAM_5
  243.    movlw   0x10
  244.    movwf   RAM_6
  245. Retardo_20ms_0
  246.    decfsz  RAM_5, f
  247.    goto    $+2
  248.    decfsz  RAM_6, f
  249.    goto    Retardo_20ms_0
  250.    goto    $+1
  251.    nop
  252.    return
  253. ;**********************************************
  254. configuracion
  255. ;**********************************************
  256. ;   configuracion del oscilador interno
  257. ;**********************************************
  258.    banksel OSCCON  ;bank 1
  259.    movfw   OSCCON
  260.    iorlw   0x60    ;oscilador interno a 4Mhz
  261.    movwf   OSCCON
  262.    banksel PORTA   ;bank 0
  263. ;**********************************************
  264. ; Configuración de puertos de entrada y salida
  265. ;**********************************************
  266.    clrf    PORTA       ;porta=0
  267.    clrf    PORTB       ;portb=0
  268.    banksel ANSEL       ;bank 1
  269.    clrf    ANSEL       ;puertos i/o digitales
  270.    movlw   0xff        ;w=255
  271.    movwf   TRISA       ;porta como entradas
  272.    clrf    TRISB       ;portb como salidas
  273. ;***********************************************
  274. ;Configuraciond de las interrupcion temporizada
  275. ;***********************************************
  276.    movlw   b'11110111' ;prescaler asignado a timer0, prescaler=256
  277.    movwf   OPTION_REG
  278.    banksel INTCON
  279.    movlw   b'00100000' ;
  280.    movwf   INTCON      ;interrupciones globales desactivados e interrupción timer0 activado
  281.    clrf    TMR0
  282. ;**********************************************
  283.    clrf    cont_min
  284.    movlw   0xff
  285.    movwf   tiempo_fijado
  286. bucle
  287.    btfss   p1
  288.    call    pulsador1
  289.    btfss   p2
  290.    call    pulsador2
  291.    btfss   p3
  292.    call    pulsador3
  293.    btfss   p4
  294.    call    pulsador4
  295.    movfw   cont_min
  296.    xorwf   tiempo_fijado,W
  297.    btfss   STATUS,Z
  298.    goto    bucle
  299.    incf    cont_min
  300.    call    detener_tiempo
  301.    call    PitidoLargo         ;************************************
  302.    goto    bucle
  303. ;***********************************************************
  304.    end

Un saludo.
En línea

Páginas: 1 2 3 [4] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
AYUDA CON PROYECTO!!!!
Electrónica
carcepower 2 3,036 Último mensaje 10 Marzo 2006, 12:33 pm
por plomo17
Ayuda con un Proyecto !!!!!!!!! « 1 2 »
Programación Visual Basic
VirucKingX 10 4,210 Último mensaje 26 Abril 2006, 04:04 am
por VirucKingX
ayuda con proyecto
Programación Visual Basic
claudio145 4 1,876 Último mensaje 31 Agosto 2007, 01:19 am
por cark
Ayuda con un proyecto « 1 2 3 4 »
Programación Visual Basic
lord manson 38 12,333 Último mensaje 19 Julio 2008, 14:49 pm
por lord manson
Ayuda CON mi proyecto « 1 2 »
Programación Visual Basic
blood_brother 11 5,359 Último mensaje 23 Agosto 2009, 18:29 pm
por seba123neo
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines