اطلاعیه

Collapse
No announcement yet.

[آموزش]نحوه ارسال AT Command به Sim800 و استفاده از ماژول در پروژه های مبتنی بر میکروکنترلر

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

    #46
    پاسخ : [آموزش]نحوه ارسال AT Command به Sim800 و استفاده از ماژول در پروژه های مبتنی بر میکروکنترلر

    سلام به همه
    من هم این ماژول رو از eca خریدم ولی نتونستم راه اندازیش کنم از نظر سیم بندی مطمانم که درسته فقط از نظر انتن شک دارم
    چون تو این لینک انتن و ببینید به کجا وصل کردن
    http://www.eca.ir/2017/03/08/%d8%b1%...c%d9%86%d9%88/


    ولی باز تو عکس فروشگاه


    حالا من یک جا دیدم نوشته بود اگه بدون انتن ماژول رو راه اندازی کنی ماژول میسوزه من الان شک دارم که این ماژول اصلا کار کنه
    لطفان اگه کسی واقعا این مدار رو راه اندازی کرده (دقیقا sim800l) یک عکس از سیم بندی و کلا مدارش بزاره من ببینم
    ممنون

    دیدگاه


      #47
      پاسخ : [آموزش]نحوه ارسال AT Command به Sim800 و استفاده از ماژول در پروژه های مبتنی بر میکروکنترلر

      با سلام ،
      این یه موضوعیه که من با یه جستجو توی انجمن زیاد دیدم ، ولی این مشکل من رو بعضیا هم داشتن ولی کامل جواب داده نشده و به نتیجه نرسیدن ...
      مدتیه من یه ماژول sim800l (از این قرمز کوچولوهای سایت)خریدم و توی قسمت ارتباط میکرو و ماژول به مشکل برخوردم .
      ماژول رو با ترمینال تست کردم ، هم زنگ میزنه و هم پیام میده ، خود میکرو هم به ترمینال جدا وصل کردم ، تمام دستورات رو میبینم که ارسال میشه ... ولی وقتی میکرو رو به ماژول وصل میکنم ، اتفاقی نمیافته و به نظر واسه هم شکلک میفرستن ...
      این برنامه رو من با سری قبل تر ماژول sim800 ( برد ابیا که توی سایته) قبلا ۲ بار بستم و جواب گرفتم . حتی با یه برد فول (ازینا که همه چی روش داره) هم جواب گرفتم ...
      چند تا نکته ای که هست :
      ۱-jtag غیر فعاله
      ۲-baud روی 9600
      ۳-
      زمین ها همه یکی هستن ، حتی دوتا زمین میکرو ...
      ۴-با ۲ تا میکرو مگا ۸ تست کردم و نتایج مشابهه
      ۵-زبان برنامه بسکام هستش (خاستین اول برنامه انتهای این متن هست)
      ۶-
      باز هم میگم این برنامه قبلا جواب پس داده !!!
      حالا مشکلات عجیبی که بهش برخوردم :
      ۱-ولتاژ روی پایه rx میکرو وقتی ازاده حدود 1 ولته و tx هم 5 ولت
      ۲-ولتاژ روی پایه های rx و tx ماژول دور ور 3.2 ولته
      ۳-داخل تنظیمات ترمینال data bits مقدار ۷ هستش ، وگرنه میکرو شکلک میفرسته ...
      ۴-من برای اتصال میکرو و ماژول به ترمینال از ماژول چند منظوره که توی سایت هست استفاده کردم (cp210 usb to uart) ، موقع اتصال ماژول اکیه ، ولی میکرو رو میزنم داغ میکنه ...
      حالا کارایی که انجام دادم :
      ۱-تغییر سطح ولتاژ tx میکرو به ۳.۲ ولت با تقسیم مقاومتی
      ۲-پول اپ کردن rx میکرو
      ۳-پایه Dtr ماژول هم طبق گفته دیتاشیت پول دان کردم ...
      و نتیجه ای حاصل نشد !

      دوستان میشه راهنمایی کنین ببینیم چطور میشه این میکرو و ماژول رو با هم اشتی داد و جواب گرفت ؟
      با تشکر


      $regfile = "m8adef.dat"

      $crystal = 8000000

      $baud = 9600

      Dim B As Byte





      'Flushbuf:

      Waitms 100

      Do

      B = Inkey()

      Loop Until B = 0





      'setting:

      Print "AT"

      Waitms 200

      Print "AT+IPR=9600"

      Waitms 200

      Print "ATE0"

      Waitms 200

      Print "AT+CMGF=1"

      Waitms 200

      Print "AT+CNMI=1,1,0,0,0"

      Waitms 200

      Print "AT"

      Waitms 500

      Print "AT+CMGD=1,4"

      Waitms 1000





      'call:

      Print "AT"

      Waitms 500

      Print "ATD" ; N ; Chr(59)

      Waitms 9000

      Print "ATH"


      دیدگاه


        #48
        پاسخ : [آموزش]نحوه ارسال AT Command به Sim800 و استفاده از ماژول در پروژه های مبتنی بر میکروکنترلر

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

        دیدگاه


          #49
          پاسخ : [آموزش]نحوه ارسال AT Command به Sim800 و استفاده از ماژول در پروژه های مبتنی بر میکروکنترلر

          سلام
          این موضوع که میگن به خاطر اجرای طرح رجیستری ماژول های جدید تو شبکه شناسایی نمیشه درسته؟ چون یکی از دوستان دو تا تهیه کرده (از یکی از فروشگاهای دیگه) الان هیچ کدوم کار نمیکنه
          اگر این مشکل وجود داره چاره چیه؟

          دیدگاه


            #50
            پاسخ : [آموزش]نحوه ارسال AT Command به Sim800 و استفاده از ماژول در پروژه های مبتنی بر میکروکنترلر

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

            میشه لطفا عملکرد این خط از کد رو شرح بدین...
            for(count=0;buffer[count-2]!='O';count ++) buffer[count]=getchar();

            چرا -2 شده؟
            کلا توضیح بدین...

            دیدگاه


              #51
              پاسخ : [آموزش]نحوه ارسال AT Command به Sim800 و استفاده از ماژول در پروژه های مبتنی بر میکروکنترلر

              نوشته اصلی توسط Mr heydarie نمایش پست ها
              با سلام خدمت جناب آراسته و تشکر بابت این تاپیک مفید

              میشه لطفا عملکرد این خط از کد رو شرح بدین...
              for(count=0;buffer[count-2]!='O';count ++) buffer[count]=getchar();

              چرا -2 شده؟
              کلا توضیح بدین...
              با تشکر از شما دوست عزیز

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

              دیدگاه


                #52
                پاسخ : [آموزش]نحوه ارسال AT Command به Sim800 و استفاده از ماژول در پروژه های مبتنی بر میکروکنترلر

                نوشته اصلی توسط سوران آراسته نمایش پست ها
                لازمه بگم کدها در سطح مبتدی و جهت اشنایی نوشته شده. در نتیجه استفاده از کدها در پروژه های صنعتی مستلزم تغییراتی خواهد بود.
                ممنون از پاسخگوییتون...
                من برای ذخیره متن پیام با فعال بودن اینتراپت سریال این روش به ذهنم رسید...
                [FONT=Yekan]while(1)[/FONT] {
                if(rx_buffer0!=0)
                {
                for(i=0;i<=rx_counter0;i++)buffer[i]=getchar();
                break;
                }
                [FONT=Yekan] }[/FONT]

                این روش صنعتی هست؟
                ممنون میشم یه روش صنعتی بگین تا از اون الگو برداری کنم...

                دیدگاه


                  #53
                  پاسخ : [آموزش]نحوه ارسال AT Command به Sim800 و استفاده از ماژول در پروژه های مبتنی بر میکروکنترلر

                  نوشته اصلی توسط Mr heydarie نمایش پست ها
                  ممنون از پاسخگوییتون...
                  من برای ذخیره متن پیام با فعال بودن اینتراپت سریال این روش به ذهنم رسید...
                  [FONT=Yekan]while(1)[/FONT] {
                  if(rx_buffer0!=0)
                  {
                  for(i=0;i<=rx_counter0;i++)buffer[i]=getchar();
                  break;
                  }
                  [FONT=Yekan] }[/FONT]

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

                  دیدگاه


                    #54
                    پاسخ : [آموزش]نحوه ارسال AT Command به Sim800 و استفاده از ماژول در پروژه های مبتنی بر میکروکنترلر

                    سلام در لینک زیر یه آموزش متفاوت برای ماژول های sim800l قرار دادم
                    سلام برنامه زیر رو به کمک کدویزارد کدویژن برای کنترل رله توسط پیامک نوشتم. میکروی استفاده شده atmega16 هستش. portb.0 به رله متصل هست و با ارسال on# فعال و off# غیر فعال میشه. portb.1 رو هم گذاشتم برای وضعیت که به صورت پیشفرض روشنه و در صورت برقرار شدن ارتباط میکرو با sim800 خاموش میشه. از کریستال خارجی 16 مگاهرتز برای اسیلاتور
                    [آموزشی] کنترل رله با پیامک توسط sim800l
                    [آموزشی] راه اندازی سنسورهای DHT11 و DHT22 با کدویژن
                    [آموزشی] مدار عملی اتصال میکروفن خازنی به میکروکنترلر
                    [آموزشی] آموزش نحوه راه اندازی میکروهای fmd
                    صفحه اینستاگرام : ecdco_ir

                    دیدگاه


                      #55
                      پاسخ : [آموزش]نحوه ارسال AT Command به Sim800 و استفاده از ماژول در پروژه های مبتنی بر میکروکنترلر

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

                      دیدگاه


                        #56
                        پاسخ : [آموزش]نحوه ارسال AT Command به Sim800 و استفاده از ماژول در پروژه های مبتنی بر میکروکنترلر

                        سلام دوستان من یه مشکل عجیب با خوندن sms دارم . از ماژول sim800 استفاده میکنم . من فقط یه بار میتونم sms رو بخونم دفعه بعد دیگه نمیتونم .
                        کد:
                        [FONT=Yekan]$regfile = "m32def.dat"[/FONT]$crystal = 8000000
                        $hwstack = 64
                        $swstack = 64
                        $framesize = 64
                        
                        
                        $baud = 19200
                        
                        
                        
                        
                        Dim B As Byte
                        Dim Zarf As Byte
                        Dim Count As Byte
                        Dim Sms_read As Byte
                        Dim Gsm_start As Byte
                        
                        
                        Dim Recive As String * 100
                        Dim Recive2 As String * 100
                        Dim Phone_number As String * 13
                        Dim Number_str As String * 3
                        Dim Number As Byte
                        
                        
                        Dim Number1 As String * 11
                        Dim Sms As String * 250 : Sms = ""
                        Dim Ok As String * 10 : Ok = ""
                        Count = 1
                        
                        
                        Number1 = "09176887571"
                        
                        
                        Led Alias Portb.4
                        Power_key Alias Portb.3
                        
                        
                        
                        
                        Config Power_key = Output
                        Config Led = Output
                        Config Portd.2 = Input
                        Config Portd.3 = Input
                        Config Portb.2 = Input
                        Set Portd.2
                        Set Portd.3
                        Set Portb.2
                        
                        
                        
                        
                        
                        
                        
                        
                        Set Power_key
                        Waitms 2000
                        Reset Power_key
                        
                        
                        Waitms 30000
                        Set Led
                        Waitms 2000
                        Reset Led
                        
                        
                        
                        
                        
                        
                        Config Int2 = Falling
                        Enable Int2
                        On Int2 Read_sms
                        Gifr = 0
                        Enable Interrupts
                        
                        
                        
                        
                        Print "AT"
                              Waitms 250
                        Print "ATE0"
                              Waitms 250
                        Print "AT+CMGF=1"
                              Waitms 250
                        Print "AT+CMGDA=DEL All"
                              Waitms 250
                        
                        
                        Do
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        
                        Loop
                        
                        
                        End                                                         'end program
                        '-------------------------------------------------------------------------------
                        
                        
                        
                        
                        
                        
                        
                        
                        Read_sms:
                        
                        
                        
                        
                        If Gsm_start > 0 Then
                        
                        
                        
                        
                        Set Led
                        Waitms 500
                        Reset Led
                        Waitms 500
                        
                        
                        Print "AT+CMGR=1"
                        
                        
                        
                        
                        Sms = ""
                        
                        
                        Do
                        B = Inkey()
                        Select Case B
                        Case 0:
                        Case 13:
                        If Sms <> "" Then Exit Do
                        Case 10:
                        If Sms <> "" Then Exit Do
                        Case Else
                        Sms = Sms + Chr(b)
                        End Select
                        Loop
                        
                        
                        Sms = ""
                        
                        
                        Do
                        B = Inkey()
                        Select Case B
                        Case 0:
                        Case 13:
                        If Sms <> "" Then Exit Do
                        Case 10:
                        If Sms <> "" Then Exit Do
                        Case Else
                        Sms = Sms + Chr(b)
                        End Select
                        Loop
                        
                        
                        Sms = ""
                        
                        
                        Do
                        B = Inkey()
                        Select Case B
                        Case 0:
                        Case 13:
                        If Sms <> "" Then Exit Do
                        Case 10:
                        If Sms <> "" Then Exit Do
                        Case Else
                        Sms = Sms + Chr(b)
                        End Select
                        Loop
                        
                        
                        
                        
                        
                        
                              If Sms = "123" Then
                              Set Led
                        Waitms 5000
                        Reset Led
                              End If
                        
                        
                        
                        
                              If Sms = "456" Then
                        Set Led
                        Waitms 2000
                        Reset Led
                              End If
                        
                        
                        
                        
                        Print "AT+CMGD=1"
                        Waitms 200
                        
                        
                        
                        
                        
                        
                        
                        
                              End If
                        
                        
                              Incr Gsm_start
                        
                        
                        
                        
                        
                        
                        [FONT=Yekan]Return[/FONT]
                        عامل کلیدی تمام موفقیتها &quot; عمل کردن&quot; است

                        دیدگاه


                          #57
                          پاسخ : [آموزش]نحوه ارسال AT Command به Sim800 و استفاده از ماژول در پروژه های مبتنی بر میکروکنترلر

                          نوشته اصلی توسط saeid_k68 نمایش پست ها
                          کسی در این مورد نمیتونه بهم کمک کنه؟
                          این کد را ارسال کنید :
                          AT+CSMP=17,167,0,0

                          دیدگاه


                            #58
                            پاسخ : [آموزش]نحوه ارسال AT Command به Sim800 و استفاده از ماژول در پروژه های مبتنی بر میکروکنترلر

                            با سلام خدمت تمام دوستان و همچنین آقای آراسته که زحمت کشیدن و این آموزش رو در اختیارهمه قرار دادند
                            بعد از خوندن دیتاشیت این ماژول و این 5 ، 6 صفحه وتست ماژول با هایپر ترمینال و ... چندتا سوال برام پیش اومده
                            فرمت پاسخ دهی ماژول به صورت <CR><LF><RESPONSE><CR><LF> هستش یعنی در کوتاه ترین نوع پاسخ دهی که عبارت OK هست باید 6 بایت از طریق UART میکرو بخونیم. البته من با کامپیوتر که امتحان کردم فقط دوبایت مربوط به OK قابل مشاهده بود.
                            1- آقای آراسته عزیزمنظورتون از buffer[count-2]!='0' چی هستش؟ و چرا count توی این رشته از منهای دو شروع شده و تا جایی پیش رفته که مقدارش مخالف '0' شده؟ مگر توی شماره های یک آرایه مقادیر منفی هم جا میگیرند؟ من فکر میکنم آرایه ها از صفر شروع میشند و اینکه آخرین بایت پاسخ <LF> بود که اون هم معادل 10 دسیمال هستش نه '0'!!!
                            2-اگر بخواهیم مقادیر دریافتی از UART که حالا توی buffer ذخیره شده را نمایش بدیم از چه دستوری استفاده کنیم؟
                            البته باید ببخشید اگه سوالات من مبتدیانه هستش بنده مهارت و تجربه شما دوستان رو ندارم
                            ممنون
                            3-در هنگام ارسال دستور ها در انتهای آن فقط کارکتر enter ارسال شده درصورتی که بعد از آن باید کارکتر line feed نیز ارسال شود.
                            مثلا با این فرمت
                            char str[10];
                            sprintf(str,"AT\r\n");
                            puts(str);
                            جدیدترین ویرایش توسط hamid reza_1364; ۲۱:۱۷ ۱۳۹۶/۰۸/۰۳.
                            حاصلظرب توان در ادعا مقداری ثابت است.هرچه توان انسان کمتر باشد ادعای او بیشتر است و هرچه توان انسان بیشتر شود ادعایش کمتر میگردد.(دکتر حسابی)

                            دیدگاه


                              #59
                              پاسخ : [آموزش]نحوه ارسال AT Command به Sim800 و استفاده از ماژول در پروژه های مبتنی بر میکروکنترلر

                              نوشته اصلی توسط hamid reza_1364 نمایش پست ها
                              با سلام خدمت تمام دوستان و همچنین آقای آراسته که زحمت کشیدن و این آموزش رو در اختیارهمه قرار دادند
                              بعد از خوندن دیتاشیت این ماژول و این 5 ، 6 صفحه وتست ماژول با هایپر ترمینال و ... چندتا سوال برام پیش اومده
                              فرمت پاسخ دهی ماژول به صورت <CR><LF><RESPONSE><CR><LF> هستش یعنی در کوتاه ترین نوع پاسخ دهی که عبارت OK هست باید 6 بایت از طریق UART میکرو بخونیم. البته من با کامپیوتر که امتحان کردم فقط دوبایت مربوط به OK قابل مشاهده بود.
                              1- آقای آراسته عزیزمنظورتون از buffer[count-2]!='0' چی هستش؟ و چرا count توی این رشته از منهای دو شروع شده و تا جایی پیش رفته که مقدارش مخالف '0' شده؟ مگر توی شماره های یک آرایه مقادیر منفی هم جا میگیرند؟ من فکر میکنم آرایه ها از صفر شروع میشند و اینکه آخرین بایت پاسخ <LF> بود که اون هم معادل 10 دسیمال هستش نه '0'!!!
                              2-اگر بخواهیم مقادیر دریافتی از UART که حالا توی buffer ذخیره شده را نمایش بدیم از چه دستوری استفاده کنیم؟
                              البته باید ببخشید اگه سوالات من مبتدیانه هستش بنده مهارت و تجربه شما دوستان رو ندارم
                              ممنون
                              3-در هنگام ارسال دستور ها در انتهای آن فقط کارکتر enter ارسال شده درصورتی که بعد از آن باید کارکتر line feed نیز ارسال شود.
                              مثلا با این فرمت
                              char str[10];
                              sprintf(str,"AT\r\n");
                              puts(str);
                              باا دروود خدمت شما دوست عزیز
                              ببینید در مورد اون دستور داخل ارایه دقت کنید که بعد از دریافت OK حلقه متوقف میشه و اون count-2 به همین دلیله. اگر یک رشته بفرستید و تحلیل کنید منظورم رو متوجه میشید. البته این کدها رو برای سال 92 نوشتم و واقیت اون زمان اطلاعات حال حاضر رو نداشتم و در نتیجه کدها نیاز به ویرایش اساسی دارن. فکر نکنید کدهای قرار داده شده کار نمی کنه بلکه تست شده و بدون مشکل کار می کنه اما اگر نیاز به ساخت دستاه صنعتی هست باید روند دریافت کدها رو بهش رسیدگی بشه.

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

                              دیدگاه


                                #60
                                پاسخ : [آموزش]نحوه ارسال AT Command به Sim800 و استفاده از ماژول در پروژه های مبتنی بر میکروکنترلر

                                سلام دوستان
                                با تشکر از شما آقای آراسته.
                                من طبق AT command ها دستور خاموش کردن اکوATE0 را به SIM800f میفرستم و انتظار داشتم طبق آنچه که توی توضیحات دستورات نوشته شده و همچنین در ارتباطی که بین کامپیوتر و SIM800F برقرار کردم فقط یه پاسخ <CR><LF>OK<CR<LF> بگیرم اما وقتی همین دستور ATE0 رو توسط میکرو برای Sim800F میفرستم بغیر از OK عبارت Call Ready و SMS Ready هم دریافت میکنم!!!!. جالبه وقتی از طریق هایپر ترمینال یا هر نرم افزار مشابهی این دستور از کامپیوتر ارسال بشه فقط و فقط عبارت OK رو دریافت میکنم!!!!!
                                دوستان اگر کسی میتونه کمک کنه ممنون میشم.
                                جدیدترین ویرایش توسط hamid reza_1364; ۱۰:۱۶ ۱۳۹۶/۰۸/۰۷.
                                حاصلظرب توان در ادعا مقداری ثابت است.هرچه توان انسان کمتر باشد ادعای او بیشتر است و هرچه توان انسان بیشتر شود ادعایش کمتر میگردد.(دکتر حسابی)

                                دیدگاه

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