$regfile = "m16def.dat"
$crystal = 8000000
'///////////////////////////////////////////////////////////////////////////////
Dim Jack_delay As Byte
Dim Role_delay As Byte
Dim Check As Byte
Dim A As Byte
Dim Flag As Byte
Dim Number As Byte
Dim Temp As Word
Dim Final As Word
Dim Temp_1 As Integer
Dim Set_point As Byte
Dim Modes As String * 4
Deflcdchar 0 , 1 , 12 , 18 , 16 , 16 , 18 , 12 , 32
'\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Config Portc = Input
Config Pina.0 = Input
Config Portd.5 = Output
Config Portd.6 = Output
Config Portd.7 = Output
'\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Starts Alias Pinc.0
Stops Alias Pinc.1
Menu Alias Pinc.2
Incrs Alias Pinc.3
Decrs Alias Pinc.4
Swup Alias Pinc.5
Swdown Alias Pinc.6
Heater Alias Portd.5
Role Alias Portd.6
Jack Alias Portd.7
Portc = &B11111111
Portd = &B00011111
'\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Config Timer0 = Timer , Prescale = 8
Enable Interrupts
Enable Timer0
Timer0 = 0
Stop Timer0
Start Timer0
On Timer0 Steps
Config Adc = Single , Prescaler = Auto , Reference = Avcc
'\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Cursor Off : Cls : Start Adc
Main:
Readeeprom Jack_delay , 1
Readeeprom Role_delay , 2
Readeeprom Number , 3
Readeeprom Set_point , 4
Do
Home
Delay
Lcd Modes
Locate 1 , 6
Lcd "No="
Lcd Number
Lcd " "
Locate 2 , 1
Lcd "T="
Lcd Temp_1
Lcd Chr(0)
Lcd " "
If Temp_1 > Set_point Then
Lcd "HEATER OFF"
Lcd " "
Else
Lcd "HEATER ON"
Lcd " "
End If
[color=#FF69B4]If Starts = 0 And Swup = 0 Then
Set Jack
Bitwait Swdown , Reset
Waitms Jack_delay
Reset Jack
Set Role
Waitms Role_delay
Reset Role
Decr Number
Writeeeprom Number , 3
End If[/color]
Loop
Steps:
Incr Check
Select Case Check
Case 1[color=#FF69B4] :
Stop Timer0 : Timer0 = 0
Modes = ""
Modes = "RUN"
If Stops = 0 Then
Reset Jack
Reset Role
Reset Swdown
End If
Start Timer0
[/color]
'**********************************<<TERMOMETER UNIT>>**************************
Case 2:
Stop Timer0 : Timer0 = 0 : Incr Flag
Temp = Getadc(0)
Final = Temp + Final
If Flag = 200 Then
Temp_1 = Final / 200
Temp_1 = Temp_1 / 2
Flag = 0 : Final = 0
End If
If Temp_1 > Set_point Then
Heater = 0
Else
Heater = 1
End If
Start Timer0
'*******************************<<SETTING>>*************************************
Case 3:
Stop Timer0 : Timer0 = 0 : Stop Adc
If Menu = 0 Then
Incr A
Waitms 5
If A = 200 Then
Cls : Cls : Locate 1 , 5 : Lcd "SETTING" : Waitms 400 : Cls
Do
Home : Lcd "JACK=" ; Jack_delay ; "s" : Lcd " "
Waitms 250
If Incrs = 0 Then : Jack_delay = Jack_delay + 50 : End If
If Decrs = 0 Then : Jack_delay = Jack_delay - 50 : End If
Writeeeprom Jack_delay , 1 : Waitms 35
Loop Until Menu = 0
Waitms 350
Do
Home : Locate 2 , 1 : Lcd "ROLE=" ; Role_delay ; "s" : Lcd " "
Waitms 250
If Incrs = 0 Then : Role_delay = Role_delay + 50 : End If
If Decrs = 0 Then : Role_delay = Role_delay - 50 : End If
Writeeeprom Role_delay , 2 : Waitms 35
Loop Until Menu = 0
Waitms 350
Do
Home : Locate 1 , 11 : Lcd "No=" ; Number : Lcd " "
Waitms 250
If Incrs = 0 Then : Number = Number + 1 : End If
If Decrs = 0 Then : Number = Number - 1 : End If
Writeeeprom Number , 3 : Waitms 35
Loop Until Menu = 0
Waitms 350
Do
Home : Locate 2 , 11 : Lcd "T=" ; Set_point : Lcd Chr(0) : Lcd " "
Waitms 250
If Incrs = 0 Then : Set_point = Set_point + 1 : End If
If Decrs = 0 Then : Set_point = Set_point - 1 : End If
Writeeeprom Set_point , 4 : Waitms 35
Loop Until Menu = 0
Cls
Cls
End If
Else
A = 0
End If
Check = 0
Start Adc : Start Timer0
End Select
[/