سلام
اساتید گرامی لطف کنید بگید مشکل این برنامه چیه که کامپایل نمیکنه؟
گیج شدم :sad:
اساتید گرامی لطف کنید بگید مشکل این برنامه چیه که کامپایل نمیکنه؟
گیج شدم :sad:
کد:
$regfile = "m32def.dat" $crystal = 8000000 $baud = 9600 Config Lcdpin = Pin , Db4 = Porta.4 , Db5 = Porta.5 , Db6 = _ Porta.6 , Db7 = Porta.7 , E = Porta.2 , Rs = Porta.0 Config Lcd = 16 * 2 Config Int0 = Falling Config Int1 = Falling Enable Interrupts Enable Int0 Enable Int1 Enable Urxc On Int0 Ex0_rut On Int1 Ex1_rut On Urxc Intlab '----------------------------------- Declare Function Search_eeprom()as Byte Declare Function Check_in() As Byte Declare Function Set_up() As Byte Declare Function Yes_no() As Byte Declare Function Delet_eeprom(byval Block_number As Byte) As Byte Declare Function Show_eeprom(byval Block_number1 As Byte) As Byte Declare Function Write_eeprom(byval Block_number2 As Byte) As Byte '----------------------------------- Door_open Alias Portd.6 Alarm Alias Portd.7 Yes_pin Alias Pinc.2 No_pin Alias Pinc.3 '----------------------------------- Ddrd = &HC0 Ddrc = &H00 '----------------------------------- Dim S(15) As Byte Dim S1(10) As Byte Dim Test(10) As Byte Dim Data_base(100) As Eram Byte Dim Valid_id As Byte , I As Byte , J As Byte Dim I1 As Byte , Temp As Byte Dim Ss As String * 10 Dim Yes_no_check As Byte , C As Byte , D As Byte Dim Start_flag As Bit , Read_flag As Bit Dim Up_down_flag As Bit , Usart_flag As Bit '----------------------------------- I = 1 Usart_flag = 1 Alarm = 1 Door_open = 0 Cursor Off D = Check_in() Do If Read_flag = 1 Then Read_flag = 0 Usart_flag = 0 C = Pinc And &H03 Select Case C '---------------------------------check in Mode Case 0: For J = 1 To 10 S1(j) = S(j + 1) Next J Valid_id = Search_eeprom() If Valid_id >= 0 And Valid_id < 10 Then Door_open = 1 Alarm = 0 Cls Lcd "Valid Card>NO." ; Valid_id Lowerline For J = 1 To 10 Lcd String(1 , S1(j)) Next J Waitms 100 Alarm = 1 Waitms 3000 Door_open = 0 D = Check_in() Else Cls Lcd "Invalid Card!" Waitms 2000 D = Check_in() End If '----------------------------------Setup Mode Case 3: For J = 1 To 10 S1(j) = S(j + 1) Next J Valid_id = Search_eeprom() If Valid_id >= 0 And Valid_id < 10 Then '---------------------------------------Exist Card Cls Lcd "Already Exist:" Lowerline Lcd "NO." ; Valid_id ; " " For J = 1 To 10 Lcd String(1 , S1(j)) Next J Waitms 3000 Lowerline Lcd " " Lowerline Lcd "Delete it? Y/N" Yes_no_check = Yes_no() If Yes_no_check = 1 Then D = Delet_eeprom(valid_id) Cls Lcd "Block No: " ; Valid_id Lowerline Lcd "Delete Complete!" Waitms 3000 D = Set_up() Elseif Yes_no_check = 0 Then Cls Lcd "No delete!" Waitms 3000 D = Set_up() End If Else '---------------------------------------New Card Cls Lcd "New Card:" Lowerline Lcd "Save it? Y/N" Yes_no_check = Yes_no() If Yes_no_check = 1 Then Cls Lcd "Select Block:" Lowerline Lcd "Using UP/DOWN..." Waitms 2000 Up_down_flag = 1 Valid_id = 0 D = Show_eeprom(valid_id) Yes_no_check = Yes_no() Up_down_flag = 0 If Yes_no_check = 1 Then D = Write_eeprom(valid_id) Cls Lcd "Block No: " ; Valid_id Lowerline Lcd "Save Complete!" Waitms 3000 D = Set_up() Else Cls Lcd "No save!" Waitms 2000 D = Set_up() End If Elseif Yes_no_check = 0 Then Cls Lcd "No save!" Waitms 2000 D = Set_up() End If End If '-------------------------Not Allow Mode Case Else: Cls Lcd "Not Allow!" Waitms 2000 D = Check_in() End Select End If Usart_flag = 1 Loop End '----------------------------------- Ex0_rut: Dim R1 As Byte , T1 As Byte If Up_down_flag = 1 Then Waitus 200 If Pind.2 = 0 Then If Valid_id < 9 Then Incr Valid_id Cls Lcd "Block No>" ; Valid_id Lowerline Lcd "ID>" For R1 = 1 To 10 T1 = Valid_id * 10 T1 = T1 + R1 Lcd String(1 , Data_base(t1)) Next R1 End If End If End If Return '----------------------------------- Ex1_rut: Dim R2 As Byte , T2 As Byte If Up_down_flag = 1 Then Waitus 200 If Pind.3 = 0 Then If Valid_id > 0 Then Decr Valid_id Cls Lcd "Block No>" ; Valid_id Lowerline Lcd "ID>" For R2 = 1 To 10 T2 = Valid_id * 10 T2 = T2 + R2 Lcd String(1 , Data_base(t2)) Next R2 End If End If End If Return '----------------------------------- Intlab: Dim Usart_data As Byte Usart_data = Udr If Usart_flag = 1 Then If Usart_data = &H02 Then Start_flag = 1 If Start_flag = 1 And I <= 15 Then S(i) = Usart_data Incr I End If If Usart_data = &H03 Then Start_flag = 0 Read_flag = 1 I = 1 End If End If Return '----------------------------------- Function Check_in() As Byte Cls Lcd "Welcome:" Lowerline Lcd ">>> Check in <<<" End Function '----------------------------------- Function Set_up() As Byte Cls Lcd "Setup:" Lowerline Lcd ">>Insert Card<<" End Function '----------------------------------- Function Yes_no() As Byte Dim Yes_no_ret As Byte Yes_no_ret = 0 While Yes_pin = No_pin Waitus 50 Wend If Yes_pin = 0 Then Yes_no_ret = 1 End If Yes_no = Yes_no_ret End Function '----------------------------------- Function Delet_eeprom(byval Block_number As Byte) As Byte For I1 = 1 To 10 Temp = Block_number * 10 Temp = Temp + I1 Data_base(temp) = &HFF Next I1 End Function '----------------------------------- Function Search_eeprom()as Byte Dim K As Byte , P As Byte , Ret_val As Byte Dim Test_flag As Bit For P = 0 To 9 Ret_val = P Test_flag = 1 For K = 1 To 10 Temp = P * 10 Temp = Temp + K If S1(k) <> Data_base(temp) Then Ret_val = 20 Test_flag = 0 End If Next K If Test_flag = 1 Then Exit For Next P Search_eeprom = Ret_val End Function '----------------------------------- Function Show_eeprom(byval Block_number1 As Byte) As Byte Cls Lcd "Block No>" ; Block_number1 Lowerline Lcd "ID>" For I1 = 1 To 10 Temp = Block_number1 * 10 Temp = Temp + I1 Lcd String(1 , Data_base(temp)) Next I1 End Function
دیدگاه