سلام دوستان
دارن برنامه ایی مینویسم که بتونم دما را با این کلید ها کم وزیاد کنم ولی برنامه کار نمیکنه یعنی اون قسمتی که قرمز رنگه تا وقتی من عبارت 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

دیدگاه