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?![]()
what's post #3 all about ski? Im using a 16f873.
Last edited by Kalind; - 15th October 2008 at 19:02.
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 13:02.
Humour me for a bit...
Push the buttons, what happens?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
Bookmarks