اطلاعیه

Collapse
No announcement yet.

مشکل این برنامه کجاست؟

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    مشکل این برنامه کجاست؟

    سلام

    اساتید گرامی لطف کنید بگید مشکل این برنامه چیه که کامپایل نمیکنه؟
    گیج شدم :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

    #2
    پاسخ : مشکل این برنامه کجاست؟

    پیغام خطا می فرماید که تابع Write_eeprom موجود نیست و بنده خدا حق داره چون ننوشتی
    چرا ناراحتی پاتریک!
    + امروز ی بچه دیدم سرچهارراه گل میفروخت
    - از دیدنش ناراحت شدی؟
    + نه
    پس چی ناراحتت کرده
    + اینکه دیدن اینجور بچه ها انقدر واسم عادی شده که دیگه ناراحتم نمیکنه
    ------------------------------------------------------------------------------------------------------
    تاحالا فکر کردی بیسواد کیه؟- بی سواد یعنی کسی که نمیتونه ذهنیاتش رو عملی کنه!
    ------------------------------------------------------------------------------------------------------
    محصولات

    دیدگاه


      #3
      پاسخ : مشکل این برنامه کجاست؟

      بله جزء ارورهایی که داده بود هست ولی من هرکاری کردم نشد

      میشه شما لطف کنید کاملش کنید دوست عزیز

      دیدگاه


        #4
        پاسخ : مشکل این برنامه کجاست؟

        والا دوست عزیز اصلا نمی دونم قضیه برنامه ات چیه و مهمتر از اون فقط در همین حد وقت کردم!
        اگه تونستم چشم ولی قول نمیدم
        چرا ناراحتی پاتریک!
        + امروز ی بچه دیدم سرچهارراه گل میفروخت
        - از دیدنش ناراحت شدی؟
        + نه
        پس چی ناراحتت کرده
        + اینکه دیدن اینجور بچه ها انقدر واسم عادی شده که دیگه ناراحتم نمیکنه
        ------------------------------------------------------------------------------------------------------
        تاحالا فکر کردی بیسواد کیه؟- بی سواد یعنی کسی که نمیتونه ذهنیاتش رو عملی کنه!
        ------------------------------------------------------------------------------------------------------
        محصولات

        دیدگاه


          #5
          پاسخ : مشکل این برنامه کجاست؟

          ممنون دوست عزیز لطف میکنی

          هم برای شما توضیح میدم و هم دوستانی که احیانا خواستند کمک کنند به بنده

          برنامه یک rfid هست که با یک ماژول کارت موجود شناسایی میشه

          مراحل سیو کردن کارت ، یا اینکه کارت معتبر نیست و ....

          صورت های مختلفی رو شامل میشه که داخل برنامه هست

          ملاحظه کنید متوجه میشید

          دیدگاه

          لطفا صبر کنید...
          X