اطلاعیه

Collapse
No announcement yet.

مشکل با شماره گیری Atmege 32 از طریق mt8888

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

    مشکل با شماره گیری Atmege 32 از طریق mt8888

    با سلام به دوستان و مدیران محترم این سایت فعال:
    من یک keyboard درست کردم که از طریق atmega32 و mt8888 بتواند شماره گیری کند اما مشکل اینجاست که وقتی از طریق اتومات(بدون دخالت keybord) میکرو رو برنامه ریزی می کنم و در base برنامه یک شماره به mt8888 میدم شماره گیری بصورت کامل انجام میشه ولی همین کار با keybord بصورت کامل انجام نمی شود و بعد از 1 یا 2 شماره بوق مشغولی می زند اما اگر همین حالت را بصورت سریع انجام دهم شماره گیری بصورت کامل انجام می شود
    در این مورد این سوال را از دوستان داشتم
    چه اتفاقی می افتد که خط تلفن با یک ریتم خاص شماره گیری می کند اما با زدن دکمه های keybord و با تاخیر زمانیهای معقول این اتفاق نمی افتد؟
    با تشکر فراوان از عزیزان

    #2
    پاسخ : مشکل با شماره گیری Atmege 32 از طریق mt8888

    سلام.
    میشه سورستونو بگذارید.
    الهم عجل لولیک الفرج

    دیدگاه


      #3
      پاسخ : مشکل با شماره گیری Atmege 32 از طریق mt8888

      نوشته اصلی توسط Iran-PC
      سلام.
      میشه سورستونو بگذارید.
      با سلام به دوستان عزیز
      اینم سورس برنامه ، امیدوارم مورد استفاده قرار بگیرد


      $regfile = "m32def.dat"
      $crystal = 11059200

      Mt8888_port_send Alias Porta
      Mt8888_port_recive Alias Pina
      Mt8888_rs Alias Portc.0
      Mt8888_wr Alias Portc.1
      Mt8888_rd Alias Portd.7
      Line_on Alias Portc.2


      Dim Status As Byte
      Dim Send_byte As Byte
      Dim Recive_byte As Byte
      Dim I As Byte
      Dim Convert_key As Byte
      Dim Key As Byte

      Dim Flag_send As Bit
      Dim Flag_recive As Bit
      Dim Flag_teloff As Bit
      Dim Flag_call As Bit

      Declare Sub Init
      Declare Sub Send_tone
      Declare Sub Recive_tone
      Declare Sub Read_status
      Declare Sub Control_a
      Declare Sub Control_b
      Declare Sub Dis_able
      Declare Sub Get_call

      Config Portc = Output
      Config Portd = Output
      Config Porta = Output

      Config Kbd = Portb , Debounce = 50
      '/---------------------------------------------------------\
      Main:
      Init
      Do
      Key = Getkbd()
      If Key <> 16 Then
      Convert_key = Lookup(key , Get_key)
      Select Case Convert_key
      Case 23
      Reset Line_on
      Waitms 500
      Case 24
      Set Line_on
      Waitms 500
      Case 25
      Get_call
      Case Else
      Send_byte = Convert_key
      Send_tone
      Waitms 500
      End Select
      End If
      Loop
      End
      '/---------------------------------------------------------\
      Sub Init()
      Reset Flag_send
      Reset Flag_recive
      Reset Flag_teloff
      Reset Flag_call
      Reset Line_on
      Control_a
      Control_b
      $large
      End Sub
      '/---------------------------------------------------------\
      Sub Get_call
      Set Line_on
      Wait 2
      Send_byte = 8
      Send_tone
      Waitms 500

      Send_byte = 4
      Send_tone
      Waitms 500

      Send_byte = 1
      Send_tone
      Waitms 500

      Send_byte = 3
      Send_tone
      Waitms 500

      Send_byte = 8
      Send_tone
      Waitms 500

      Send_byte = 6
      Send_tone
      Waitms 500

      Send_byte = 3
      Send_tone
      Waitms 500

      End Sub
      '/---------------------------------------------------------\
      Sub Send_tone()
      Config Porta = Output
      Delay
      Reset Mt8888_rs
      Reset Mt8888_wr
      Set Mt8888_rd
      Delay
      If Send_byte = 0 Then Send_byte = 10
      Mt8888_port_send = Send_byte
      Delay
      Dis_able
      End Sub
      '/---------------------------------------------------------\
      Sub Recive_tone()
      Reset Mt8888_rs
      Set Mt8888_wr
      Reset Mt8888_rd
      Delay
      Config Porta = Input
      Porta = 255
      Recive_byte = Mt8888_port_recive And &B00001111
      If Recive_byte = 10 Then Recive_byte = 0
      Dis_able
      End Sub
      '/---------------------------------------------------------\
      Sub Read_status()
      Set Mt8888_rs
      Set Mt8888_wr
      Reset Mt8888_rd
      Delay
      Config Porta = Input
      Porta = 255
      Status = Mt8888_port_recive And &B00001111
      If Status.1 = 1 Then
      Set Flag_send
      Else
      Reset Flag_send
      End If
      If Status.2 = 1 Then
      Set Flag_recive
      Else
      Reset Flag_recive
      End If
      Dis_able
      End Sub
      '/---------------------------------------------------------\
      Sub Control_a()
      Config Porta = Output
      Delay
      Set Mt8888_rs
      Reset Mt8888_wr
      Set Mt8888_rd
      Delay
      Mt8888_port_send = &B00001101
      Delay
      Dis_able
      End Sub
      '/---------------------------------------------------------\
      Sub Control_b()
      Config Porta = Output
      Delay
      Set Mt8888_rs
      Reset Mt8888_wr
      Set Mt8888_rd
      Delay
      Mt8888_port_send = &B00000000
      Delay
      Dis_able
      End Sub
      '/---------------------------------------------------------\
      Sub Dis_able()
      Config Porta = Output
      Delay
      Reset Mt8888_rs
      Set Mt8888_wr
      Set Mt8888_rd
      Mt8888_port_send = 255
      End Sub
      '/---------------------------------------------------------\
      Get_key:
      Data 20 , 1 , 2 , 3 , 21 , 4 , 5 , 6 , 22 , 7 , 8 , 9 , 23 , 24 , 0 , 25

      دیدگاه


        #4
        پاسخ : مشکل با شماره گیری Atmege 32 از طریق mt8888

        ممنون.
        میشه در مورد اون کدهای پایین توضیح بدید که اون 20 و 21 و ... تا 25 برای چیه؟
        الهم عجل لولیک الفرج

        دیدگاه


          #5
          پاسخ : مشکل با شماره گیری Atmege 32 از طریق mt8888

          نوشته اصلی توسط Iran-PC
          ممنون.
          میشه در مورد اون کدهای پایین توضیح بدید که اون 20 و 21 و ... تا 25 برای چیه؟
          با سلام به شما دوست عزیز
          کدهای پایین مربوط به جدول lookup است که keyboard که 4*4 است را برای میکرو تعریف کردم
          اگر بازم مشکلی داشتی در خدمتیم

          دیدگاه


            #6
            پاسخ : مشکل با شماره گیری Atmege 32 از طریق mt8888

            سلام
            دوست عزیز اگه ممکنه شماتیک مدارتون را که باهاش receive را جواب گرفتید پ کنید .
            من با receive مشکل دارم . :cry:
            در ضمن در Mt8888 قضیه Call Progress چیه من زیاد سر در نیاوردم .
            If everything seems under control, you're just not going fast enough
            Mario Andretti

            دیدگاه


              #7
              پاسخ : پاسخ : مشکل با شماره گیری Atmege 32 از طریق mt8888

              نوشته اصلی توسط rezam123
              سلام
              دوست عزیز اگه ممکنه شماتیک مدارتون را که باهاش receive را جواب گرفتید پ کنید .
              من با receive مشکل دارم . :cry:
              در ضمن در Mt8888 قضیه Call Progress چیه من زیاد سر در نیاوردم .
              با سلام
              این مدار را ببند با برنامه بالا کار میکنه

              دیدگاه


                #8
                پاسخ : مشکل با شماره گیری Atmege 32 از طریق mt8888

                سلام
                با این مدار میکرو میتونه به یک pc با را مودم اکسترنال اطلاعات ارسال کنه
                یا این مدار فقط برای شماره گیری هستش فقط

                دیدگاه


                  #9
                  پاسخ : مشکل با شماره گیری Atmege 32 از طریق mt8888

                  سلام
                  ممنون دوست عزیز
                  یعنی شما با همون مدار پیشنهاد شده در دیتا شیت جواب گرفتید . خیلی عالیه . فکر کنم برنامه ام ایراد داشته باشه .
                  If everything seems under control, you're just not going fast enough
                  Mario Andretti

                  دیدگاه


                    #10
                    پاسخ : مشکل با شماره گیری Atmege 32 از طریق mt8888

                    نوشته اصلی توسط rezam123
                    سلام
                    ممنون دوست عزیز
                    یعنی شما با همون مدار پیشنهاد شده در دیتا شیت جواب گرفتید . خیلی عالیه . فکر کنم برنامه ام ایراد داشته باشه .
                    با سلام
                    بله دوست عزیز من با همان مدار جواب گرفتم

                    دیدگاه

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