اطلاعیه

Collapse
No announcement yet.

شماره گیری با ATmega16

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

    شماره گیری با ATmega16

    من سعی کردم با روش پالس با ATmega 16 با یه شماره تماس بگیرم ولی هر کاری می کنم نمی شه با توجه به چیزایی که خوندم راجع به شماره گیری به روش پالس همه چی درسته ولی جواب نمی ده. :angry:کسی هست بتونه کمک کنه؟؟
    اینم کدم:

    کد:
    /*****************************************************
    This program was produced by the
    CodeWizardAVR V2.04.4a Advanced
    Automatic Program Generator
    © Copyright 1998-2009 Pavel Haiduc, HP InfoTech s.r.l.
    http://www.hpinfotech.com
    
    Project : 
    Version : 
    Date  : 1/3/2012
    Author : NeVaDa
    Company : Home
    Comments: 
    
    
    Chip type        : ATmega16
    Program type      : Application
    AVR Core Clock frequency: 8.000000 MHz
    Memory model      : Small
    External RAM size    : 0
    Data Stack size     : 256
    *****************************************************/
    
    #include <mega16.h>
    #include <delay.h>
    // Declare your global variables here
    int j;
    int unit(int i)
    {
      for(j=0;j<i;j++)
      {
        PORTA.0=1;
        delay_ms(60);
        PORTA.0=0;   //eshghale khat
        delay_ms(40);
      }
      return 0;
    }
    void main(void)
    {
    // Declare your local variables here
    
    // Input/Output Ports initialization
    // Port A initialization
    // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=Out 
    // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=0 
    PORTA=0x00;
    DDRA=0x01;
    
    // Port B initialization
    // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
    // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T 
    PORTB=0x00;
    DDRB=0x00;
    
    // Port C initialization
    // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
    // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T 
    PORTC=0x00;
    DDRC=0x00;
    
    // Port D initialization
    // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
    // State7=T State6=P State5=T State4=T State3=T State2=T State1=T State0=T 
    PORTD=0x40;
    DDRD=0x80;
    
    // Timer/Counter 0 initialization
    // Clock source: System Clock
    // Clock value: Timer 0 Stopped
    // Mode: Normal top=FFh
    // OC0 output: Disconnected
    TCCR0=0x00;
    TCNT0=0x00;
    OCR0=0x00;
    
    // Timer/Counter 1 initialization
    // Clock source: System Clock
    // Clock value: Timer1 Stopped
    // Mode: Normal top=FFFFh
    // OC1A output: Discon.
    // OC1B output: Discon.
    // Noise Canceler: Off
    // Input Capture on Falling Edge
    // Timer1 Overflow Interrupt: Off
    // Input Capture Interrupt: Off
    // Compare A Match Interrupt: Off
    // Compare B Match Interrupt: Off
    TCCR1A=0x00;
    TCCR1B=0x00;
    TCNT1H=0x00;
    TCNT1L=0x00;
    ICR1H=0x00;
    ICR1L=0x00;
    OCR1AH=0x00;
    OCR1AL=0x00;
    OCR1BH=0x00;
    OCR1BL=0x00;
    
    // Timer/Counter 2 initialization
    // Clock source: System Clock
    // Clock value: Timer2 Stopped
    // Mode: Normal top=FFh
    // OC2 output: Disconnected
    ASSR=0x00;
    TCCR2=0x00;
    TCNT2=0x00;
    OCR2=0x00;
    
    // External Interrupt(s) initialization
    // INT0: Off
    // INT1: Off
    // INT2: Off
    MCUCR=0x00;
    MCUCSR=0x00;
    
    // Timer(s)/Counter(s) Interrupt(s) initialization
    TIMSK=0x00;
    
    // Analog Comparator initialization
    // Analog Comparator: Off
    // Analog Comparator Input Capture by Timer/Counter 1: Off
    ACSR=0x80;
    SFIOR=0x00;
    
    while (1)
       {
       
       PORTA.0=1;
       if(PIND.6==0)
       {
       PORTA.0=0;
       delay_ms(5000);
       unit(10);
       delay_ms(300);   
       unit(9); 
       delay_ms(300);
       unit(1); 
       delay_ms(300);
       unit(2); 
       delay_ms(300);
       unit(8); 
       delay_ms(300);
       unit(1); 
       delay_ms(300);
       unit(9);
       delay_ms(300);
       unit(7);
       delay_ms(300);
       unit(6);
       delay_ms(300); 
       unit(2);
       delay_ms(300);
       unit(1);
       delay_ms(50000);
       PORTA.0=1; 
       }
       };
    }
    -

    #2
    پاسخ : شماره گیری با ATmega16

    با سلام
    تا اونجا که من میدونم باید از سیگنال های dtmf استفاده کنید ، در موردش یه سرچی بکنید .

    دیدگاه


      #3
      پاسخ : شماره گیری با ATmega16

      نوشته اصلی توسط mojtaba_led
      با سلام
      تا اونجا که من میدونم باید از سیگنال های dtmf استفاده کنید ، در موردش یه سرچی بکنید .
      دو روش برای شماره گیری وجود داره یکی pulse یکی DTMF توی این پروژه مجبورم از روش pulse استفاده کنم :cry2:
      -

      دیدگاه


        #4
        پاسخ : شماره گیری با ATmega16

        نقشه رو هم بزار.
        بت در بغل و به سجده پیشانی ما کافر زده خنده بر مسلمانی ما
        اسلام به ذات خود ندارد عیبی هر عیب که هست در این مسلمانی ماست

        دیدگاه


          #5
          پاسخ : شماره گیری با ATmega16

          نوشته اصلی توسط mostafahk
          نقشه رو هم بزار.
          اینم نقشه مدار:
          -

          دیدگاه


            #6
            پاسخ : شماره گیری با ATmega16

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

            دیدگاه


              #7
              پاسخ : شماره گیری با ATmega16

              نوشته اصلی توسط mostafahk
              رله قطع و وصل میشه؟
              گوشی رو برداشتی؟ یعنی تا گوشی رو بر نداری شماره گیری از طرف مخابرات تایید نمیشه. یه مقاومت 100 اهم هم فکر کنم باید بزاری نباید این سیمها رو با رله اتصال کوتاه کنی.
              شما یه تلفن باید همراه این وصل کنی به خط گوشی رو برداری و وقتی شروع کرد بوق زدن مدار رو راه بندازی.
              اگه اینطوری جواب داد بقیش رو کامل می کنیم.
              سیم ها رو اتصال کوتاه نمی کنم یه مقاومت 330 اهم گذاشتم بینشون دیگه.رله هم قطع و وصل میشه کاملا و شماره میگیره ولی هیچ اتفاقی نمی افته :sad: این کارم کردم حتی ، یعنی اول گوشی تلفن رو برداشتم تا بوق آزاد بزنه بعد دکمه مدارو فشار دادم توی گوشی صدای بوق آزاد می یاد + صدای شماره گیری (هر دو با هم!!) عین تلفن های قدیمی که تق تق صدا می داد بعد شماره گیری که تموم می شه همچنان صدای بوق آزاد می یاد و بعد 3-4 ثانیه بوق اشغال می زنه و هیچ اتفاقی نمی افته :cry2:
              -

              دیدگاه


                #8
                پاسخ : شماره گیری با ATmega16

                نوشته اصلی توسط MOMOelite
                سیم ها رو اتصال کوتاه نمی کنم یه مقاومت 330 اهم گذاشتم بینشون دیگه.رله هم قطع و وصل میشه کاملا و شماره میگیره ولی هیچ اتفاقی نمی افته :sad: این کارم کردم حتی ، یعنی اول گوشی تلفن رو برداشتم تا بوق آزاد بزنه بعد دکمه مدارو فشار دادم توی گوشی صدای بوق آزاد می یاد + صدای شماره گیری (هر دو با هم!!) عین تلفن های قدیمی که تق تق صدا می داد بعد شماره گیری که تموم می شه همچنان صدای بوق آزاد می یاد و بعد 3-4 ثانیه بوق اشغال می زنه و هیچ اتفاقی نمی افته :cry2:
                خوب فکر کنم 330 زیاده کمترش کردی؟
                بت در بغل و به سجده پیشانی ما کافر زده خنده بر مسلمانی ما
                اسلام به ذات خود ندارد عیبی هر عیب که هست در این مسلمانی ماست

                دیدگاه


                  #9
                  پاسخ : شماره گیری با ATmega16

                  نوشته اصلی توسط mostafahk
                  خوب فکر کنم 330 زیاده کمترش کردی؟
                  مقاومت رو کم تر کردم حالا صدای بوق رفت ولی باز شماره گیری می کنه بعد که تموم شد هیچ اتفاقی نمی افته و بعد 5-6 ثانیه هم بوق اشغال می زنه :angry:
                  -

                  دیدگاه


                    #10
                    پاسخ : شماره گیری با ATmega16

                    واقعا نمی دونم مشکل از کجاس :sad: مدار داره خط رو قطع و وصل می کنه کدم هم هر چی نگاه می کنم مشکلی نداره مگر اینکه قانونی نکته ای چیزی باشه که من نمی دونم یا رعایتش نکردم :sad:
                    -

                    دیدگاه


                      #11
                      پاسخ : شماره گیری با ATmega16

                      نوشته اصلی توسط MOMOelite
                      مدار داره خط رو قطع و وصل می کنه
                      برای قطع و وصل ،خروجی رله بایستی با سیم تلفن سری بشه نه موازی ،در ضمن به مقاومت نیازی نیست مقاومت باعث تضعیف بیشتر سیگنال تلفن میشه.

                      دیدگاه


                        #12
                        پاسخ : شماره گیری با ATmega16

                        نوشته اصلی توسط gtnfs
                        برای قطع و وصل ،خروجی رله بایستی با سیم تلفن سری بشه نه موازی ،در ضمن به مقاومت نیازی نیست مقاومت باعث تضعیف بیشتر سیگنال تلفن میشه.
                        تو رو خدا اگه قبلا این کارو کردین و نتیجه گرفتین و در این ضمینه اطلاعاتی دارین جواب بدین ..
                        ضمنا میشه بگین دقیقا چه شکلی میشه رله رو با خط موازی کرد؟!!!!! oo:
                        -

                        دیدگاه


                          #13
                          پاسخ : شماره گیری با ATmega16

                          باید از خروجی nc رله استفاده بشه. یکی از سیمهای تلفن با سیم چین قطع کرده و دو سر سیم بوجود امده را به خروجیnc (normaly connect رله وصل کنید.

                          دیدگاه

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