Proyecto Generador De Funciones

  • Uploaded by: Genaro Sanchez Sanchez
  • 0
  • 0
  • February 2021
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Proyecto Generador De Funciones as PDF for free.

More details

  • Words: 830
  • Pages: 11
Loading documents preview...
UNIVERSIDAD AUTONOMA DE TLAXCALA FACULTAD DE CIENCIAS BASICAS INGENIERIA Y TECNOLOGIA Licenciatura en Ingeniería en Sistemas Electrónicos

Materia: Sistemas analógicos.

Catedrático: M. en C. Bernardo Cante Michcol. Alumnos: Genaro Sánchez Sánchez Rigoberto Temoltzi Avila Proyecto Generador de Funciones

Introducción En la siguiente sección se mostrarán ejemplos de diseño para generador de funciones, implementando un microcontrolador AT89C52, con una fuente de 12MHz como reloj. Para todos las impresiones de pantalla que se mostrarán se deben simular con el mismo arreglo en ISIS, para este fin se implementa un circuito con los dispositivos AT89C52, RES, OSCILLOSCOPE. Para la reconstrucción de la señal procesada internamente, se configuran 8 bits de salida, para hacer un convertidor DA, por medio de DAC0800. #include sbit led = P2^0; sbit boton = P2^1; sbit subir = P2^2; sbit bajar = P2^3; short i,seleccion,j,time=2; void delay_ms( unsigned int ms) { unsigned char k; while(ms--) { for(k = 0; k < 120; k++); } } void seleccion_funcion(void) { if(boton==0) { delay_ms(200); seleccion = seleccion + 1; if(seleccion >= 4) { seleccion = 0; } while(boton==0); } if(subir==0) { delay_ms(200); time = time + 5; } if(bajar==0) { delay_ms(200); time = time - 5; } } void cuadrada(void) {

P1=0xFF; led=1; delay_ms(time); P1=0x00; led=0; delay_ms(time); } void senoidal(void) { for(i = 0;i < 100;i++) { P1 = i+4; } } void triangular(void) { for(j = 0; j < 255; j++) { P1 = j + 2; } } void sierra(void) { for(i=255;i>0;i--) { P1 = i; } }

void main (void) { P0 = 0x00; P1 = 0x00; P3 = 0x00; while(1) { seleccion_funcion(); switch (seleccion) { case 0: cuadrada(); break; case 1: senoidal(); break; case 2: sierra();

break; case 3: triangular(); break; } } }

En la siguiente sección se mostrarán ejemplos de diseño para generador de funciones, implementando un microcontrolador 18F4550, con una fuente de 40MHz como reloj. Para fines prácticos reales la frecuencia de 40MHz, se logra utilizando un cristal de 10MHz, y activando la fuente de reloj HS- PLL en el PIC. Está opción implementa internamente en el PIC, un PLL que multiplica la frecuencia externa por un factor de cuatro, y el resultado es usado como fuente de reloj para el procesador del microcontrolador. Para todos las impresiones de pantalla que se mostrarán se deben simular con el mismo arreglo en ISIS, para este fin se implementa un circuito con los dispositivos 18F4550, RES, OSCILLOSCOPE,DAC0800. La adquisición de señales se hace en el microcontrolador por medio del módulo AD, los niveles de tensión que las entradas análogas admiten, no pueden salirse de los rangos de la polarización del microcontrolador. En otras palabras los niveles de las entradas análogas no pueden ser superiores a 5 voltios, ni voltajes negativos.

#INCLUDE <18F4550.h> #DEVICE ADC=8 #FUSES INTRC_IO,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VRE GEN #USE DELAY(CLOCK = 8MHz) #DEFINE AN5,AN6 #DEFINE BOTON PIN_D3 INT16 TIEMPO,AMPLITUD; INT16 X,SELECCION; BYTE CONST SIERRA[255]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,2 3,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,4 7,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,7 1,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,9 5,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113, 114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,1 31,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,14 8,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165 ,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182, 183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,2 00,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,21 7,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234 ,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251, 252,253,254}; BYTE CONST CUADRADA[255]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,254,254,254,254,254,254,254,254,254,25 4,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254 ,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254, 254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,2 54,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,25 4,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254 ,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254, 254,254,254,254,254,254,254,254,254,254,254,254,254,254}; BYTE CONST TRIANGULAR[255]={0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,3 8,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,8 6,88,90,92,94,96,98,100,102,104,106,108,110,112,114,116,118,120,122,12 4,126,128,130,132,134,136,138,140,142,144,146,148,150,152,154,156,158 ,160,162,164,166,168,170,172,174,176,178,180,182,184,186,188,190,192, 194,196,198,200,202,204,206,208,210,212,214,216,218,220,222,224,226,2 28,230,232,234,236,238,240,242,244,246,248,250,252,254,254,252,250,24 8,246,244,242,240,238,236,234,232,230,228,226,224,222,220,218,216,214 ,212,210,208,206,204,202,200,198,196,194,192,190,188,186,184,182,180, 178,176,174,172,170,168,166,164,162,160,158,156,154,152,150,148,146,1 44,142,140,138,136,134,132,130,128,126,124,122,120,118,116,114,112,11 0,108,106,104,102,100,98,96,94,92,90,88,86,84,82,80,78,76,74,72,70,68,6 6,64,62,60,58,56,54,52,50,48,46,44,42,40,38,36,34,32,30,28,26,24,22,20,1 8,16,14,12,10,8,6,4,2};

BYTE CONST SENOIDAL[100]={77,82,86,91,96,101,105,109,114,118,122,126,129,133,13 6,139,142,144,146,148,150,151,152,153,153,154,153,153,152,151,150,148 ,146,144,142,139,136,133,129,126,122,118,114,109,105,101,96,91,86,82,7 7,72,67,62,58,53,49,44,40,36,32,28,24,21,18,15,12,9,7,5,4,2,1,1,0,0,1,1,2,4 ,5,7,9,12,15,18,21,24,28,32,36,40,44,49,53,58,62,67,72,77};

VOID SELECCION_FUNCION(VOID) { IF(!INPUT(BOTON)) { DELAY_MS(200); SELECCION = SELECCION + 1; IF(SELECCION >= 4) { SELECCION = 0; } WHILE(!INPUT(BOTON)); } OUTPUT_TOGGLE(PIN_A2); }

VOID ONDACUADRADA(VOID)

{ FOR(X=0; X<255; X++) { PuertoB = CUADRADA[X]; DELAY_US(TIEMPO); } } VOID ONDATRIANGULAR(VOID) { FOR(X=0; X < 254; X++) { PuertoB = TRIANGULAR[x]; DELAY_US(TIEMPO); } } VOID ONDASIERRA(VOID) { FOR(X=AMPLITUD; X > 0; X--) { PuertoB = SIERRA[x]; DELAY_US(TIEMPO); } }

VOID ONDASENOIDAL(VOID) { FOR(X=0; X<100; X++) { PuertoB = SENOIDAL[X]; DELAY_US(TIEMPO); } }

VOID MAIN (VOID) { SETUP_ADC(ADC_CLOCK_INTERNAL); WHILE(TRUE) { SET_ADC_CHANNEL(5); TIEMPO=READ_ADC(); SET_ADC_CHANNEL(6); AMPLITUD=READ_ADC()/4; SELECCION_FUNCION(); SWITCH(SELECCION) { CASE 0: ONDATRIANGULAR();

BREAK; CASE 1: ONDACUADRADA(); BREAK; CASE 2: ONDASIERRA(); BREAK; CASE 3: ONDASENOIDAL(); BREAK; } } }

En la siguiente sección se mostrarán ejemplos de diseño para generador de funciones, implementando un microcontrolador 18F4550, con una fuente de 40MHz como reloj. Para fines prácticos reales la frecuencia de 40MHz, se logra utilizando un cristal de 10MHz, y activando la fuente de reloj HS- PLL en el PIC. Está opción implementa internamente en el PIC, un PLL que multiplica la frecuencia externa por un factor de cuatro, y el resultado es usado como fuente de reloj para el procesador del microcontrolador. Para todos las impresiones de pantalla que se mostrarán se deben simular con el

mismo arreglo en ISIS, para este fin se implementa un circuito con los dispositivos 18F4550, RES, OSCILLOSCOPE. La adquisición de señales se hace en el microcontrolador por medio del módulo AD, los niveles de tensión que las entradas análogas admiten, no pueden salirse de los rangos de la polarización del microcontrolador. En otras palabras los niveles de las entradas análogas no pueden ser superiores a 5 voltios, ni voltajes negativos. Para la reconstrucción de la señal procesada internamente, se configuran 8 bits de salida, para hacer un convertidor DA, por medio de un arreglo R-2R.

Related Documents

Generador De Funciones
February 2021 1
Generador De Funciones
February 2021 1
Generador De Funciones
February 2021 1
Generador-de-orgon1
March 2021 0

More Documents from "api-53467618"