Escolar Documentos
Profissional Documentos
Cultura Documentos
Electrónica 7º 15/12/17
#INCLUDE <18F4550.H>
#FUSES
HS,NOWDT,PUT,MCLR,NOPROTECT,NOCPD,NOBROWNOUT,NOIESO,NOFCMEN,NOLVP,NODEBUG,
NOWRT
//#USE PWM(PWM1,OUTPUT=PIN_C2,FREQUENCY=10000,BITS=10)
// 0 1 2 3 ... 9
int
DISPLAY[10]={0b1000000,0b1111001,0b0100100,0b0110000,0b0011001,0b0010010,0b0000011,0
b1111000,0b0000000,0b0011000}; // MATRIS DE LOS NUMEROS A DESPLEGAR
int16 error2 = 0;
int16 error3 = 0;
int16 ad_1 = 0;
int16 ad_2 = 0;
Ing. Electrónica 7º 15/12/17
int16 ad_3 = 0;
int ud = 0;
int ud2 = 0;
int dec = 0;
int dec2 = 0;
int cen = 0;
int cen2 = 0;
void main()
port_b_pullups(true);
output_low(pin_d2);
//pwm_off();
//pwm_on();
output_low(PIN_C2);
setup_timer_2(t2_div_by_4,249,1);
setup_ccp1(ccp_pwm);
Ing. Electrónica 7º 15/12/17
delay_ms(50);
while(true)
lectura();
muestreo();
output_toggle(alarma);
delay_ms(1);
output_high(alarma);
}*/
output_high(alarma);
else
output_low(alarma);
//pwm_set_duty(ad_1);
SET_ADC_CHANNEL(0);
delay_us(100);
ad_1= read_adc();
delay_us(50);
ud = (error1-1000) % 10;
ud = (error1-900) % 10;
ud = (error1-800) % 10;
ud = (error1-700) % 10;
ud = (error1-600) % 10;
ud = (error1-500) % 10;
ud = (error1-400) % 10;
ud = (error1-300) % 10;
ud = (error1-200) % 10;
ud = (error1-100) % 10;
else
ud = error1 % 10;
delay_us(100);
SET_ADC_CHANNEL(1);
delay_us(100);
ad_2= read_adc();
delay_us(50);
error2 = ad_2*(.097);
delay_us(100);
Ing. Electrónica 7º 15/12/17
set_adc_channel(2);
delay_us(100);
ad_3= read_adc();
delay_us(50);
error3 = ad_3*(.097);
//delay_us(tiempo);
output_low(ds_3);
output_low(ds_4);
output_low(ds_5);
output_low(ds_6);
output_high(ds_1);
output_b(DISPLAY[ud]);
delay_us(tiempo);
output_low(ds_3);
output_low(ds_4);
output_low(ds_5);
output_low(ds_6);
output_high(ds_2);
output_b(DISPLAY[dec]);
delay_us(tiempo);
output_low(ds_2);
output_low(ds_4);
output_low(ds_5);
Ing. Electrónica 7º 15/12/17
output_low(ds_6);
output_high(ds_3);
output_b(DISPLAY[cen]);
delay_us(tiempo);
output_low(ds_2);
output_low(ds_3);
output_low(ds_5);
output_low(ds_6);
output_high(ds_4);
output_b(DISPLAY[ud2]);
delay_us(tiempo);
output_low(ds_2);
output_low(ds_3);
output_low(ds_4);
output_low(ds_6);
output_high(ds_5);
output_b(DISPLAY[dec2]);
delay_us(tiempo);
output_low(ds_2);
output_low(ds_3);
output_low(ds_4);
output_low(ds_5);
output_high(ds_6);
output_b(DISPLAY[cen2]);
delay_us(tiempo);
}