Interfacing GPS receiver module with PIC16F876


Results 1 to 5 of 5

Threaded View

  1. #1
    theblackhourse's Avatar
    theblackhourse Guest

    Default Interfacing GPS receiver module with PIC16F876

    hi all

    iam trying send an sms containing the GPS coordinates by connecting both using
    pic 16f876 i found the circute and the code but it steel not working and i really don't know why.i have tryed all the AT commands on the hyperterminal and it is working good.that is the circuit and the code.

    below the code and the circuit
    ************************


    define OSC 20
    device 16f876a ,hs_osc,wdt_off, BOD_ON, pwrt_on, lvp_off, protect_on

    DEFINE HSER_RCSTA 90h
    DEFINE HSER_TXSTA 24h
    DEFINE HSER_SPBRG 64
    DEFINE HSER_CLROERR 1


    Led1 var portb.6
    Led2 var portb.7
    GPS var portb.4

    high Led1
    high Led2

    counter1 var byte
    dim RX[64] as byte
    dim TX[21] as byte
    dim charcount as byte
    dim txcounter as byte
    dim rxcounter as byte
    dim temp1 as byte
    dim temp2 as byte




    RX[1]="$"
    RX[2]="G"
    RX[3]="P"
    RX[4]="R"
    RX[5]="M"
    RX[6]="C"
    RX[7]=","
    '131532
    RX[14]=","
    'A
    RX[16]=","
    '3048.34
    RX[24]=","

    RX[26]=","

    RX[35]=","

    RX[37]=","

    RX[43]=","

    RX[49]=","

    RX[56]=","

    RX[62]=","

    COUNTER1=0

    PAUSE 2000

    CHECKMOBILE:

    hserout ["at",13]

    hserin 1000,checkmobile,[wait("ok")]

    low Led1

    pause 1000

    mainloop:

    high Led2

    serin2 GPS,188,[wait("RMC,"),RX[8],RX[9],RX[10],RX[11],RX[12],RX[13],_
    wait(","),RX[15],_
    wait(","),RX[17],RX[18],RX[19],RX[20],RX[21],RX[22],RX[23],_
    wait(","),RX[25],_
    wait(","),RX[27],RX[28],RX[29],RX[30],RX[31],RX[32],RX[33],Rx[34],_
    wait(","),RX[36],_
    wait(","),RX[38],RX[39],RX[41],RX[41],RX[42],_
    wait(","),RX[44],RX[45],RX[46],RX[47],RX[48],_
    wait(","),RX[50],RX[51],RX[52],RX[53],RX[54],RX[55],_
    wait(","),RX[57],RX[58],RX[59],RX[60],RX[61],_
    wait(","),RX[63]]



    low Led2

    For Counter1 = 1 To 40

    Toggle led2
    Pause 100
    Next

    Low Led2

    Pause 1000

    send:

    Txstatus2:

    HIGH led1
    hserout ["AT",13]

    HSerin 1000,Txstatus2,[wait("ok")]

    Low Led1
    pause 500
    Counter1 = 0

    txstatus3:
    High Led1
    HSerout ["AT+CMGS=140",13]
    HSerin 1000,txstatus3,[wait(">")]
    LOW Led1
    Pause 500

    transmit3:
    high Led1

    HSerout ["0011000a8110121723750000aa3f"]

    charcount = 1

    FOR Counter1 = 1 TO 8
    txcounter = 0
    '______________________________
    TX[txcounter] = rx[charcount]
    temp1 = tx[txcounter]
    charcount = charcount + 1
    Temp2 = RX [charcount]
    temp1.7 = temp1.7 OR temp2.0
    TX[txcounter] = temp1
    txcounter = txcounter + 1

    '_______________________________

    temp2 = temp2 >> 1
    temp1=temp2
    charcount = charcount + 1
    temp2 = RX[charcount]
    temp1.7 = temp1.7 OR temp2.2
    temp1.1 = temp1.6 OR temp2.1
    temp1.5 = temp1.5 OR temp2.0
    TX[txcounter] = temp1
    txcounter = txcounter + 1
    '_______________________________

    temp2 = temp2 >> 2
    temp1 = temp2
    charcount = charcount + 1
    temp2 = rx[charcount]
    temp1.7 = temp1.7 OR temp2.2
    temp1.6 = temp1.6 OR temp2.1
    temp1.5 = temp1.5 OR temp2.0
    tx[txcounter] = temp1
    txcounter = txcounter + 1
    '_______________________________

    temp2 = temp2 >> 3
    temp1 = temp2
    charcount = charcount + 1
    temp2 = rx[charcount]
    temp1.7 = temp1.7 OR temp2.3
    temp1.6 = temp1.6 OR temp2.2
    temp1.5 = temp1.5 OR temp2.1
    temp1.4 = temp1.4 OR temp2.0
    tx[txcounter] = temp1
    txcounter = txcounter + 1
    '_________________________________

    temp2 = temp2 >> 4
    temp1 = temp2
    charcount = charcount + 1
    temp2 = rx[charcount]
    temp1.7 = temp1.7 OR temp2.4
    temp1.6 = temp1.6 OR temp2.3
    temp1.5 = temp1.5 OR temp2.2
    temp1.4 = temp1.4 OR temp2.1
    temp1.3 = temp1.3 OR temp2.0
    tx[txcounter] = temp1
    txcounter = txcounter + 1
    '__________________________________

    temp2 = temp2 >> 5
    temp1 = temp2
    charcount = charcount + 1
    temp2 = rx[charcount]
    temp1.7 = temp1.7 OR temp2.5
    temp1.6 = temp1.6 OR temp2.4
    temp1.5 = temp1.5 OR temp2.3
    temp1.4 = temp1.4 OR temp2.2
    temp1.3 = temp1.3 OR temp2.1
    temp1.2 = temp1.2 OR temp2.0
    tx[txcounter] = temp1
    txcounter = txcounter + 1
    '__________________________________

    temp2 = temp2 >> 6
    temp1 = temp2
    charcount = charcount + 1
    temp2 = rx[charcount]
    temp1.7 = temp1.7 OR temp2.6
    temp1.6 = temp1.6 OR temp2.5
    temp1.5 = temp1.5 OR temp2.4
    temp1.4 = temp1.4 OR temp2.3
    temp1.3 = temp1.3 OR temp2.2
    temp1.2 = temp1.2 OR temp2.1
    temp1.1 = temp1.1 OR temp2.0
    tx[txcounter] = temp1
    txcounter = txcounter + 1

    charcount = charcount + 1

    HSerout [HEX2 TX[0], HEX2 TX[1], HEX2 TX[3],HEX TX[4],HEX2 TX[5],HEX2 TX[6]]

    NEXT

    HSerout [26]

    low Led1

    Pause 60000

    GOTO mainloop
    Attached Images Attached Images  

Similar Threads

  1. Replies: 0
    Last Post: - 17th June 2009, 03:55
  2. Replies: 1
    Last Post: - 27th July 2008, 06:14
  3. Replies: 4
    Last Post: - 15th May 2008, 09:43
  4. interfacing gps receiver with 16f877a
    By sakhyvava in forum GPS
    Replies: 1
    Last Post: - 27th September 2006, 09:13
  5. GPS Receiver
    By lester in forum Adverts
    Replies: 2
    Last Post: - 22nd February 2006, 12:47

Members who have read this thread : 2

You do not have permission to view the list of names.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts