can anyone pls explain this program to me?its an emergency n this is very important for my final yr engnr project.I need the explaination by thursday.so pls help..
#include
#include
#include
static void interrupt IntRoutine();
void Send();
short int Flg=0;
int Cnt = 0,Oflow=0,Mytime=0,Adval,Hbc,H...
char St1[4],St2[4],St4[3];
void main()
{
TRISB = 0x00;
PORTB = 0x00;
TRISD = 0x00;
PORTD = 0x00;
TRISE = 0x00;
TRISC = 0xbf;
ADCON0 = 0x81;
ADCON1 = 0x82;
SPBRG = 64;
TXEN = 1;
SYNC = 0;
BRGH = 1;
SPEN = 1;
CREN = 1;
DelayMs(200);
DelayMs(200);
DelayMs(200);
DelayMs(200);
DelayMs(200);
LCD_SendCmd(0x01);
LCD_SendCmd(0x80);
LCD_puts("Ebc:");
LCD_SendCmd(0x88);
LCD_puts("Tim:");
LCD_SendCmd(0xc3);
LCD_puts("Ebr: Bpm");
T1CON = 0x00; // Enable Timer1
PEIE = 1;
GIE = 1;
TMR1IF = 0;
TMR1IE = 1;
TMR1L = 0xaf;
TMR1H = 0x3c;
TMR1ON = 1;
for(;;)
{
if(Oflow)
{
Oflow = 0;
Mytime++;
}
ADCON0 = 0x81;
DelayUs(50);
ADGO = 1;
while(ADGO) continue;
Adval = (ADRESH * 256) + ADRESL;
if(Adval < 100 && Flg == 0)
{
Hbc++;
Flg = 1;
}
if(Adval > 100 && Flg == 1)
{
Flg = 0;
}
if(Mytime > 3 && Mytime < 60) RD0 = 0;
if(Mytime >= 60)
{
Mytime = 0;
Ebr = Ebc;
if(Ebc > 15)
{
RD0 = 1;
}
Ebc = 0;
}
sprintf(St1,"%3d",Ebc);
LCD_SendCmd(0x84);
LCD_puts(St1);
sprintf(St2,"%3d",Ebr);
LCD_SendCmd(0xc8);
LCD_puts(St2);
sprintf(St4,"%02d",Mytime);
LCD_SendCmd(0x8c);
LCD_puts(St4);
Send();
DelayMs(2);
}
}
static void interrupt IntRoutine()
{
if(TMR1IF)
{
TMR1IF = 0;
Cnt++;
if(Cnt >= 50)
{
Cnt = 0;
Oflow = 1;
}
TMR1ON = 0;
TMR1L = 0xaf;
TMR1H = 0x3c;
TMR1ON = 1;
}
2007-04-06
14:45:52
·
3 answers
·
asked by
Anonymous
in
Engineering