Termometro Digital\n\r\n\rTemperatura: %3.1f ºC",read_ds1620()); } ///PROGRAMA void main(void) { setup_oscillator(OSC_4MHZ);//configuracion del oscilador interno a 4MHz enable_interrupts(INT_TIMER1);//interrupcion TIMER1 activada SETUP_TIMER_1(T1_INTERNAL|T1_DIV_BY_8);//configuracion interrupcion TMR1 set_timer1(10);//carga TMR1 enable_interrupts(GLOBAL);//activadas interrupciones setup_uart(TRUE);//activamos la uart for(;;){} //bucle infinito -> espera interrupcion del TMR1 }"> Termometro Digital\n\r\n\rTemperatura: %3.1f ºC",read_ds1620()); } ///PROGRAMA void main(void) { setup_oscillator(OSC_4MHZ);//configuracion del oscilador interno a 4MHz enable_interrupts(INT_TIMER1);//interrupcion TIMER1 activada SETUP_TIMER_1(T1_INTERNAL|T1_DIV_BY_8);//configuracion interrupcion TMR1 set_timer1(10);//carga TMR1 enable_interrupts(GLOBAL);//activadas interrupciones setup_uart(TRUE);//activamos la uart for(;;){} //bucle infinito -> espera interrupcion del TMR1 }">

La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

 Valiéndose de transductores, utilizan circuitos electrónicos para convertir en números las pequeñas variaciones de tensión obtenidas, mostrando finalmente.

Presentaciones similares


Presentación del tema: " Valiéndose de transductores, utilizan circuitos electrónicos para convertir en números las pequeñas variaciones de tensión obtenidas, mostrando finalmente."— Transcripción de la presentación:

1

2  Valiéndose de transductores, utilizan circuitos electrónicos para convertir en números las pequeñas variaciones de tensión obtenidas, mostrando finalmente la temperatura en un visualizador. No contamina el medio ambiente.

3

4 // Programa: Termometro digital mediante el DS1620 // Dispositivo: PIC 16F648A Compilador: CCS vs3.249 #include //pic a utilizar #fuses XT,NOWDT,NOPROTECT,PUT,NOLVP//ordenes para el programador #fuses INTRC//oscilador interno #use delay (clock=4000000)//Fosc=4Mhz #use rs232(baud=9600,xmit=PIN_B2,rcv=PIN_B1)//manejo del RS232 #define DS1620_DQPIN_A0//declaracion... #define DS1620_CLKPIN_A1 #define DS1620_RSTPIN_A2//...de pines para el ds1620 #include //libreria ds1620

5 ///LLAMADA FUNCION INTERRUPCION #INT_TIMER1 void interrupcion()//leemos la temp y la enviamos via serial rs232 al hyperterminal { printf("\fVsZeNeR'06 -> Termometro Digital\n\r\n\rTemperatura: %3.1f ºC",read_ds1620()); } ///PROGRAMA void main(void) { setup_oscillator(OSC_4MHZ);//configuracion del oscilador interno a 4MHz enable_interrupts(INT_TIMER1);//interrupcion TIMER1 activada SETUP_TIMER_1(T1_INTERNAL|T1_DIV_BY_8);//configuracion interrupcion TMR1 set_timer1(10);//carga TMR1 enable_interrupts(GLOBAL);//activadas interrupciones setup_uart(TRUE);//activamos la uart for(;;){} //bucle infinito -> espera interrupcion del TMR1 }

6

7  Dispositivo electromecánico que convierte una serie de impulsos eléctricos en desplazamientos angulares discretos  Tienen precisión y repetitividad en cuanto al posicionamiento  Robots, drones, radiocontrol, impresoras digitales, automatización, fotocomponedoras, etc.

8

9 #define __16f84 LIST P = 16F84A;//Comando que indica el pic usado ESTADOEQU0x03;//Direccion del reg. ESTADO PORT_AEQU0x05;//Direccion del puerto A PORT_BEQU0x06;//Direccion del puerto B wEQU0x00;//w = 0 REG_1EQU0x0C;//Direccion del registroREG_1 REG_2EQU0x0D;//Direccion del registroREG_2 REG_3EQU0x0E;//Direccion del registroREG_3 VALOR1EQU0x10;//Valor que se asigna a VALOR1 VALOR2EQU0x20;//Valor que se asigna a VALOR2 VALOR3EQU0x30;//Valor que se asigna a VALOR3

10 //PROGRAMA ORG0;//Vector de reset gotoinicio;//Salto a inicio ORG6 iniciocallconfig;//Llamada a la rutina config ciclobtfscPORT_A,0;//¿PORT_A = 0? gotoderecha;//No, salto a derecha btfscPORT_A,1;//Si, ¿PORT_A = 0? gotoizquier;//No, salto a izquier gotociclo;//Si, salto a ciclo derechamovlwb'00011100';//w = b'00011100' movwfPORT_B;//PORT_B = w callretardo;//Llamada a retardo btfscPORT_A,1;//¿PORT_A = 0? gotoizquier;//No, salto a izquier movlwb'00011000';//Si, mueve b'00011000' a w

11 movwfPORT_B;//Mueve w a PORT_B, PORT_B = w callretardo;//Llamada a la subrutina retardo btfscPORT_A,1;//¿PORT_A = 0? gotoizquier;//No, salto a izquier movlwb'00011010' movwfPORT_B callretardo btfscPORT_A,1 gotoizquier movlwb'00010010' movwfPORT_B callretardo btfscPORT_A,1 gotoizquier movlwb'00010110' movwfPORT_B callretardo

12 btfscPORT_A,1 gotoizquier movlwb'00000110' movwfPORT_B callretardo btfscPORT_A,1 gotoizquier movlwb'00001110' movwfPORT_B callretardo btfscPORT_A,1 gotoizquier movlwb'00001100' movwfPORT_B callretardo btfscPORT_A,1 gotoizquier;//Salto a izquier

13 gotoderecha;//Salto a derecha izquiermovlwb'00011100';//w = b'00011100' movwfPORT_B;//PORT_B = w callretardo; // Llamada a retardo btfscPORT_A,0; // ¿PORT_A = 0? gotoderecha; // No, salto a derecha movlwb'00001100'; // Mueve b'00001100' a w movwfPORT_B; // Mueve w a PORT_B, PORT_B = w callretardo; // Llamada a la subrutina retardo btfscPORT_A,0; // ¿PORT_A = 0? gotoderecha; // No, salto a derecha movlwb'00001110' movwfPORT_B callretardo btfscPORT_A,0 gotoderecha movlwb'00000110'

14 movwfPORT_B callretardo btfscPORT_A,0 gotoderecha movlwb'00010110' movwfPORT_B callretardo btfscPORT_A,0 gotoderecha movlwb'00010010' movwfPORT_B callretardo btfscPORT_A,0 gotoderecha movlwb'00011010' movwfPORT_B callretardo

15 btfscPORT_A,0 gotoderecha movlwb'00011000' movwfPORT_B callretardo btfscPORT_A,0 gotoderecha; // salto a derecha gotoizquier; // Salto a izquier //Subrutinas configbsfESTADO,5; // Se pone en 1 el bit 5 del reg. ESTADO movlwb'11111111'; // Carga w con el dato b'11111111' movwfPORT_A; // Configura el puerto A como entradas movlwb'00000000'; // Carga w con el dato b'00000000' movwfPORT_B; // Configura el puerto B como salidas bcfESTADO,5; // Se pone en 0 el bit 5 del reg. ESTADO return; // Retorno desde subrutina

16 retardomovlwVALOR1; // Carga w con el numero 30 (VALOR1) movwfREG_1; // Mueve w al registro REG_1 tresmovlwVALOR2; // Carga w con el numero 40 (VALOR2) movwfREG_2; // Mueve w al registro REG_2 dosmovlwVALOR3; // Carga w con el numero 50 (VALOR3) movwfREG_3; // Mueve w al registro REG_3 unodecfszREG_3; // Decrementa el valor de REG_3 en 1 gotouno; // Salto a uno decfszREG_2; // Decrementa el valor de REG_2 en 1 gotodos; // Salto a dos decfszREG_1; // Decrementa el valor de REG_1 en 1 gototres; // Salto a tres return; // Retorno desde subrutina end Nota: La frecuencia externa debe ser de 4MHz (Cristal de 4MHz).

17


Descargar ppt " Valiéndose de transductores, utilizan circuitos electrónicos para convertir en números las pequeñas variaciones de tensión obtenidas, mostrando finalmente."

Presentaciones similares


Anuncios Google