اطلاعیه

Collapse
No announcement yet.

کمک برای ساخت فانکشن با میکرو

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

    کمک برای ساخت فانکشن با میکرو

    سلام به تمامی مهندسین این انجمن ....دوستان کسی هست یک فانکشن دیجیتالی توپ درست کنه که تا 2کیلو هرتز نوسان کنه وفرکانس با عدد اعشارش روی ال سی دی نمایش داده بشه و ولوم مربوط به عرض پالس رو هم داشته باشه...خواهش میکنم کمکم کنید میدونم بیشتر شما دوستان برنامه نویسیتون خوبه وکار با بیشتر نرم افزارها رو بلدین اقایی میکنین تورو خدا :cry2:

    #2
    پاسخ : کمک برای ساخت فانکشن با میکرو

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

    دیدگاه


      #3
      پاسخ : کمک برای ساخت فانکشن با میکرو

      سلام

      صفحات زیر رو یه نگاهی بندازین بد نیست :

      http://www.eca.ir/forum2/index.php?topic=40150.0

      http://projects.m32.ir/800/

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

      دیدگاه


        #4
        پاسخ : کمک برای ساخت فانکشن با میکرو

        دوست عزیز دقیقا میخای با مدار چیکار کنی تا راهنماییت کنم؟؟؟

        دیدگاه


          #5
          پاسخ : کمک برای ساخت فانکشن با میکرو

          pouyaojaghi جان مدار برای یک اسکوپ دیجیتال میخوام که با موج انالوگ سازگاریی نداره...مشخصات کاملش اینه یک فانکشن دیجیتال با موج مربعی با دامنه متغیر با ولوم و نمایشگر ال سی دی برای فرکانس با اعداد اعشار یعنی فرکانس کامل نشون بده مثل1991.5هرتز و ولوم واسه کنترل عرض پالس فقط نمیدونم میشه همچین مداری ساخت یا نه :cry:

          دیدگاه


            #6
            پاسخ : کمک برای ساخت فانکشن با میکرو

            مهندسین عزیز من چندتا عکس میزارم فقط به من بگین این فانکشن که 5عدد کلید داره که تا1کیلوهرتز بسته میشه چرا تو ال سی دی عدد9.143کیلو هرتز بنمایش در اومده...مگه نه اینکه باید تا یک کیلو نوسان کنه یکم توضیح بدین من هرچی بیشتر نگاش میکنم بیشتر گیج میشم
            اینم لینک عکسها
            http://upir.ir/files/626f44d541372.jpg
            http://upir.ir/files/e202240bd7cc1.jpg
            http://upir.ir/files/89e80ad027803.jpg

            دیدگاه


              #7
              پاسخ : کمک برای ساخت فانکشن با میکرو

              از دوستان کسی نیست کمک کنه اگه فایل سورس یا هگز لازمه تا بیشتر برسی بشه میزارم ...اقایی میکنین

              دیدگاه


                #8
                پاسخ : کمک برای ساخت فانکشن با میکرو

                از دوستان مهندس کسی حاضر نیست کمک کنه.مشکل من فقط انالیز کردن مداره تو رنج فرکانس که تا چند خروجی داره همین چون از برنامه این میکرو سر در نیاوردم فایل asm هست ...پلیزززززز

                دیدگاه


                  #9
                  پاسخ : کمک برای ساخت فانکشن با میکرو

                  سلام من مهندس ادیسون هستم
                  و یک فانکشن ژنراتور تمام دیجیتال ساخته ام که به شما معرفی می کنم
                  این مدار تست شده و مشکلی نداشته است
                  در این مدار توسط کلید فرکانس دامنه دیوتی سایکل و نوع موج رو انتخاب می کنید و در آخر موج براتون تولید میشه :wow:
                  ابتدا برنامه مدار رو براتون قرار میدهم که به زبان بیسیک و میکرو مگا 8 و کریستال 16 مگا هرتز کار می کنه
                  کد:
                  $regfile = "m8def.dat"
                  $crystal = 16000000
                  
                  Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5 , E = Portc.1 , Rs = Portc.0
                  
                  Config Lcd = 16 * 2
                  Cursor Off
                  
                  Config Portd = Output
                  
                  Dim A As Byte
                  Dim B As Word
                  Dim C As Byte
                  Dim D As Word
                  Dim E As Word
                  Dim F As Word
                  Dim G As Byte
                  Dim H As Byte
                  Dim I As Word
                  Dim J As Single
                  Dim K As Byte
                  Dim L As Byte
                  Dim M As Byte
                  
                  Ddrb.0 = 0 : Portb.0 = 1
                  Ddrb.1 = 0 : Portb.1 = 1
                  Ddrb.2 = 0 : Portb.2 = 1
                  Ddrb.3 = 0 : Portb.3 = 1
                  Ddrb.4 = 0 : Portb.4 = 1
                  Ddrb.5 = 0 : Portb.5 = 1
                  
                  Declare Sub A0
                  Declare Sub A1
                  Declare Sub A2
                  Declare Sub A3
                  Declare Sub A4
                  Declare Sub A5
                  Declare Sub A6
                  Declare Sub A7
                  Declare Sub A8
                  Declare Sub A9
                  Declare Sub A10
                  Declare Sub A11
                  Declare Sub A12
                  Declare Sub A13
                  Declare Sub A14
                  Declare Sub A15
                  Declare Sub A16
                  Declare Sub A17
                  
                  A = 1
                  B = 200
                  C = 50
                  F = 500
                  G = 99
                  
                  Config Debounce = 30
                  Cls
                  Main1:
                  Cls
                  Do
                    Debounce Pinb.2 , 0 , A1
                    Debounce Pinb.0 , 0 , A2
                    Home
                    Lcd "SELECT WAVEFORM?"
                    Lowerline
                    If A = 1 Then
                    Lcd "WAVE IS:SINE  "
                    Elseif A = 2 Then
                    Lcd "WAVE IS:SQUARE "
                    Else
                    Lcd "WAVE IS:TRIANGLE"
                    End If
                  Loop
                  
                  Main2:
                  Cls
                  Do
                    Debounce Pinb.2 , 0 , A3
                    Debounce Pinb.3 , 0 , A4
                    Debounce Pinb.4 , 0 , A5
                    Debounce Pinb.5 , 0 , A6
                    Debounce Pinb.0 , 0 , A7
                    Debounce Pinb.1 , 0 , A0
                    Home
                    Lcd "SET FREQUENCY ? "
                    Lowerline
                    Lcd "F is:" ; B ; "Hz NEXT>"
                  Loop
                  
                  Main3:
                  Cls
                  Do
                    Debounce Pinb.2 , 0 , A8
                    Debounce Pinb.3 , 0 , A9
                    Debounce Pinb.4 , 0 , A10
                    Debounce Pinb.5 , 0 , A11
                    Debounce Pinb.0 , 0 , A12
                    Debounce Pinb.1 , 0 , A0
                    Home
                    Lcd "SET DUTY CYCLE ?"
                    Lowerline
                    Lcd "D.C.is:" ; C ; "% NEXT>"
                  Loop
                  
                  Main4:
                  Cls
                  Do
                    Debounce Pinb.2 , 0 , A13
                    Debounce Pinb.3 , 0 , A14
                    Debounce Pinb.4 , 0 , A15
                    Debounce Pinb.5 , 0 , A16
                    Debounce Pinb.0 , 0 , A17
                    Debounce Pinb.1 , 0 , A0
                    Home
                    Lcd "SET AMPLITUDE ? "
                    Lowerline
                    Lcd "AMP.is:" ; G ; "% NEXT>"
                  Loop
                  
                  Main5:
                    H = G
                    G = G - 14
                    G = G * 3                        'damne tabdil be hex
                    F = F / B                        'mohasebe T *500
                    D = F * C                        'mohasebe takhire 1
                    E = 100 - C
                    E = F * E                        'mohasebe takhire 2
                    D = D / 10
                    E = E / 10
                    Cls
                    Lcd "WAVE F DC AMP"
                    Lowerline
                    If A = 1 Then
                    Goto Main6
                    Elseif A = 2 Then
                    Goto Main7
                    Else
                    Goto Main8
                    End If
                  Main6:
                    Lcd "SIN. " ; B ; " " ; "50 " ; H
                    G = G / 2
                    Do
                    For I = 0 To 360 Step 3
                    J = I
                    J = Deg2rad(j)
                    J = Sin(j)
                    J = J * G
                    J = Int(j)
                    J = J + 128
                    Portd = J
                    For L = 1 To D
                    Waitus 1
                    Next L
                    Next I
                    Loop
                  
                  Main7:
                    Lcd "SQU. " ; B ; " " ; C ; " " ; H
                    Do
                    Portd = G
                    For L = 1 To D
                    Waitus 240
                    Next L
                    Portd = 0
                    For L = 1 To E
                    Waitus 240
                    Next L
                    Loop
                  
                  Main8:
                    Lcd "TRI. " ; B ; " " ; C ; " " ; H
                    Do
                    For M = 1 To G
                    Portd = M
                    For L = 1 To D
                    Waitus 2
                    Next L
                    Next M
                    For M = G To 1 Step -1
                    Portd = M
                    For L = 1 To E
                    Waitus 2
                    Next L
                    Next M
                    Loop
                  
                  
                  
                  End                             'end program
                  
                  Sub A0:
                    Goto Main1
                  End Sub A0
                  
                  Sub A1:
                  If A < 3 Then
                    Incr A
                    Else
                    A = 1
                    End If
                    Goto Main1
                  End Sub A1
                  
                  Sub A2:
                    Goto Main2
                  End Sub A2
                  
                  
                  Sub A3:
                  If B < 500 Then
                    Incr B
                    Else
                    B = 500
                    End If
                    Goto Main2
                  End Sub A3
                  
                  Sub A4:
                  If B > 0 Then Decr B
                    Goto Main2
                  End Sub A4
                  
                  Sub A5:
                  If B < 480 Then
                    B = B + 20
                    Else
                    B = 500
                    End If
                    Goto Main2
                  End Sub A5
                  
                  Sub A6:
                  If B > 20 Then B = B - 20
                    Goto Main2
                  End Sub A6
                  
                  Sub A7:
                    Goto Main3
                  End Sub A7
                  
                  Sub A8:
                  If C < 99 Then
                    Incr C
                    Else
                    C = 99
                    End If
                    Goto Main3
                  End Sub A8
                  
                  Sub A9:
                  If C > 0 Then Decr C
                    Goto Main3
                  End Sub A9
                  
                  Sub A10:
                  If C < 90 Then
                    C = C + 10
                    Else
                    C = 99
                    End If
                    Goto Main3
                  End Sub A10
                  
                  Sub A11:
                  If C > 10 Then C = C - 10
                    Goto Main3
                  End Sub A11
                  
                  Sub A12:
                    Goto Main4
                  End Sub A12
                  
                  Sub A13:
                  If G < 99 Then
                    Incr G
                    Else
                    G = 99
                    End If
                    Goto Main4
                  End Sub A13
                  
                  Sub A14:
                  If G > 14 Then Decr G
                    Goto Main4
                  End Sub A14
                  
                  Sub A15:
                  If G < 90 Then
                    G = G + 10
                    Else
                    G = 99
                    End If
                    Goto Main4
                  End Sub A15
                  
                  Sub A16:
                  If G > 24 Then G = G - 10
                    Goto Main4
                  End Sub A16
                  
                  Sub A17:
                    Goto Main5
                  End Sub A17

                  sigpic

                  دیدگاه


                    #10
                    پاسخ : کمک برای ساخت فانکشن با میکرو

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

                    دیدگاه


                      #11
                      پاسخ : کمک برای ساخت فانکشن با میکرو

                      سلام
                      این هم کل مدار + فایل شبیه سازی + برنامه + فایل هگز
                      http://upir.ir/files/2c1e9e0750711.rar
                      توضیح روش dds :
                      در این روش ما از یک مبدل دیجیتال به آنالوگ استفاده می کنیم و توسط میکرو اعداد مناسب رو تولید می کنیم و سپس این عدد های دیجیتالی به یک مقدار آنالوگ تبدیل می شن و یک موج پیوسته رو شکل میدن .

                      sigpic

                      دیدگاه


                        #12
                        پاسخ : کمک برای ساخت فانکشن با میکرو

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

                        دیدگاه


                          #13
                          پاسخ : کمک برای ساخت فانکشن با میکرو

                          http://upir.ir/files/626f44d541372.jpg
                          http://upir.ir/files/e202240bd7cc1.jpg
                          http://upir.ir/files/89e80ad027803.jpg



                          خیلی مردی .من الان چند روز فقط میخوام یکی مدار واسم انالیز کنه کسی نبوده خواهش میکنم کمک کن بامعرفت :nice:

                          دیدگاه


                            #14
                            پاسخ : کمک برای ساخت فانکشن با میکرو

                            انالیز مدار شما :
                            ابتدا با خوندن چند کلید رنج فرکانسی رو مشخص می کنه اون کلید ها به پایه های RC0 تا RC3 وصل هستند که می تونه گام فرکانس رو تعیین کنه
                            دو کلید دیگه هم داره که باید تو برنامه کاربردش تعیین شه یعنی می تونه کاربرد متفاوت داشته باشه
                            سپس یک دیتا رو از پایه Rc6 به میکرو دیگر ارسال می کنه و ال سی دی هم که برای نمایشه مشخصاته
                            ولوم مدار دامنه خروجی رو تنظیم می کنه
                            دیتا از طریق PD0 وارد مدار دیگر میشه این دیتا مشخص می کنه موج و فرکانس رو البته برنامه می تواند متفاوت باشد
                            میکرو دوم دیتا رو دریافت می کنه و موج رو به روش دی دی اس تولید می کنه
                            روش dds
                            در این روش هر عدد دیجیتالی به یک مقدار آنالوگ تبدیل می شود و با یک مبدل آنالوگ به دیجیتال که در این مدار تعدادی مقاومت این وظیفه را به عهده دارند این عمل صورت می گیرد و عدد های دیجیتالی تولید شده که 8 بیت هستند و می توانند یک موج با 255 پله تولید کنند به صورت پیوسته یک موج آنالوگ رو تولید می کنند
                            البته برنامه ای که من براتون گذاشتم خیلی پیشرفته تره و خودش می تونه دامنه - دیوتی سایکل - فرکانس رو به صورت دیجیتالی کنترل کنه و در آخر موج دلخواه رو در خروجی تحویل بده
                            اما آنالیز برنامه
                            ابتدا کد های رو که همون مقادیر دیجیتالی هستند رو به دست آورده برای چهار شکل موج سینوسی مثلثی دندانه اره ای و مربع و سپس اون ها رو به صورت جدولی ذخیره کرده
                            سپس با خوندن مقادیر ورودی مقدار تاخیر مورد نیاز رو حساب کرده و عدد ها رو به ترتیب به خروجی ارسال کرده
                            اما برنامه ای که من نوشتم با استفاده از معادله ی دقیق و کامل هر موج تمام پارامترهای موج رو به دست میاره و سپس خود میکرو عدد ها رو محاسبه می کنه و در خروجی تحویل میده که با این عمل تمام مقادیر رو میشه کنترل کرد حتی دامنه رو در مداری که من ساختم با کمک خود ای وی ار دامنه رو کنترل کردم که در هیچ جای دیگری این روش استفاده نشده و شما می تونید دومین نفری باشید که از این روش استفاده می کنه :wow:

                            sigpic

                            دیدگاه


                              #15
                              پاسخ : کمک برای ساخت فانکشن با میکرو

                              این هم عکس و شماتیک مدار
                              مدار من برای 500 هرتز ساخته شده و چون پروژه یکی از دوستانم بوده اول برنامه اسم اون فرد رو روی ال سی دی نمایش میده
                              شما می تونی با اصلاح برنامه فرکانس رو بالاتر ببری
                              من برای تاخیر ها از تاخیر 1 میکرو ثانیه ای استفاده کردم
                              شما به جای این تاخیر از دستور NOP ااستفاده کن تا سرعتت 16 برابر بشه و بتونی تا 5 کیلو هرتز هم خروجی دریافت کنی
                              فعلا فصل امتحاناته مگر نه خودم برنامه رو برات اصلاح می کردم


                              sigpic

                              دیدگاه

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