Connect with us

Help pls..emergency abt pic program

Discussion in 'Misc Electronics' started by [email protected], Apr 6, 2007.

Scroll to continue with content
  1. Guest

    hello everyone
    This is Monicca doing my final yr of engnr.I have done my project in
    embedded sys with pic micocontroller.I downloaded the program from net
    n i dnt understand anything.I have my review on thursday.So pls can
    anyone suggest a website for the better understandin of the
    program..pls I really need help..
    Now this is the program..
    #include <pic.h>
    #include <stdio.h>
    #include <delay10.c>

    static void interrupt IntRoutine();
    void Send();
    short int Flg=0;
    int Cnt = 0,Oflow=0,Mytime=0,Adval,Hbc,Hbr;
    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;

    }

    }
     
  2. Tsk, tsk...are you trolling or genuinely clueless? Engineering is a
    profession, you know...not just memorizing dead facts. I suggest you
    withdraw from Engineering and take up some profession such as staffing a
    bureaucracy somewhere, where you're never required to know anything or
    come up with a practical answer on time. Your entire coursework was
    designed to impart to you the understanding you needed to complete the
    course, had you done the work.

    Which Engineering school are you attending? I'd like to complain to
    them that they are not teaching their students any ethics, along with
    the technical side of the course work. There's an old saying that
    "technical competence is a dime-a-dozen" but someone who can manage
    technical projects and produce results on-time will never lack for work.


    Bill
     
  3. nospam

    nospam Guest

    How do you know the OP is a woman?

    What I think we should be noticing is a much larger proportion of people
    being pushed into further education. I don't see any reason for a
    proportional rise in aptitude so I would not be surprised to find more are
    floundering.

    --
     
Ask a Question
Want to reply to this thread or ask your own question?
You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.
Electronics Point Logo
Continue to site
Quote of the day

-