Autor Tema: Generador de señal  (Leído 1963 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado dbermejo123

  • PIC10
  • *
  • Mensajes: 14
Generador de señal
« en: 25 de Noviembre de 2006, 11:34:50 »
Se quiere encargar la realización de un generador de señal con las siguientes
características:
• La frecuencia de la señal será seleccionable entre 1 y 10Khz mediante dos botones
(uno aumentará la frecuencia y otro la disminuirá).
• El circuito estará basado en un PIC16F88 y un convertidor A/D de 8 bits.
• A la salida del ADC el circuito generará una señal de 3Vpp (entre 1V y 4V)
aproximandola a una señal sinusoidal en 10 escalones para un periodo de la señal.
• La salida del ADC (señal sinusoidal con escalones) se filtrará para “suavizarla”
eliminando los escalones, mediante un filtro paso bajo RC.
• El sistema se diseñará de forma que el tamaño en placa y el número de componentes
sea mínimo.
El prototipo del circuito se hará en placa de wrapping. El diseño final se hará en tarjeta
de circuito impreso.

Es el proyecto q tengo q hacer. He echo mas o menos el programa para el PIC16F88 queria q viera si esta bien o no.

;..................................................
;GENERADOR DE SEÑAL, REGULABLE ENTRE 1 Y 10 KHZ
;..................................................

      LIST    P=16F88
      INCLUDE   "P16F88.INC"

     __CONFIG    _CONFIG1, _CP_OFF & _PWRTE_ON & _WDT_OFF & _INTRC_CLKOUT

RA0_UP      EQU   20H   ;control de entrada ascendente
RA1_DOWN   EQU   21H   ;control de entrada descendente
CONT      EQU   22H   ;contador

   ORG   0X00
   GOTO   INICIO
   ORG   0X05

;Configuración de registros
;...............................
INICIO
   CLRF PORTA
   CLRF PORTB
   MOVLW B'1001000'
   MOVWF INTCON
   
   BSF STATUS, RP0
   CLRF TRISB
   MOVLW B'00000011'
   MOVWF TRISA
   MOVLW B'00001000'   ;Perro guardian
   MOVWF OPTION_REG

   MOVLW B'01101101'
   MOVWF OSCCON
   
   BCF STATUS,RP0
   CLRF RA0_UP
   CLRF RA1_DOWN

   MOVLW .1
   MOVWF CONT   ;CONT=1


;Detectar pulsación
;...............................

 MOVLW .1
 SUBWF RA0_UP,W
 BTFSS STATUS,Z
 GOTO FINSI
   INCF CONT,F
 FINSI:

 MOVLW .1
 SUBWF RA1_DOWN,W
 BTFSS STATUS,Z
 GOTO FINSI1
   DECF CONT,F
 FINSI1:

 MOVLW .1
 SUBWF CONT,W
 BTFSS STATUS,Z
 GOTO FINSI2
   MOVLW .10
   MOVWF CONT
 FINSI2:

 MOVLW .10
 SUBWF CONT,W
 BTFSS STATUS,Z
 GOTO FINSI3
   MOVLW .1
   MOVWF CONT
 FINSI3:



;Casos
;.............................
   
         
         CASO1: MOVLW .1
              SUBWF CONT,W
              BTFSS STATUS,Z
              GOTO CASO2
               CALL F1
              GOTO FINCASO

         CASO2: MOVLW .2
              SUBWF CONT,W
              BTFSS STATUS,Z
              GOTO CASO3
               CALL F2
              GOTO FINCASO

         CASO3: MOVLW .3
              SUBWF CONT,W
              BTFSS STATUS,Z
              GOTO CASO4
               CALL F3
              GOTO FINCASO

         CASO4: MOVLW .4
              SUBWF CONT,W
              BTFSS STATUS,Z
              GOTO CASO5
               CALL F4
              GOTO FINCASO

         CASO5: MOVLW .5
              SUBWF CONT,W
              BTFSS STATUS,Z
              GOTO CASO6
               CALL F5
              GOTO FINCASO

         CASO6: MOVLW .6
              SUBWF CONT,W
              BTFSS STATUS,Z
              GOTO CASO7
               CALL F6
              GOTO FINCASO

         CASO7: MOVLW .7
              SUBWF CONT,W
              BTFSS STATUS,Z
              GOTO CASO8
               CALL F7
              GOTO FINCASO

         CASO8: MOVLW .8
              SUBWF CONT,W
              BTFSS STATUS,Z
              GOTO CASO9
               CALL F8
              GOTO FINCASO

         CASO9: MOVLW .9
              SUBWF CONT,W
              BTFSS STATUS,Z
              GOTO CASO10
               CALL F9
              GOTO FINCASO

        CASO10: CALL F10
            
         
          
      FINCASO:


;Rutina 1-->1KHZ
;.............................

F1   MOVLW D'129'
   MOVWF PORTB

   MOVLW .156
   MOVWF TMR0

   BUCLE
      BTFSS INTCON,TMR0IF
   GOTO BUCLE

   MOVLW D'210'
   MOVWF PORTB

   MOVLW .156
   MOVWF TMR0

   BUCLE1
      BTFSS INTCON,TMR0IF
   GOTO BUCLE1


   MOVLW D'251'
   MOVWF PORTB

   MOVLW .156
   MOVWF TMR0

   BUCLE2
      BTFSS INTCON,TMR0IF
   GOTO BUCLE2

   MOVLW D'251'
   MOVWF PORTB

   MOVLW .156
   MOVWF TMR0

   BUCLE3
      BTFSS INTCON,TMR0IF
   GOTO BUCLE3

   MOVLW D'204'
   MOVWF PORTB

   MOVLW .156
   MOVWF TMR0

   BUCLE4
      BTFSS INTCON,TMR0IF
   GOTO BUCLE4

   MOVLW D'129'
   MOVWF PORTB

   MOVLW .156
   MOVWF TMR0

   BUCLE5
      BTFSS INTCON,TMR0IF
   GOTO BUCLE5   

   MOVLW D'53'
   MOVWF PORTB

   MOVLW .156
   MOVWF TMR0

   BUCLE6
      BTFSS INTCON,TMR0IF
   GOTO BUCLE6

   MOVLW D'7'
   MOVWF PORTB

   MOVLW .156
   MOVWF TMR0

   BUCLE7
      BTFSS INTCON,TMR0IF
   GOTO BUCLE7

   MOVLW D'7'
   MOVWF PORTB

   MOVLW .156
   MOVWF TMR0

   BUCLE8
      BTFSS INTCON,TMR0IF
   GOTO BUCLE8

   MOVLW D'153'
   MOVWF PORTB

   MOVLW .156
   MOVWF TMR0

   BUCLE9
      BTFSS INTCON,TMR0IF
   GOTO BUCLE9
      RETURN

;Rutina 2-->2KHZ
;.............................

F2   MOVLW D'129'
   MOVWF PORTB

   MOVLW .206
   MOVWF TMR0

   BUCLE10
      BTFSS INTCON,TMR0IF
   GOTO BUCLE10

   MOVLW D'210'
   MOVWF PORTB

   MOVLW .206
   MOVWF TMR0

   BUCLE11
      BTFSS INTCON,TMR0IF
   GOTO BUCLE11


   MOVLW D'251'
   MOVWF PORTB

   MOVLW .206
   MOVWF TMR0

   BUCLE12
      BTFSS INTCON,TMR0IF
   GOTO BUCLE12

   MOVLW D'251'
   MOVWF PORTB

   MOVLW .206
   MOVWF TMR0

   BUCLE13
      BTFSS INTCON,TMR0IF
   GOTO BUCLE13

   MOVLW D'204'
   MOVWF PORTB

   MOVLW .206
   MOVWF TMR0

   BUCLE14
      BTFSS INTCON,TMR0IF
   GOTO BUCLE14

   MOVLW D'129'
   MOVWF PORTB

   MOVLW .206
   MOVWF TMR0

   BUCLE15
      BTFSS INTCON,TMR0IF
   GOTO BUCLE15   

   MOVLW D'53'
   MOVWF PORTB

   MOVLW .206
   MOVWF TMR0

   BUCLE16
      BTFSS INTCON,TMR0IF
   GOTO BUCLE16

   MOVLW D'7'
   MOVWF PORTB

   MOVLW .206
   MOVWF TMR0

   BUCLE17
      BTFSS INTCON,TMR0IF
   GOTO BUCLE17

   MOVLW D'7'
   MOVWF PORTB

   MOVLW .206
   MOVWF TMR0

   BUCLE18
      BTFSS INTCON,TMR0IF
   GOTO BUCLE18

   MOVLW D'153'
   MOVWF PORTB

   MOVLW .206
   MOVWF TMR0

   BUCLE19
      BTFSS INTCON,TMR0IF
   GOTO BUCLE19
      RETURN
 

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: Generador de señal
« Respuesta #1 en: 26 de Noviembre de 2006, 04:31:54 »
El ADC no es un periférico de salida, sino de entrada. Necesitarás utilizar un DAC externo.

Desconectado dbermejo123

  • PIC10
  • *
  • Mensajes: 14
Re: Generador de señal
« Respuesta #2 en: 26 de Noviembre de 2006, 10:28:37 »
Queria saber q filtro utilizar para sacar la señal del DAC. Podriais mandarme un esquema se q el filtro es el 741 pero no se q conectar si hay q poner resistencias , condensadores, etcc...

Desconectado vszener

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2395
Re: Generador de señal
« Respuesta #3 en: 26 de Noviembre de 2006, 18:01:29 »
Te recomiendo que en los programas pongas comentarios, ya que se hace muy tedioso sin ellas


Suerte!!! ;)
· Nos vemos en los bares!!!!!
· Mi Blog: Aqueronte