Displaying temperature Setpoints


Closed Thread
Results 1 to 40 of 59

Hybrid View

  1. #1
    Join Date
    Nov 2003
    Location
    Wellton, U.S.A.
    Posts
    5,924


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by skimask View Post
    Now, I'll admit, sometimes there's only one way to do something, and sometimes there are hundreds of ways of doing something...but...
    http://www.picbasic.co.uk/forum/show...ight=down_loop
    See anything in there?
    There goes the benefit of doubt.
    Dave
    Always wear safety glasses while programming.

  2. #2
    Join Date
    Oct 2008
    Posts
    47


    Did you find this post helpful? Yes | No

    Default

    what's post #3 all about ski? Im using a 16f873.
    Last edited by Kalind; - 15th October 2008 at 20:02.

  3. #3
    skimask's Avatar
    skimask Guest


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by Kalind View Post
    what's post #3 all about ski? Im using a 16f873.
    Wow....first I've seen of it here...unlike those other 6 threads...

  4. #4
    Join Date
    Oct 2008
    Posts
    47


    Did you find this post helpful? Yes | No

    Exclamation

    well, this is what i managed to do. i hooked it up to my circuit but the program isnt doing what i wanted it to do. Skimask?

    /code

    Define LCD_DREG PORTB
    Define LCD_DBIT 0
    Define LCD_RSREG PORTB
    Define LCD_RSBIT 5
    Define LCD_EREG PORTB
    Define LCD_EBIT 4
    DEFINE LCD_BITS 4
    DEFINE LCD_LINES 2

    mode var byte
    keyin var byte
    adval var word
    tempc var word
    highpt var byte
    lowpt var byte
    up var portc.0
    down var portc.1
    sethighp var portc.2
    setlowp var portc.3
    maindisp var portc.4
    trisc=$ff
    trisa=$ff

    adcon1=$82
    adcon0=$c1
    pause 100

    mode = 1
    lcdout $fe , 1
    goto main

    getkey:
    pause 50
    keyin = portc
    return

    gettemp:
    adcon0.2=1
    pause 1

    checkdone:
    if adcon0.2=1 then checkdone

    adval.highbyte=adresh
    adval.lowbyte=adresl
    tempc=(50*adval)/100
    return

    main:

    gosub gettemp

    gosub getkey

    'saving part
    if maindisp = 1 then
    write 0 , sethighp
    pause 10
    write 1 , sethighp
    mode = 1

    endif

    if sethighp = 1 then mode = 2
    if setlowp = 1 then mode = 3

    select case mode

    case 1
    lcdout $fe , $80 , "Temp = ", DEC3 tempc , $DF , "C"

    case 2
    lcdout $fe , $80 , "High Sp=" , $fe , $c0 , highpt
    if up = 1 then highpt = highpt + 1
    if down = 1 then highpt = highpt - 1

    case 3
    lcdout $fe , $80 , "Low Pt=" , $fe , $c0 , lowpt
    if up = 1 then lowpt = lowpt + 1
    if down = 1 then lowpt = lowpt - 1
    end select
    goto main
    Last edited by Kalind; - 20th October 2008 at 14:02.

  5. #5
    skimask's Avatar
    skimask Guest


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by Kalind View Post
    well, this is what i managed to do.
    Looks like it's pretty much what I managed to do...

    i hooked it up to my circuit but the program isnt doing what i wanted it to do.
    It might help for you to tell us exactly what it IS or isn't doing...

  6. #6
    Join Date
    Oct 2008
    Posts
    47


    Did you find this post helpful? Yes | No

    Unhappy

    taking your advice with the program, i hooked it up and on the lcd it prompts the user to enter a LOW SP. upon the use of the increment decrement buttons, on the second line of the lcd are characters which are being displayed. when the 'main' button is pressed, it does not go to the main display and also when the HighSp button is pressed, it does not go to that screen. im so lost with this whole thing

  7. #7
    Join Date
    May 2008
    Location
    Italy
    Posts
    825


    Did you find this post helpful? Yes | No

    Default

    Put yours subrouteenes at the end of your code, never at the beginning!

    Modify your If then in the following manner:

    if maindisp = 1 then
    write 0 , sethighp
    pause 10
    write 1 , sethighp
    mode = 1
    maindisp = 0 ' reset flag
    endif

    Otherwise it will write at every cycle and in this case you do not need the " IF Then " statement. Set your flag to 1 when writing is needed

    Yours code for reading key:

    getkey:
    pause 50
    keyin = portc
    return

    You read the status of the all 8 inputs, than you need to decode to find which key has been pressed.


    More:

    Are you pulling up your inputs using normally closed switches? otherwise with this code you have to pull down your inputs.
    Al.
    Last edited by aratti; - 20th October 2008 at 15:23.

  8. #8
    skimask's Avatar
    skimask Guest


    Did you find this post helpful? Yes | No

    Default

    Ok, are you sure all of your buttons are working properly?

  9. #9
    skimask's Avatar
    skimask Guest


    Did you find this post helpful? Yes | No

    Default

    Humour me for a bit...
    Code:
    Define	LCD_DREG	PORTB
    Define	LCD_DBIT	0
    Define	LCD_RSREG	PORTB
    Define	LCD_RSBIT	5
    Define	LCD_EREG	PORTB
    Define	LCD_EBIT	4
    DEFINE LCD_BITS 4
    DEFINE LCD_LINES 2
    keyin var byte : trisc=$ff : pause 1000 : lcdout $fe,1
    main:   keyin = portc : lcdout $fe, $80, BIN8 keyin : goto main
    end
    Push the buttons, what happens?

  10. #10
    Join Date
    Oct 2008
    Posts
    47


    Did you find this post helpful? Yes | No

    Default

    should display binary number

  11. #11
    skimask's Avatar
    skimask Guest


    Did you find this post helpful? Yes | No

    Default

    Quote Originally Posted by Kalind View Post
    should display binary number
    And does it?

Similar Threads

  1. Write Onewire data toa I2C memory / read ASCI
    By Eugeniu in forum mel PIC BASIC Pro
    Replies: 67
    Last Post: - 16th November 2008, 20:19
  2. Displaying temperature using a -40 to 185F??
    By jblackann in forum mel PIC BASIC Pro
    Replies: 3
    Last Post: - 15th January 2008, 19:45
  3. Conversion problem
    By eva in forum mel PIC BASIC Pro
    Replies: 4
    Last Post: - 15th March 2007, 19:21
  4. Help for decimal conversion
    By eva in forum mel PIC BASIC Pro
    Replies: 2
    Last Post: - 15th March 2007, 19:20
  5. Serout "onewire.bas"
    By puru in forum mel PIC BASIC Pro
    Replies: 3
    Last Post: - 6th July 2005, 01:14

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