اطلاعیه

Collapse
No announcement yet.

چند ریز برنامه روی یک میکرو

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

    #16
    پاسخ : چند ریز برنامه روی یک میکرو

    سلام بله تموم شد اما من یادم رفته بود
    http://www.engbedded.com/fusecalc

    این عکسو ببین من توی این سایت مشخص کردم فرکانس میکرو روی داخلی 8مگا باشه بعد توی برنامه بسکام هم نوشتم $crystal=8000000
    خب این تنظیمات رو باید از توی قسمت فیوزبیت های پروگرامر روی میکرو اعمال کنی(پایین دورشون خط کشیدم ) از کجا؟
    نمیدونم پروگرامرت چیه که بیشتر توضیح بدم اما همه پروگرامر ها یه قسمتی برای تنظیم فیوزبیت دارن
    فقط دقت کن بقیه فیوزبیتها رو دستکاری نکن چون ممکنه میکرو قفل بشه و فیوزبیتش قابل برگشت نباشه :agree:
    جایی گنگ بود بگید
    http://s6.uplod.ir/i/00674/9cm41hm4inx0.jpg

    دیدگاه


      #17
      پاسخ : چند ریز برنامه روی یک میکرو

      لدفا پست های قبلی خودتونو ویرایش کنید و کد ها و سورس های برنامه ای که گذاشتید رو بین گزینه# یا همون کد که زیر انتخاب سایز فونت قرار داره بزارید تا تایپیک مرتب تر بشه :redface:
      http://s6.uplod.ir/i/00674/9cm41hm4inx0.jpg

      دیدگاه


        #18
        پاسخ : چند ریز برنامه روی یک میکرو

        سلام
        ممنون اقا مهدی
        حالا چجوری باید همه برنامه هارو یکجا جمع کنیم ؟
        زکات علم نشر آن است
        بیشتر با من اشنا بشین :
        http://www.eca.ir/forum2/index.php?topic=1721.375
        ساخت منبع تغذیه ازمایشگاهی :
        http://www.eca.ir/forum2/index.php?topic=110170.0

        دیدگاه


          #19
          پاسخ : چند ریز برنامه روی یک میکرو

          خدا بخواد تا شب برنامه رو برات درست میکنم برات قرار میدم :mrgreen:
          http://s6.uplod.ir/i/00674/9cm41hm4inx0.jpg

          دیدگاه


            #20
            پاسخ : چند ریز برنامه روی یک میکرو

            اینو تست کن بعد بگو ببینم چی جواب داده
            کد:
             $regfile = "m16def.dat"
            $crystal = 3686400
            
            Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E = Portc.3 , Rs = Portc.2
            
            Config Timer0 = Timer , Prescale = 1024
            Enable Interrupts
            Enable Timer0
            Enable Ovf0
            On Timer0 Mahdi
            Timer0 = 218
            Start Timer0
            
            Config Lcd = 16 * 2
            
            Config Adc = Single , Prescaler = Auto , Reference = Internal
            
            Config Portd = Output
            Config Portb = Input
            
            Dim T As Word
            Dim H As Byte
            Dim L As Byte
            Dim Tim As Word
            
            Tie Alias 3600
            
            Start Adc
            
            Declare Sub Main1
            Declare Sub Main2
            
            L = 35
            H = 40
            
            
            Cls
            Cursor Off
            Locate 1 , 2
            Lcd "starting"
            Wait 1
            Cls
            Cursor Off
            Locate 1 , 2
            Lcd "starting."
            Waitms 300
            Cls
            Cursor Off
            Locate 1 , 2
            Lcd "starting.."
            Waitms 300
            Cls
            Cursor Off
            Locate 1 , 2
            Lcd "starting..."
            Waitms 300
            Cls
            Cursor Off
            Locate 1 , 2
            Lcd "starting...."
            Waitms 1500
            Cls
            Cursor Off
            Home
            Lcd " W"
            Waitms 500
            Cls
            Cursor Off
            Home
            Lcd " We"
            Waitms 500
            Cls
            Cursor Off
            Home
            Lcd " Wel"
            Waitms 500
            Cls
            Cursor Off
            Home
            Lcd " Welc"
            Waitms 500
            Cls
            Cursor Off
            Home
            Lcd " Welco"
            Waitms 500
            Cls
            Cursor Off
            Home
            Lcd " Welcom"
            Waitms 500
            Cls
            Cursor Off
            Home
            Lcd " Welcome"
            Wait 2
            
            
            
            Do
            
            T = Getadc(2)
            T = T / 4
            
            If Pinb.0 = 1 Then Incr H
            If Pinb.1 = 1 Then Decr H
            If Pinb.2 = 1 Then Incr L
            If Pinb.3 = 1 Then Decr L
            
            If T > L Then Reset Portd.1
            If T < H Then Reset Portd.0
            
            Cls
            Cursor Off
            Home
            Lcd "T:" ; T ; " H:" ; H ; " L:" ; L ; " N"
            
            
            Select Case T
            
            Case Is <= L
            Call Main1
            
            Case Is >= H
            Call Main2
            
            End Select
            
            Waitms 250
            
            Loop
            
            End
            
            
            
            
            
            Main1:
            
            Cls
            Cursor Off
            Home
            Lcd "T:" ; T ; " H:" ; H ; " L:" ; L ; " L"
            
            Reset Portd.0
            Set Portd.1
            
            Return
            
            
            
            
            
            Main2:
            
            Cls
            Cursor Off
            Home
            Lcd "T:" ; T ; " H:" ; H ; " L:" ; L ; " H"
            Locate 2 , 4
            
            Set Portd.0
            Reset Portd.1
            
            Return
            
            Mahdi:
            Incr Tim
            
            If Tim = Tie Then
            '--------------------------------
            
            'place your cod her
            
            '--------------------------------
            
            
            Tim = 0
            End If
            
            Timer0 = 218
            Return
            TIE در اول برنامه من 3600 گذاشتم کمتر یا بیشتر کنی زمان چرخیدن تخم مرغات کم و زیاد میشه
            یه جایی هم نوشتم که کد هاتو اونجا بزاری کد های مربوط به چرخش تخم مرغا یعنی اونجایی که من نوشتم PLACEYOU....اونجا به اندازه مقدار TIEکه در اول برنامه هست بر حسب ثانیه اجرا میشه
            موفق باشید
            http://s6.uplod.ir/i/00674/9cm41hm4inx0.jpg

            دیدگاه


              #21
              پاسخ : چند ریز برنامه روی یک میکرو

              نوشته اصلی توسط b e h n a m
              سلام
              ممنون از پاسخ هاتون
              اقای زمانی بنده دنبال سنسور رطوبت میگردم. سنسوری که شما معرفی کردین سنسور دما هستش


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

              مشکل اصلی همزمانی کارها هستش
              برای مثال این برنامه دماسنج با کنترل هستش (دقیقا گزاشتم که اگه به کار کسی اومد استفاده کنه )

              کد:
              $regfile = "m16def.dat"
              $crystal = 1000000
              Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , _
              Db7 = Portc.7 , E = Portc.3 , Rs = Portc.2
              Config Lcd = 16 * 2
              Config Adc = Single , Prescaler = Auto , Reference = Internal
              Config Portd = Output
              Config Portb = Input
              Dim T As Word
              Dim H As Byte
              Dim L As Byte
              Start Adc
              Declare Sub Main1
              Declare Sub Main2
              L = 35
              H = 40
              
              
              Cls
              Cursor Off
              Locate 1 , 2
              Lcd "starting"
              Wait 1
              Cls
              Cursor Off
              Locate 1 , 2
              Lcd "starting."
              Waitms 300
              Cls
              Cursor Off
              Locate 1 , 2
              Lcd "starting.."
              Waitms 300
              Cls
              Cursor Off
              Locate 1 , 2
              Lcd "starting..."
              Waitms 300
              Cls
              Cursor Off
              Locate 1 , 2
              Lcd "starting...."
              Waitms 1500
              Cls
              Cursor Off
              Home
              Lcd " W"
              Waitms 500
              Cls
              Cursor Off
              Home
              Lcd " We"
              Waitms 500
              Cls
              Cursor Off
              Home
              Lcd " Wel"
              Waitms 500
              Cls
              Cursor Off
              Home
              Lcd " Welc"
              Waitms 500
              Cls
              Cursor Off
              Home
              Lcd " Welco"
              Waitms 500
              Cls
              Cursor Off
              Home
              Lcd " Welcom"
              Waitms 500
              Cls
              Cursor Off
              Home
              Lcd " Welcome"
              Wait 2
              
              
              
              Do
              
              T = Getadc(2)
              T = T / 4
              
              If Pinb.0 = 1 Then Incr H
              If Pinb.1 = 1 Then Decr H
              If Pinb.2 = 1 Then Incr L
              If Pinb.3 = 1 Then Decr L
              
              If T > L Then Reset Portd.1
              If T < H Then Reset Portd.0
              
              Cls
              Cursor Off
              Home
              Lcd "T:" ; T ; " H:" ; H ; " L:" ; L ; " N"
              
              
              Select Case T
              
              Case Is <= L
              Call Main1
              
              Case Is >= H
              Call Main2
              
              End Select
              
              Waitms 250
              
              Loop
              
              End
              
              
              
              
              
              Main1:
              
              Cls
              Cursor Off
              Home
              Lcd "T:" ; T ; " H:" ; H ; " L:" ; L ; " L"
              
              Reset Portd.0
              Set Portd.1
              
              Return
              
              
              
              
              
              Main2:
              
              Cls
              Cursor Off
              Home
              Lcd "T:" ; T ; " H:" ; H ; " L:" ; L ; " H"
              Locate 2 , 4
              
              Set Portd.0
              Reset Portd.1
              
              Return
              و برای چرغاندن تخم مرغها هم :
              کد:
              $regfile = "m16def.dat"
              $crystal = 1000000
              Config Portd = Output
              
              Do
              
              Set Portd.3
              Wait 10
              Reset Portd.3
              Wait 3600
              Set Portd.4
              Wait 10
              Reset Portd.4
              
              Loop
              
              End
              همون برنامه چشمک زن با تغیرات که با ی پل H به موتور وصل میشه


              حالا میخوام میکرو همزمان هر دو کار رو برام انجام بده ولی نمیدونم چجوری باید برنامه هارو داخل هم قرار بدم
              ی سوال دیگه اینکه میشه از یکی از پایه های adc استفاده کرد به عنوان adc و بقیش رو به عنوان پرت خروجی و یا پین ورودی استفاده کرد ؟
              در مورد رطوبت سنج هم در مرحله تخقیق هستم هرجا به مشکل خوردم مزاحمتون میشم .
              ممنون
              سلام
              اخوی اگه اشتباه نکرده باشم شما برای دماسنج ماشین جوجه کشیتون از سنسور lm35 استفاده کردید . اگه اینطوره باید بگم که سخت در اشتباهیت .
              lm 35 فقط یه سنسور اموزشی نه بیشتر و دقتش برای یک ماشین جوجه کشی افتضاحه . یکی از مهمترین عوامل بالا بودن درصد جوجه اوری دما هست و lm35 با دقت کمش همه چی رو خراب میکنه . اخرش 30 درصد جوجه ها دربیان (فکر کنم زیاد گفتم ). من به شما ds18b20 پیشنهاد میکنم . واقعا عالیه دقتش هم دهم درجه هست . ساختش و برنامه نویسیش هم خیلی سخت نیست . برید دنبال مدار و برنامه های موجود تو اینترنت و همین سایت حتما نتیجه میگیرید . من رو ماشین جوجه کشیم از همین سنسور استفاده کردم و جواب هم گرفتم . اگه خواستید میتونم اطلاعات و ... رو براتون قرار بدم به همراه pcb .
              اگه خیلی درگیر رطوبت سنج نشدید اول اینو حل کنید بعد ادامه بدید .
              در مورد سنسور رطوبت هم همون hs1101 عالیه ولی اگه قیمت مهم نیست یه sht11 بگیر خیاله خودتو راحت کن . هم رطوبت و هم دما با دقت فوق العاده .

              یه مورد دیگه هم بگم . اخوی سرعت حرک موتور چه قدره ؟ دقت داشته باش که نباید سرعت حرکت راک ها زیاد باشه اصلا خوب نیست و تخم ها خراب میشه . مناسبترین سرعت به نظر من 3 rpm هست . یعنی 3 دور در دقیقه .کمتر هم باشه باشه اشکالی نداره ولی خیلی بیشتر نباشه .
              به نظرم بهتر بود که دو تا سوییچ کنار راک ها قرار میدادی تا زمانی که راک ها چرخیدن و به اندازه منحرف شدن سوییچ هارو فشار میدادن و سوییچ ها رو هم به میکرو وصل میکردی و یه if هم میذاشتی تا دقیقا سر وقتش قطعش میکرد . اینطوری خیلی بهتر و حرفه ای تره .

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

              نکته اخر هم اینکه اگه به همه مدارات کلید اضافه کنی عالی میشه . کلید برای کنترل کم و زیاد کردن متغیر هات .
              با دستور DEBOUNCE Px.y , state , label
              فکر میکنم که توضیح هم نیاز نداشته باشه . به جای state باید حالت پین ورودی رو بنویسی . مثلا اگه بافشرده شدن کلید پایه فلان 1 یا همون ولتاژ مثبت بهش میرسه پس باید به جاش عدد یک بنویسی .

              ببخشید من چون از lm35 متنفرم خطای اول یه مقدار تند نوشتم . یه موفق ناراحت یا ناامید نشده باشید ها .
              شب به خیر. موفق باشید

              دیدگاه


                #22
                پاسخ : چند ریز برنامه روی یک میکرو

                اخوی اینو جایگیزین پل h کن . خیلی بهتره . فقط با دو تا رله هم میشه بدون ترانزیستور فقط کافیه برای روشن کرد رله ها یک پایه رله رو به مثبت و دیگری رو به میکرو وصل کن و برای روشن کردنش فقط کافیه اون پایه رو صفر کنی ( این روش رو من تا حالا ندیدم کسی انجام بده ولی به نظرم بهتر از اینه که بخواین با ترانزیستور تقویت بکنین. در کل روش باحالیه ). به مثبت و دیگری رو به میکرو بزنی . برای چپ گرد یا راست گرد باید به بیس ترانزیستور ها ولتاژ بدی اگه به یکی بدی چپ و اگه به دیگری بدی راست میچرخه
                شبت به خیر .

                دیدگاه

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