سلام دوستان
دارن برنامه ایی مینویسم که بتونم دما را با این کلید ها کم وزیاد کنم ولی برنامه کار نمیکنه یعنی اون قسمتی که قرمز رنگه تا وقتی من عبارت until نیاوردم خوبه ولی به محض اوردن هر عبارتی بعد از لوپ چه درت چه نادرست از حلقه خارج میشه
دارن برنامه ایی مینویسم که بتونم دما را با این کلید ها کم وزیاد کنم ولی برنامه کار نمیکنه یعنی اون قسمتی که قرمز رنگه تا وقتی من عبارت until نیاوردم خوبه ولی به محض اوردن هر عبارتی بعد از لوپ چه درت چه نادرست از حلقه خارج میشه
کد:
$regfile = "m32def.dat"
$crystal = 4000000
Config Porta.0 = Output
Config Porta.1 = Input
Config Porta.2 = Input
Config Porta.3 = Input
Dim Temp1 As Byte
Dim Hum1 As Byte
Dim Etemp1 As Eram Byte
Dim Ehum1 As Eram Byte
Dim Temp2 As Byte
Dim Hum2 As Byte
Dim Etemp2 As Eram Byte
Dim Ehum2 As Eram Byte
Dim A As Byte
Dim B As Byte
Dim Ea As Eram Byte
Dim D As Byte
D = 0
Config Int0 = Rising
Enable Interrupts
Enable Int0
On Int0 Menu
Config Debounce = 30
Config Timer0 = Timer , Prescale = 8
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Pinc.3 , Db5 = Pinc.2 , Db6 = Pinc.1 , Db7 = Pinc.0 , E = Pinc.4 , Rs = Pinc.5
Cursor Off
Deflcdchar 0 , 14 , 10 , 14 , 32 , 32 , 32 , 32 , 32
Deflcdchar 1 , 226 , 230 , 238 , 254 , 238 , 230 , 226 , 224
Dim T1 As String * 16
Dim Code As Byte
Dim H1 As String * 16
Dim T2 As String * 16
Dim H2 As String * 16
Dim C As Byte
C = 1
A = 1
Do
Incr C
Cls
Lcd C
Waitms 200
Loop
End
Menu:
Cls
Lcd "select parameter"
Waitms 1000
Cls
Locate 1 , 1
Lcd "temp1?"
Locate 2 , 1
Lcd "temp2?"
Locate 1 , 10
Lcd "hum1?"
Locate 2 , 10
Lcd "hum2?"
Gosub Submenu
Return
Submenu:[color=red]
Do[color=red]
Debounce Pina.3 , 1 , Down
Debounce Pina.1 , 1 , Khoroj
Loop Until D = 1
D = 0[/color][/color]
If A = 1 Then
Gosub Temp1t
Elseif A = 2 Then
Gosub Temp2t
Elseif A = 3 Then
Gosub Hum1t
Elseif A = 4 Then
Gosub Hum2t
End If
Return
'-----------------------------------------------------------------------------
Down:
If A = 1 Then
Incr A
Locate 2 , 7
Lcd " "
Locate 1 , 15
Lcd " "
Locate 2 , 15
Lcd " "
Locate 1 , 7
Lcd Chr(1)
Elseif A = 2 Then
Incr A
Locate 1 , 7
Lcd " "
Locate 1 , 15
Lcd " "
Locate 2 , 15
Lcd " "
Locate 2 , 7
Lcd Chr(1)
Elseif A = 3 Then
Incr A
Locate 1 , 7
Lcd " "
Locate 2 , 7
Lcd " "
Locate 2 , 15
Lcd " "
Locate 1 , 15
Lcd Chr(1)
Elseif A = 4 Then
Incr A
Locate 1 , 7
Lcd " "
Locate 1 , 15
Lcd " "
Locate 2 , 7
Lcd " "
Locate 2 , 15
Lcd Chr(1)
Elseif A > 4 Then
A = 1
End If
Goto Submenu
'-------------------------------------------------------------------------
Temp1t:
Temp1 = Etemp1
Cls
Lcd "temp1="
Lcd Temp1
Do
Debounce Pina.2 , 1 , Afzayesh
Debounce Pina.3 , 1 , Kahesh
Loop Until Pina.1 = 1
Return
Afzayesh:
Incr Temp1
Etemp1 = Temp1
Cls
Lcd "temp1="
Lcd Temp1
Return
Kahesh:
Decr Temp1
Etemp1 = Temp1
Cls
Lcd "temp1="
Lcd Temp1
Return
'-----------------------------------------------------------------------
Temp2t:
Temp2 = Etemp2
Cls
Lcd "temp2="
Lcd Temp2
Do
Debounce Pina.2 , 1 , Afzayesh2
Debounce Pina.3 , 1 , Kahesh2
Loop Until Pina.1 = 1
Return
Afzayesh2:
Incr Temp2
Etemp2 = Temp2
Cls
Lcd "temp2="
Lcd Temp2
Return
Kahesh2:
Decr Temp2
Etemp2 = Temp2
Cls
Lcd "temp2="
Lcd Temp2
Return
'----------------------------------------------
Hum1t:
Hum1 = Ehum1
Cls
Lcd " hum1="
Lcd Hum1
Do
Debounce Pina.2 , 1 , Afzayesh3
Debounce Pina.3 , 1 , Kahesh3
Loop Until Pina.1 = 1
C = 0
Waitms 100
Return
Afzayesh3:
Incr Hum1
Ehum1 = Hum1
Cls
Lcd "hum1="
Lcd Hum1
Return
Kahesh3:
Decr Hum1
Ehum1 = Hum1
Cls
Lcd "hum1="
Lcd Hum1
Ehum1 = Hum1
Return
'------------------------------------------------
Hum2t:
Hum2 = Ehum2
Cls
Lcd "hum2="
Lcd Hum2
Do
Debounce Pina.2 , 1 , Afzayesh4
Debounce Pina.3 , 1 , Kahesh4
Loop Until Pina.1 = 1
Waitms 100
Return
Afzayesh4:
Incr Hum2
Ehum2 = Hum2
Cls
Lcd "hum2="
Lcd Hum2
Return
Kahesh4:
Decr Hum2
Ehum2 = Hum2
Cls
Lcd "hum2="
Lcd Hum2
Return
Khoroj:
Incr D
Return


دیدگاه