Informática Industrial - Examen ... - PoliformaT - UPV
Informática Industrial - Examen ... - PoliformaT - UPV
Informática Industrial - Examen ... - PoliformaT - UPV
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){