Whers is the typo'


Results 1 to 8 of 8

Threaded View

  1. #2
    Join Date
    Aug 2006
    Location
    Look, behind you.
    Posts
    2,818


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by Sneaky-geek View Post
    Hello all,
    I hate to do this, I have to ask for help. I can't get PORT D to work properly.
    Gear used:
    PBP V2.50b
    MCS Plus
    PIC 16f877a
    MELABS USB PROGRAMMER
    PICPROTO 64

    Program causing me toloose my sanity (what little I had):

    '************************************************* ***************
    '* Name : BCD True and Complimentary Switch Decoder *
    '* with 7segement LED display *
    '* *
    '* Author : Terry L.Garrett K9HA *
    '* Notice : Copyright (c) 2008 Terry L. Garrett *
    '* : All Rights Reserved *
    '* Date : 10/4/2008 *
    '* Version : 3.0 *
    '* Notes : 7 Segment LED display TEST *
    '* : Correct display for 0 to F HEX *
    '************************************************* ***************
    '************************************************* ***************
    ' PURPOSE:
    ' Read and display BCD 4 bit bcd switches, both TRUE AND COMPLIMENTARY
    '
    ' * * * System Defines * * *
    '
    '
    @ DEVICE pic16f877a, CPD_OFF
    @ DEVICE pic16f877a, PROTECT_OFF
    @ DEVICE pic16f877a, WRT_OFF
    '
    DEFINE OSC 4
    ADCON1=7 ' SETS PORTS AS ALL DIGITAL( I HOPE)
    '
    '????????????????????????????????????????????????? ????????????
    '
    INTCON=0 'I Think this turns off ALL INTERUPTS FOR PORTB????
    '
    '????????????????????????????????????????????????? ?????????????
    '
    '************************************************* ***************
    '
    ' Variable Descritptions:
    '
    ' NAME # bits location I/O Description
    ' Type 1 PortD0 IN LOW for TRUE
    ' HIGH for COMPLEMENTARY
    ' PortD.0 1 Program BIT VAR BIT
    '
    '************************************************* ***************
    '
    ' * * * VARIABLE DECLARATIONS * * *
    '
    ' NOTICE: bin2binary subroutine(s) are from melabs website
    ' Thank you, melabs
    '************************************************* *****************
    '
    B0 var byte 'Used in subroutine to generate LED Segment data
    'B1 var byte 'Used in subroutine to generate LED Segment data
    Type var BIT 'PortD.0
    '
    '************************************************* ***************
    ' DEVICE SET-UP
    '
    CLEAR ' Is this the proper place to put this?
    '
    TRISB=%11111111 ' ALL 8 BITS SET AS INPUT: HOEVER ONLY LOWER 4 REALLY USED.
    ' ' *** GROUND BITS 4-7 ***
    '
    PortB=%11111111 ' ALL BIT PRELOADED TO 1. Known condition.
    '
    TRISC=%00000000 'ALL BITS SET AS OUTPUT ( BITS 0-6: LED SEGMENTS 1-7
    '
    PortC=%11111111 'ALL BITS preloaded as HIGH (LED DISPLAY IS OFF)
    '
    TRISE.4=%0 ' Makes Port D DIGITAL I/O?
    '
    TRISD=%11111111 ' Ground bits 1-7
    '
    PortD.0=%0 ' PORTD.0 preloaded to ZERO (LOW). Known condition
    tYPE = PortD.0 ' Se
    '
    Main:
    while Type <1
    B0=PortB
    gosub lowloop
    wend
    '
    'while type = 1
    'gosub Highloop
    'wend
    goto main ' This should cause constant reading/input from PORTB
    '
    '************************************************* *************************
    '
    LowLoop:

    ' B0 = B1 ' Pass the PORTB data
    Gosub bin2seg ' Convert to segment value
    Poke PortC, B0 ' Put segment values out to LED
    Pauseus 1 ' Display it for 1 microsecond
    Poke PortC,$1E ' Turns off display
    pauseus 1 ' Display is OFF for 1 microsecond
    return ' RETURNS to MAIN; gets next PORTB data

    ' ************************************************** *****
    ' ************* 2nd level soubroutines follow ******************
    ' Convert binary number in B0 to segments for LED
    bin2seg: Lookup B0,[$40,$79,$24,$30,$19,$12,$02,$78,$00,$18,$88,$83,$C 6,$A1,$86,$8E],B0
    Return
    END
    ' CLEAN COMPILE 145 WORDS USED 10/04/2008 06:00:00 PM CDT
    '
    ' * note to self: this worked until you added the PORTD code, the wend while
    ' argument.
    '
    ' *!*! This don't work correctly




    Where did I go wrong?
    I know that a few will say RTFM, Ha Ihave and my wife says if I stay up late one more night
    that I can sleep with the dogs. I DO NOT HAVE A DOG.
    OK first a question, define not working properly?
    now what I see:
    Set port latches before the tris registers ' thanks Bruce.
    adcon1 = 6 " or %000000110 ' seven will work but 6 is proper here data sheet says 0000011x
    Clear works but so does calling your wife "hey You" better way is myVar = 0 MyVar2 = 0 . .
    Check your lookup table, looks like you are reading a variable and then trying to store the lookup result in the same var, better lookup B0[ data . . .] B1 b0 = b1
    Oh BTW re:RTFM
    read it to the children at bedtime, they will go to sleep fast!
    Last edited by Archangel; - 5th October 2008 at 01:45.
    If you do not believe in MAGIC, Consider how currency has value simply by printing it, and is then traded for real assets.
    .
    Gold is the money of kings, silver is the money of gentlemen, barter is the money of peasants - but debt is the money of slaves
    .
    There simply is no "Happy Spam" If you do it you will disappear from this forum.

Similar Threads

  1. PIC16F877A - Timer0 won't interrupt
    By WishMaster^ in forum mel PIC BASIC Pro
    Replies: 19
    Last Post: - 25th April 2007, 08:25
  2. Crystalfontz LCD
    By jman12 in forum mel PIC BASIC Pro
    Replies: 9
    Last Post: - 9th February 2007, 15:04
  3. Bit variables... typo?
    By Tomexx in forum mel PIC BASIC Pro
    Replies: 6
    Last Post: - 29th November 2004, 18:11

Members who have read this thread : 0

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