microprocesadores y microcontroladores

MICROPROCESADORES Y MICROCONTROLADORES Paso 4 Tito J. Rodríguez Saavedra 94 538 465 Tutor Jhon Jairo Leiva Grupo: 30

Views 206 Downloads 3 File size 2MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

MICROPROCESADORES Y MICROCONTROLADORES

Paso 4

Tito J. Rodríguez Saavedra 94 538 465

Tutor Jhon Jairo Leiva

Grupo: 309696_6

Universidad Nacional Abierta y a Distancia – UNAD Escuela de Ciencias Básicas tecnología e ingeniería Ingeniería Electrónica Santiago de Cali 2017

INTRODUCCIÓN En el siguiente escrito se realizaran dos circuitos con la utilización del microcontrolador PIC16F877A, uno ayudara a censar la temperatura con alarmas visuales auditivas, y el otro dará una serie de información que desplegara totalmente legible en un display; esta unidad nos permitirá adquirir los conocimientos relacionados con la implementación de microcontroladores.

CENSOR DE TEMPERATURA Censara la temperatura ambiente y si está menor o igual de 20 grados el led verde se encenderá y dará un solo sonido cada 2 segundos, si la temperatura esta entre los 20 y 28 grados se encenderá un led amarillo, y si supera los 28 grados hasta los 40 grados El led rojo se prendera y debe dar una alarma constante y prenderse el ventilador hasta que baje la temperatura menor o igual a 20 grados. En el display se debe visualizar el valor de la temperatura y la activación de motor como MOTOR ON o MOTOR OFF. Código de programación para el PIC en función de censor de temperatura. #include ///microcontrolador #device adc=10 ///resolucion de lectura analoga a 10 bits #fuses XT,NOWDT #use delay(clock = 4000000) #include ////////libreria para el LCD #BYTE PORTA = 0X05 //DIRECCION DE LOS PUERTOS #BYTE TRISA = 0X85 #BYTE PORTB = 0X06 #BYTE TRISB = 0X86 #BYTE PORTC = 0X07 #BYTE TRISC = 0X87 #BIT green = PORTB.0 ///////////pines a trabajar #BIT yellow = PORTB.1 #BIT red = PORTB.2 #BIT enable = PORTB.3 #BIT motor = PORTB.4 int16 lect=0; ///Variables para lectura y conversion de temperatura float Tp=0.0; float Temp=0.0; void main(){ trisb=0B11100000; trisa=0X00; setup_adc_ports(AN0); setup_adc(ADC_CLOCK_INTERNAL); lcd_init(); green=0;

yellow=0; red=0; motor = 1; ///////motor inicia apagado enable = 1; while(true){ set_adc_channel(0); delay_ms(10); lect=read_adc(); Tp = 5000.0 * lect/1023.0; /// Se mide temperatura en mV Temp= Tp/10.0; // se pasa valor de temp a unidad lcd_gotoxy(1,1); printf(lcd_putc,"Temp Amb: %.2F",Temp); /*estado bajo de la temp si la temperatura es menor o igual a 20 grados el led verde se enciende y parpadea cada 2 segundos y el motor esta apagado */ if (temp 20.0) && (Temp 28.0) && (Temp = 28.0){ delay_ms(2); lcd_gotoxy(1,2); printf(lcd_putc," "); lcd_gotoxy(1,2); printf(lcd_putc,"MOTOR : ON"); motor=0; enable=1; } else if(Temp