#include <16F877.h>
#use delay(clock=4000000)
#fuses NOCPD,NOWDT,BROWNOUT,PUT,XT,NOWRT,NOLVP,NODEBUG,NOPROTECT //0x3F71
#use rs232(baud=9600, BITS=8, PARITY=N, xmit=PIN_C6, rcv=PIN_C7)
//************************************************************************************
#define RAND_MAX 1023
#include <STDLIB.H>
int1 bFloat;
char cKeypress;
float fFlotante;
//************************************************************************************
// RUTINA PRINCIPAL
//
//************************************************************************************
#int_rda
void serial_isr() {
cKeypress=0x00;
if(kbhit()){
if(cKeypress==0x61){ // pregunta por el caracter a
bFloat=1;
cKeypress=0x00;
disable_interrupts(int_rda);
}
}
}
//***************************************//
#zero_ram
void main(){
output_a(0);
output_b(0);
set_tris_a(0x0);
set_tris_b(0x0);
enable_interrupts(int_rda);
enable_interrupts(GLOBAL);
while (TRUE){
if(bFloat){ // primer if
disable_interrupts(int_ad);
fFlotante
= (5.0 * rand())/ 1023.0;
enable_interrupts(int_rda);
bFloat=0;
} // fin primer if
} // fin while
} // fin Main()
//*************************************************************