17.01.2015 Views

Informática Industrial - Examen ... - PoliformaT - UPV

Informática Industrial - Examen ... - PoliformaT - UPV

Informática Industrial - Examen ... - PoliformaT - UPV

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

EX1 = 1;<br />

EA = 1;<br />

while (1) { } }<br />

Solución problema 3:<br />

sfr P0 = 0x80;<br />

sfr P3 = 0xB0;<br />

sfr TH0 = 0x8C;<br />

sfr TL0 = 0x8A;<br />

sfr TMOD = 0x89;<br />

sfr TCON = 0x88;<br />

sbit TR0 = TCON^4;<br />

sbit TF0 = TCON^5;<br />

sbit entrada = P3^2;<br />

sbit salida = P0^1;<br />

data bit alarma;<br />

#define alarma_ON 1<br />

#define alarma_OFF 0<br />

#define desbordes_retardo_10_s 100 // 1 CM = 12/6MHz = 2us; 10s<br />

= 5 000 000 CM, suponiendo temporización de 50000 CM<br />

#define desbordes_semiperiodo_1_s 10 // 1s = 500 000 CM duración<br />

de cada semiperiodo, suponiendo temporización de 50000 CM<br />

void main(void){<br />

unsigned char recarga_TH0;<br />

unsigned char recarga_TL0;<br />

bit entrada_activada; // para almacenar si se ha activado<br />

la entrada<br />

unsigned char desbordes;<br />

// preparar timer<br />

TR0 = 0;<br />

TF0 = 0;<br />

TMOD &= 0xF1;<br />

TMOD |= 0x01; // modo 1, timer, gate=0<br />

recarga_TH0 = (65536-50000)/256;<br />

registro TH0 del C/T0<br />

recarga_TL0 = (65536-50000)%256;<br />

registro TL0 del C/T0<br />

// Inicialización del<br />

// Inicialización del<br />

alarma = alarma_OFF;<br />

// bucle infinito<br />

while (1){

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!